Informatique


La dépendance fonctionnelle

Aller à

Définition

Les attributs d'une entité (ou d'une association) doivent dépendre de la clef de manière directe.


La dépendance fonctionnelle en mathématique

Un ensemble B dépend fonctionnellement d'un ensemble A si la connaissance d'un élément a € A détermine un et un seul élément b € B.
On dit alors que A détermine B.

Ceci est applicable aux entités du MCD, A et B étant des attributs et a et b des valeurs affectées à ces attributs.


La dépendance fonctionnelle appliquée au MCD

La question fondamentale à se poser est : Connaissant une valeur de la source, peut-on connaître une valeur unique du but ?.
Quand la réponse est affirmative, on a l'habitude de représenter cette dépendance comme suit :

SOURCE =====> BUT

Dépendance fonctionnelle à partie gauche ( source ) non composée.

Il peut arriver que ce soit la combinaison de plusieurs attributs ( en source ) qui permettent de connaître une valeur unique du but.
Exemple : un numéro de facture + un code produit nous donne la quantité facturée.

(numéro de facture, code produit) =====> quantité facturée

On parlera de dépendance fonctionnelle à partie gauche composée.

Un exemple

Appliquons la règle de la dépendance fonctionnelle à l'entité PROFESSEURS.

Chaque professeur se voit attribué un identifiant unique (la clé), et un même identifiant ne peut jamais être attribué à plus qu'un professeur.
En conséquence, un identifiant ne pourra déterminer que un et un seul nom de professeur (nom_pro).

On a donc les DF suivantes:

  • id_prof --> matricule_pro (il y a dépendance fonctionnelle entre l'identifiant et matricule_pro)
  • id_prof --> nom_pro (il y a dépendance fonctionnelle entre l'identifiant et nom_pro)
  • id_prof --> prenom_pro (il y a dépendance fonctionnelle entre l'identifiant et prenom_pro)
  • id_prof --> adresse_pro (il y a dépendance fonctionnelle entre l'identifiant et adresse_pro)
  • id_prof --> datnaiss_pro (il y a dépendance fonctionnelle entre l'identifiant et datenais_pro)

NB: la flèche doit être traduite par "détermine".


Dépendance non fonctionnelle

Deux attributs sont en dépendance non fonctionnelle si la connaissance d'une valeur du premier attribut (source)

  • ne permet de connaître aucune des valeurs du second (pas de rapport entre les deux)
  • détermine la connaissance de plusieurs valeurs de la seconde

Exemples :
la connaissance d'une date de naissance ne permet pas de connaître une adresse
la connaissance d'un numéro de facture permet de connaître plusieurs références d'articles

Un exemple

Nous pourrions ajouter à l'entité "professeurs" l'attribut dip_prof, les diplômes du professeur.

Question: cet attribut est-il en situation de dépendance fonctionnelle par rapport à l'identifiant (la clé) ?

Réponse: non, car un identifiant ne détermine pas une valeur de dip_pro mais plusieurs valeurs.
En effet un professeur peut avoir plusieurs diplômes, c'est d'ailleurs en général le cas!
Donc, puisque dip_pro n'est pas en dépendance fonctionnelle par rapport à l'identifiant il ne peut être attribut de l'entité "professeurs".

La mauvaise solution: on pourrait éventuellement créer plusieurs propriétés dip1_prof, dip2_prof, dip3_prof (diplôme 1, diplôme 2, diplôme 3, etc.), mais cette solution doit être écartée car il n'y a pas de règle qui détermine le maximum de diplômes que peut avoir un professeur!

La bonne solution: créer une entité "diplome" en association avec "professeurs".


Dépendance fonctionnelle directe

Une dépendance fonctionnelle donnée 1 =====> donnée 2 est directe s'il n'existe pas une donnée 3 qui engendrerait une dépendance fonctionnelle transitive de telle sorte que l'on pourrait écrire :

Donnée 1 =====> donnée 3 =====> donnée 2

Exemples :
Numéro facture ======> numéro représentant
Numéro représentant ======> nom représentant
Numéro facture ======> nom représentant