Given schema R = (A, B, C, D, E, G) and functional dependencies :
F = { A -> BC, BD -> E, AD -> E, CD -> AB }
BCNF decomposition:
- A -> BC, but A is not a superkey of R. Replace R by 2 relations: R1(A, B, C) and R2(A, D, E, G).
- AD -> E holds on R_2, but AD is not a superkey for R2. Replace R2 by 2 relations: R2(A,D,E) and R3(A,D,G)
Left with R1(A,B,C), R2(A,D,E), R3(A,D,G)
It is not dependency preserving as you would need to do a join to compute BD -> E.
Did I do this decomposition correctly? Also, how can I determine if it is a lossless decomposition?