Pauvre meryDev...
Je comprends votre désarroi. Un peu d’histoire pour essayer d'y voir plus clair.
Le concept de dépendance fonctionnelle a été défini en 1971 par le père du Modèle Relationnel de Données, Ted Codd, dan un article appelé Further Normalization of the Data Base Relational Model.
Dans le style de Chris Date (cf. le message d’Oishiiii) : Une dépendance fonctionnelle (DF) est une instruction de la forme :
X → Y
où X et Y sont deux sous-ensembles d’attributs de l’en-tête d’une relation R (liste des attributs d’une table en SQL, d’une entité-type en Merise), et répondant à la règle : pour une valeur de X, correspond exactement une valeur de Y, c'est-à-dire que si deux tuples (lignes en SQL, occurrences en Merise) ont la même valeur vx pour X, alors ils ont aussi la même valeur vy pour Y.
On dit encore que Y est fonctionnellement dépendant de X, ou que X détermine fonctionnellement Y. X est appelé le déterminant de la DF et Y le dépendant.
Par exemple, si la relation R comporte, entre autres, les attributs Produit, Secteur et Représentant et s’il existe la règle :
« Quels que soient le produit et le secteur, pour une telle paire il n’y a qu’un représentant »,
on écrit :
{Produit, Secteur} → {Représentant}
Si donc le produit p est du ressort du représentant r pour le secteur s, aucun autre représentant n'aura le droit de proposer ce produit dans ce secteur.
Une douzaine d’années plus tard, un merisien inventif, mais ayant une connaissance trop approximative du Modèle Relationnel de Données, s’est piqué de récupérer l’expression « dépendance fonctionnelle » pour établir une contrainte d’unicité non plus entre deux sous-ensembles d’attributs d’une relation (d'une entité-type dans le contexte Merise), mais entre deux (ou plusieurs) entités-types (cf. La méthode Merise, Tome 1, Principes et outils). Ceci fut dénoncé par un autre merisien plus vigilant, qui écrivit :
« Cette appellation représente quelque danger, le terme "dépendance fonctionnelle" étant utilisé dans le formalisme relationnel dans un sens beaucoup plus large »
(cf. Yves Tabourier De l’autre côté de Merise, page 89 de l'édition de 1986). Incidemment, je conteste l’expression « formalisme relationnel », car le Modèle Relationnel de Données de Codd n’est pas un formalisme, mais une théorie formelle, une branche des mathématiques, de plein droit (C. J. Date, Logic and Databases, The Roots of Relational Theory p. 377).
Libre au merisien inventif d’utiliser l’expression « dépendance fonctionnelle », mais il aurait pu signaler que cela n’avait rien à voir avec la DF du Modèle Relationnel de Données.
Résultat, cette expression a été mise à toutes les sauces...
Pour mémoire, les DF sont régies par un système de règles, portant le nom d'axiomes d’Armstrong, mais cela est complètement passé au-dessus de la tête du responsable de votre désarroi.
Une de ces règles porte le nom d’axiome d’augmentation et s’exprime ainsi :
Si X, Y et Z sont des sous-ensembles d’attributs d’une relation R et si
X → Y
Alors
X ∪ Z → Y ∪ Z
J’attends encore que le merisien inventif m’explique le sens de la chose en Merise, à savoir ce que veut dire l'union (au sens de la théorie des ensembles) d'une entité-type X et d’une entité-type Z telle que la paire ainsi formée détermine l’union d'une entité-type Y et de l’entité-type Z, quand X détermine Y.
Partager