algorithmrdbmsdatabase-normalizationbcnf

Determine if relation is in BCNF form?


How do I determine if the following relation is in BCNF form?

R(U,V,W,X,Y,Z)

UVW ->X
VW -> YU
VWY ->Z

I understand that for a functional dependency A->B A must be a superkey. And the relation must be in 3NF form. But I am unsure how to apply the concepts.


Solution

  • To determine if a relation is in BCNF, for the definition you should check that for each non-trivial dependency in F+, that is, for all the dependencies specified (F) and those derived from them, the determinant should be a superkey. Fortunately, there is a theorem that says that it is sufficient perform this check only for the specified dependencies.

    In your case this means that you must check if UVW, VW and VWY are superkeys.

    And to see if in a dependency X -> Y the set attributes X is a superkey you can compute the closure of the attributes (X+) and check if it contains the right hand part Y.

    So you have to compute UVW+ and see if it contains {U,V,W,X,Y,Z} and similarly for the other two dependencies. I leave to you this simple exercise.