Bonjour,
Envoyé par
Aymanamkasso
Classe, Cours, Module->NumEns est
redondante puisque on a cours, class->NumEns.
Aymanamkasso, sur quoi vous basez-vous pour affirmer cela ?
En fait, il faut démontrer que cette DF peut disparaître sans remettre en cause l’ensemble F des DF que vous proposez.
C’est quand même pour cela que William Armstrong nous a fourni ses fort précieux axiomes que je reprends en annexe dans mon article sur la normalisation.
Appuyons-nous sur ces axiomes et reprenons l’ensemble F de vos DF. Pour commencer appliquons la règle de décomposition faisant que le côté droit de chaque DF ne contient qu'un seul attribut (j’en profite pour donner un nom à chaque DF) :
DF01 - Classe, Cours, Module -> NumEns
DF02 - Classe, Cours, Module -> NomEns
DF03 - ModEtud, Cours, Module -> Note
DF04 - ModEtud -> NomEtud
DF05 - ModEtud -> Classe
DF06 - Cours -> Module
DF07 - Cours -> NbHeure
DF08 - Cours, ModEtud -> Note
DF09 - Cours, Module -> NbHeure
DF10 - NumEns -> NomEns
DF11 - Cours, Classe -> NumEns
Il devient possible de chercher un ensemble minimal pour F. Cet ensemble est minimal si :
1. Le côté droit de chaque DF ne contient qu’un seul attribut ;
2. Il n’existe aucune DF X -> A telle que l’ensemble F – {X -> A} soit équivalent à F.
Le premier point a déjà été évoqué et appliqué.
Expliquons le 2e point : la DF X -> A peut être supprimée si on sait l’inférer des autres DF.
C’est le cas de la DF DF01. En effet, appliquons l’axiome d’augmentation à DF11, en y augmentant droite et gauche au moyen de l’attribut Module : on produit ainsi la DF :
Cours, Classe, Module -> NumEns, Module
A laquelle on applique la règle de décomposition pour produire :
Cours, Classe, Module -> NumEns
Cours, Classe, Module -> Module
En vertu de l’axiome de réflexivité, si elle est absente cette dernière DF est reproductible et peut donc être supprimée.
Reste donc :
Cours, Classe, Module -> NumEns
C’est-à-dire DF01, qu’on peut supprimer elle aussi, puisqu’on a prouvé qu’elle est inférable à partir de DF11.
Prenons le cas de la DF DF02. Appliquons l’axiome d’augmentation à DF11, en y augmentant droite et gauche au moyen de l’attribut Module : comme ci-dessus on produit la DF
Cours, Classe, Module -> NumEns
DF02 peut être supprimée car on sait la produire à l’aide l’axiome de transitivité appliqué à DF11 et DF10 :
Classe, Cours, Module -> NumEns et NumEns -> NomEns => Classe, Cours, Module -> NomEns
DF03 peut être supprimée car on sait la produire à partir de DF08 :
Cours, ModEtud -> Note
laquelle par augmentation et décomposition donne :
Cours, ModEtud, Module -> Note
c’est-à-dire DF03.
Ainsi, en l’absence de DF01, DF02 et DF03, l’ensemble F de départ reste intègre.
Qu’en est-il de DF04 ? Supprimons cette DF. L’ensemble F’ des DF devient en fait un sous-ensemble strict de F, ce qui fait que DF04 ne peut pas être supprimée.
Même punition si on supprimait DF05, DF06, DF07, DF08, DF10 et DF11.
Reste le cas de DF09 : cette DF est inférable à partir de DF07 en utilisant l’axiome d’augmentation :
Cours -> NbHeure =>
Cours, Module -> Module, NbHeure
Et par décomposition :
Cours, Module -> NbHeure
L’ensemble F des DF se réduit donc à :
DF04 - ModEtud -> NomEtud
DF05 - ModEtud -> Classe
DF06 - Cours -> Module
DF07 - Cours -> NbHeure
DF08 - Cours, ModEtud -> Note
DF10 - NumEns -> NomEns
DF11 - Cours, Classe -> NumEns
Soit encore en regroupant ce qui peut l’être :
DF04 - ModEtud -> NomEtud, Classe
DF06 - Cours -> Module, NbHeure
DF08 - Cours, ModEtud -> Note
DF10 - NumEns -> NomEns
DF11 - Cours, Classe -> NumEns
Envoyé par
Aymanamkasso
Cette 3NF vous semble-t-elle correcte ?
R1(Cours, ModEtu, Note)
R2(ModEtu, NomEtu, Classe)
R3(Cours, Classe, Numens)
R4(Cours, Module, NbHeures)
R5(Numens, Nomens)
Pour parler de 3NF encore faut-il fournir les clés des variables relationnelles R1, R2, R3, R4, R5. Quelles sont-elles ? Sinon votre graphe du message #3 correspond à l’ensemble F que j’ai proposé.
Vos variables relationnelles sont en phase avec l’ensemble F :
R1 <=> DF08
R2 <=> DF04
R3 <=> DF11
R4 <=> DF06
R5 <=> DF10
A ce stade, si on retient que les déterminants (parties gauches) des DF donnent lieu à clés, soulignons-les :
R1(Cours, ModEtu, Note)
R2(ModEtu, NomEtu, Classe)
R3(Cours, Classe, Numens)
R4(Cours, Module, NbHeures)
R5(Numens, Nomens)
Il est un fait que dans ces conditions les variables relationnelles sont en 3NF, et même mieux en BCNF, dont je rappelle l’énoncé donné par C. J. Date dans Database Design and Relational Theory, Second Edition :
Relvar R is in Boyce/Codd normal for (BCNF) if and only if for every non trivial FD X -> Y that holds in R, the following is true:
X is a superkey.
Partager