Bonsoir John,
Voilà un moment que nous n’avions pas échangé !
Envoyé par
johnny3
j'ai la relation
R(V1->N; V1->R1; V2->C; V2 ->R2; V1, V2 -> Q; C -> R2; R1 -> N)
Ceci n’est pas une relation, mais un ensemble de dépendances fonctionnelles vérifiées par la relation dont le schéma est le suivant :
R {V1, R1, N, V2, C, R2, Q}
Je vous prie de noter l’emploi des accolades plutôt que des parenthèses (car R est un ensemble dont les éléments sont les attributs V1, etc.) Un peu de rigueur ne fait jamais de mal.
Envoyé par
johnny3
Cette relation est en 1ère forme normale, car des attributs non clefs ne dépendent pas de la totalité de la clef (V1V2)
Non. Si une relation est en 1ère forme normale, ça n’est pas pour le motif que vous invoquez (pour votre peine, je vous demande de me fournir le véritable motif). Par contre, en vertu de votre motif, la relation R viole la deuxième forme normale (2NF). Accessoirement, je vous recommande de noter la clé sous la forme {V1, V2}, car une fois de plus, il s’agit d’un ensemble dont les éléments sont V1 et V2.
Venons-en à la bonne décomposition.
1) On normalise en appliquant le théorème de Heath (1971) :
Soit la relvar R {A, B, C} dans laquelle A, B et C sont des ensembles d’attributs de R. Si R satisfait à la dépendance fonctionnelle A → B, alors R est égale à la jointure de ses projections sur {A, B} et {A, C}.
2) On doit à Jorma Rissanen une règle importante, grâce à laquelle on évitera de perdre des DF :
Soit la relvar R {A, B, C} dans laquelle A, B et C sont des ensembles d’attributs de R. Si R satisfait aux dépendances fonctionnelles A → B et B → C, alors plutôt que de décomposer R en {A, B} et {A, C}, on décomposera R en {A, B} et {B, C}.
Votre relation R comporte les DF :
DF01 : {V1} → {N}
DF02 : {V1 → {R1}
DF03 : {V2 → {C}
DF04 : {V2 → {R2}
DF05 : {R1 → {N}
DF06 : {C → {R2}
DF07 : {V1, V2 → {R2}
Et elle viole la 2NF à cause de DF01, DF02, DF03 et DF04.
En appliquant le théorème de Heath sans tenir compte de la règle de Rissanen, on produit la décomposition que vous proposez :
R1 {V1, V2, Q}
R2 {V1,R1}
R3 {V2, C}
R4 {R1, N}
R5 {C, R2}
Mais on a perdu DF05 et DF06. Reprenons donc à zéro.
Du fait de DF01 et DF02, par application du théorème de Heath, La relation
R {V1, R1, N, V2, C, R2, Q}
peut être décomposée ainsi :
R01 {V1, R1, N}
R02 {V1, V2, C, R2, Q}
Vous observerez qu’aucune DF n’est perdue. Cela dit R01 viole la 3NF et pourrait être décomposée, comme vous l’avez fait, en :
R011 {V1, R1}
R012 {V1, N}
mais on perd DF05. Si l’on tient compte de la règle de Rissanen, alors on décomposera R01 plutôt de la façon suivante :
R013 {R1, N}
R014 {V1, R1}
Je vous laisse le soin de poursuivre, pour aboutir à un résultat comportant 5 relations, alors que votre résultat final en comporte 7 (dont 2 ne font partie du résultat que j’obtiens et peuvent disparaître).
Partager