Bonjour,
Envoyé par
S_ami
on A+={A,C,D,B,F,E}==> A->F
X={A} , Y={F} Z={B,C,D,E}
alors R est décomposable en R1(A,F) R2(A,B,C,D,E) c'est bien.
En vertu du théorème de Heath, vous pouvez effectivement décomposer R en R1{A, F} et R2 {A, B, C, D, E}, mais ça n’est pas bien ! Considérons en effet les DF :
DF1 : A → CD
DF2 : D → BF
DF3 : F → E
Ces DF sont la traduction de règles de gestion des données. Or, suite à votre décomposition, DF2 et DF3 partent en fumée. En fait, il faut tenir compte de la règle de préservation des DF, exprimée ainsi par Jorma Rissanen :
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}.
Ainsi, il est préférable de décomposer votre relation R de la façon suivante :
R1 {F, E}
R2 {A, B, C, D, F}
Les dépendances DF1 et DF2 sont ainsi préservées en association avec R2, tandis que DF3 l’est en association avec R1.
A son tour, R2 est décomposable, avec préservation des DF :
R21 [A, C, D}
R22 {D, B, F}
Revenons maintenant à la case Départ. Vous observerez que l’on peut décomposer R autrement. En effet, puisqu’il existe la DF : A → C, R peut être décomposée ainsi (avec préservation des DF) :
R3 {A, C}
R4 {A, B, D, E, F}
Dans le même esprit, R4 est décomposable ainsi :
R41 {D, B}
R42 {A, D, E, F}
R42 est décomposable à son tour :
R421 {F, E} (que l’on connaît déjà, il s’agit de R1)
R422 {A, D, F}
Dans la foulée, R422 donne lieu à :
R4221 {A, D}
R4222 {D, F}
Mais on a le sentiment d’avoir un peu trop décomposé les relations et il est temps d’appliquer le principe de Codd dit de 2NF optimale, selon lequel R41 et R4222 peuvent être recomposées pour que l’on retrouve R22, et R3 et R4221 recomposées pour que l’on retrouve R21 (en ce sens, on peut dire que l'on a été plus royalistes que le roi).
La meilleure méthode de décomposition est donc celle qui donne directement lieu à R1, R21 et R22.
Partager