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

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

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.

 

  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

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

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
  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

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

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

Dépendance fonctionnelle

modifier


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