Introduction aux systèmes de bases de données/Dépendances fonctionnelles et normalisation
Objets représentées par une dépendance fonctionnelle
La dépendance fonctionnelle permet d'exprimer
- la caractéristique invariante de la relation ;
- la contrainte liée à sa définition en intention.
Par exemple dans une université, étant donné le matricule d’un étudiant, on peut donner son nom. Il existe donc une dépendance fonctionnelle entre matricule et nom.
Distinction du variant et de l'invariant d'une dépendance fonctionnelle
La fonction mathématique met en correspondance les mêmes couples de valeurs : hier, aujourd’hui et demain, pour .
La dépendance fonctionnelle met en correspondance des couples de valeurs qui peuvent différer selon l’instant considéré : hier, on avait « », aujourd’hui, ce client a changé d’adresse et en conséquence, on a « ».
Lorsqu’on dit que la dépendance fonctionnelle fait partie des caractéristiques invariantes d’une relation, on se place au niveau des structures et cela signifie qu’à toute valeur de la source, on associe une seule valeur de la cible, même si cette valeur déterminée peut changer dans le temps.
Le déménagement du client 42 ne contredit en rien l’existence de la DF .
Dépendance fonctionnelle minimale
Si alors on a aussi
Pour normaliser, on considère seulement les dépendances qui sont minimales selon la liste de gauche.
Considérons R(matricule, nom, prénom, date naissance, …)
Si on a matricule → (nom, prénom, date naissance, ...) alors (matricule, nom) → (prénom, date naissance, ...).
S’il existe une dépendance fonctionnelle minimal entre (A1, ..., An) et tous les autres attributs de la relation, alors on peut conclure que (A1, ..., An) est une clé candidate.
Une dépendance fonctionnelle sera donc traduite en une contrainte de clef primaire (PRIMARY KEY) ou unique (UNIQUE).
Principales lois sur les dépendances fonctionnelles
- réflexivité : si , alors
- augmentation : si , alors
- transitivité : si et , alors
- décomposition : si , alors et
- union : si et , alors
- pseudo-transitivité : si et , alors
Détermination de la dépendance fonctionnelle
Les dépendances fonctionnelles sont des contraintes du domaine d’application. On les détermine à partir de notre connaissance des faits (règles, conditions, etc.) du domaine d’application.
Si pour une liste de valeurs pour , on peut toujours associer une et une seule valeur pour , alors on a une dépendance fonctionnelle .
Représentation graphique
Voir Modèle:WP.
Dépendance fonctionnelle
Cette notion est introduite pour caractériser des relations pouvant être décomposée sans perte d'information.
Autrement dit un attribut, ou groupe d'attributs, Y dépend fonctionnellement d'un attribut, ou groupe d'attributs, X, si étant donnée une valeur unique de X il lui correspond une valeur unique de Y, quel que soit l'instant considéré.
Soit R=(A, …, B, …), on dit que B dépend fonctionnellement de A si et seulement si pour chaque valeur de A dans un tuple il lui correspond toujours la même valeur de B.