En matière de théorie relationnelle, il ne s’agit pas de penser, mais de démontrer.
Prenons le cas de la relvar (variable relationnelle) FPV dont le prédicat est le suivant :
Le fournisseur Four_No fournit la pièce Piece_No en quantité Quantité et il est localisé dans la villeVille.
Les règles de gestion des données correspondent au prédicat, et on met en évidence les dépendances fonctionnelles suivantes :
(DF01) {Four_No, Piece_No} → {Quantité}
(DF02) {Four_No} → {Ville}
Une extension à titre d’exemple :
FPV Four_No Piece_No Quantité Ville
S1 P1 300 Lille
S1 P2 200 Lille
S1 P3 400 Lille
S1 P4 200 Lille
S1 P5 100 Lille
S1 P6 100 Lille
S2 P1 300 Paris
S2 P2 400 Paris
S3 P2 200 Lyon
S4 P2 200 Lille
S4 P4 300 Lille
S4 P5 400 Lille
Vous noterez les redondances, on apprend 6 fois que le fournisseur S1 est localisé à Lille, une fois suffit...
Passons aux axiomes d’Armstrong.
En appliquant l’axiome d’augmentation à DF02, on infère la DF :
(DF03) {Four_No, Piece_No} → {Ville, Piece_No}
Et en appliquant l’axiome de décomposition à DF03, on produit les dépendances fonctionnelles :
(DF04) {Four_No, Piece_No} → {Ville}
(DF05) {Four_No, Piece_No} → {Piece_No}
Pour faire bonne mesure, en appliquant l’axiome de réflexivité et celui d’augmentation, on produit la DF :
(DF06) {Four_No, Piece_No} → {Four_No}
Le constat est que la paire {Four_No, Piece_No} est clé candidate de FPV (primaire si ça vous fait plaisir...) car, on vient de le prouver, elle détermine chaque attribut de FPV. Mais selon DF02, une partie de la clé, à savoir {Four_No}, détermine {Ville}, donc la deuxième forme normale est violée.
Ainsi, chaque attribut dépend de la clé (qualifions-la de primaire), et pourtant la deuxième forme normale est violée : votre définition est donc à évacuer.
∎
Encore une fois, au lieu de l’éviter vous n’avez fait qu’ajouter à la confusion en allant on ne sait où à la pêche à des définitions qui ne sont que des billevesées.
N’utilisez que les définitions fournies par les théoriciens du relationnel, Codd, Date, Fagin, Ullman, Zaniolo, Delobel, Adiba, sans oublier bien sûr des gens sérieux comme G. Gardarin... Les définitions que j’ai pris la peine de fournir viennent de ces gens-là, qui ont établi l’axiomatisation et les théorèmes ad-hoc.
Pour mémoire, ça fait plus de 20 ans que le qualificatif de "primaire" pour une clé candidate a été rendu inutile, obsolète, passé au rasoir d’Ockham, ventilé façon puzzle (la clé primaire serait plus égale que les autres, c’est tout ce qu’on peut en dire, elle figure évidemment encore dans la grammaire SQL, mais SQL n’est à confondre avec le modèle relationnel de données, il ne faudrait quand même pas prendre une vessie pour une lanterne...)
Partager