I am trying to figure out the correct steps in performing a BCNF decomposition. I found this example, but I do not understand how to perform the correct steps.
Schema = (A,B,C,D,E,F,G,H) FD's + {A -> CGH, AD->C, DE->F, G->G}
Could someone show the correct steps?
2NF decomposition gives R1(A,B) , R2(C,D) and R3(A,C,E). this decomposition decomposed relations are in 3NF and also in BCNF.
Boyce–Codd normal form (or BCNF or 3.5NF) is a normal form used in database normalization. It is a slightly stronger version of the third normal form (3NF). BCNF was developed in 1974 by Raymond F. Boyce and Edgar F. Codd to address certain types of anomalies not dealt with by 3NF as originally defined.
Determine a minimal cover using your FD's:
{A -> C, A -> G, A -> H,
B -> nothing,
C -> nothing,
D -> nothing,
E -> nothing,
F -> nothing
G -> nothing
H -> nothing
DE -> F}
Note AD -> C
drops out because A
alone determines C
which implies D
is redundant in the FD (see Armstrong's Axioms - Augmentation).
3NF and BCNF definitions relate to dependencies about compund keys. The only compound key
you have here is DE
. Neither D
or E
participate in any other non-null FD's
so eliminating transitive dependencies and ensuring that dependent attributes rely on the
'key, the whole key, and nothing but the key' is not an issue here.
Break into relations so that the FD left hand side is the key and the right hand sides are the non-key dependent attributes of that key:
[Key(A), C, G, H]
[Key(D, E), F]
Now eliminate these attributes from the cover, whatever is left are standalone relations.
[Key(B)]
This should be in 3NF/BCNF
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With