2014-05-18 3 views
0

J'ai un problème briser ce en BCNF:Odd BCNF décomposition sur mon examen passé

Relation: R[A E P M N S T L] 

FD's: 
A -> EM, 
A -> L, 
M -> ST, 
M -> N, 
S -> T, 
E -> P, 
P -> E, 
L -> A 

Celui-ci était sur un de mes examens passés, et je ne sais pas vraiment comment le résoudre.

Je l'ai appris sur Coursera par la femme (Jennifer Widom) qui a écrit notre littérature de cours:

-------------- BCNF ALGORITHM ------------ 
1. Take a FD that violates BCNF. 
2. Decompose the FD to two other relations 
3. First relation: The whole FD 
4. Second relation: The rest of the Relation + the left hand side of the chosen FD 
5. Iterate until all the new relations have key on its left hand side 
-------------- BCNF ALGORITHM ------------ 

And I also tried another one that is basically the same, but written in a different way: 
X->Y: R1({X}+), R2(R - {X}+ ; X) (Relation minus {X}+ (XY in this case), plus X. 

Jusqu'à présent, je suis ici: De toute évidence, A est la clé, de sorte que ses IFD sont déjà en BCNF. La question est, puis-je effacer les FDs redondants peut-être? Si oui, quelle est la règle du pouce?

R1(MST) <-- BCNF. 
R2(A E P M N L) 
R3() 

Et ne sais pas où aller.

Répondre

0
1. Take a FD that violates BCNF. 
5. Iterate until all the new relations have key on its left hand side 

Étape 1 en mentionnant violation BCNF ne peut donner un sens si cela signifie que vous devez identifier les clés et les IFD non-clé implicite de chaque relation originale et produite. En outre, la terminaison de l'étape 5 ne peut pas être simplement quand il y a une clé sur le côté gauche, car un déterminant non-clé pourrait être présent. Il est clair qu'il est nécessaire et suffisant d'arrêter quand toutes les relations sont en BCNF. Une description complète particulière d'un algorithme peut décrire des réorganisations et/ou des tests équivalents sans mentionner explicitement BCNF.

Si A est une clé, alors L est égale à L-> A.

MSTNAELP keys A and L plus M->ST, S->T, E<->P 

Ces FD proviennent de non-clés. Vous avez choisi M-> ST. Nous obtenons:

MST key M plus S->T 
MNAELP keys A and L plus E<->P 

Les deux ont des déterminants non des clés, donc ne sont pas en BCNF. Choisissez S-> T et E-> P. Nous obtenons:

ST key S in BCNF 
SM key M in BCNF 
EP keys P and E in BCNF 
EMNAL keys A and L in BCNF