I have a FDs
ABC->DE
AB->D
DE->ABCE
E->C
My trial :
Step 1 :
A+ = A
B+ = B
C+ = C
D+ = D
E+ = EC
AB+ = ABD
ABC+ = ABCDE
DE+ = ABCDE
From above we get ABC,DE are our candidate keys
Step 2 :
ABC -> DE
==> no violation. bcoz abc is key.AB -> D
==> violation.(ABD)(CE)
- in
(ABD) AB
is a candidate key. So it is in bcnf - in
(CE) C
is the candidate key. So it is in bcnf.
- in
I have done here. But unable to process further. There is confusion after this that the step 2 is right or not.
Can anyone solve this?
Best Answer
In your relation schema, there are three candidate keys:
ABC
,ABE
andDE
.Since, for instance,
AB → D
violates the BCNF, we can decompose the original relation in:this is because we decompose in two relations,
AB+
andR - (AB+) + AB
.The second relation is still not in BCNF, since in E → C the attribute E is not a superkey.
So we can apply again this method to decompose R2 in:
Both are in BCNF and the final decomposition is constituted by R1, R3, R4.
Finally, it is worth to note that the following dependencies:
are lost in the decomposition.