Soit r une relation et X et Y deux sous-ensembles de l'ensemble des attributs de r.
Y est en dépendance fonctionnelle de X (noté X → Y ) si et seulement si à chaque valeur de X correspond exactement une seule valeur de Y.
Autrement dit : lorsque deux n_uplets de r s'accordent sur leur valeur de X, ils s'accordent également sur leur valeur de Y
Une dépendance fonctionnelle (df) est triviale si et seulement si le membre droit est un sous-ensemble (pas nécessairement strict) du membre gauche, par exemple AB→A.
Les df non triviales sont plus intéressantes car en découle des contraintes d'intégrités.
Si R1 = (X,Y,Z) et R2 = (A, B, C) alors on pourra noter la df : XYZ→ABC.
Exemple : à partir de la relation Etudiant(EtudNum, nom, prénom, adresse, naissance, dipId)
EtudNum →(nom, prénom)
nom → nom
(nom, prénom) → dipId
(nom, prénom) → naissance
...
Il faut également supposer qu'il n'existe pas d'homonyme dans la relation