Introduction aux systèmes de bases de données/Dépendances fonctionnelles et normalisation

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Dépendances fonctionnelles et normalisation
Icône de la faculté
Chapitre no 3
Leçon : Introduction aux systèmes de bases de données
Chap. préc. :Le modèle relationnel
Chap. suiv. :Conception d'une base de donnée
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction aux systèmes de bases de données : Dépendances fonctionnelles et normalisation
Introduction aux systèmes de bases de données/Dépendances fonctionnelles et normalisation
 », n'a pu être restituée correctement ci-dessus.


Objets représentées par une dépendance fonctionnelle[modifier | modifier le wikicode]

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.

Panneau d’avertissement Mais l’inverse n’est pas vrai : étant donné un nom, on ne peut déterminer le matricule d’un étudiant, car il peut y avoir plusieurs matricules, puisque plusieurs étudiants peuvent avoir le même nom

Cette dépendance ne signifie pas que le nom associé à un matricule ne change jamais ; le nom peut changer, mais on peut toujours déterminer le nom d’un étudiant à partir de son matricule.

Cela ne signifie pas non plus que si on a deux matricules différents, alors leurs noms associés doivent être différents.

Distinction du variant et de l'invariant d'une dépendance fonctionnelle[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

  1. réflexivité : si , alors
  2. augmentation : si , alors
  3. transitivité : si et , alors
  4. décomposition : si , alors et
  5. union : si et , alors
  6. pseudo-transitivité : si et , alors

Détermination de la dépendance fonctionnelle[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

Voir Unified Modeling Language#Les diagrammes sur Wikipédia  Article sur Wikipédia.

Dépendance fonctionnelle[modifier | modifier le wikicode]


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.

Notes et références[modifier | modifier le wikicode]