Search code examples
databasenormalizationrdbmsfunctional-dependencies

BCNF and 3NF property


I read a statement that " If a relation is in 3NF and does not contain any overlapping candidate key then it is definitely in BCNF"

Suppose we consider a relation R(A,B,C,D) with following functional dependencies:-

AB --> CD

C --> A

Here only candidate key is AB and the resulting relation is in 3NF and not in BCNF because C is not a super key. So the above statement doesn't hold true.

Where am I going wrong ?


Solution

  • Your relation has overlapping candidate keys. While it doesn't appear on the left-hand side of the given functional dependencies, we can derive the fact that BC is a candidate key.

    Starting with C -> A, we can use Armstrong's Axiom of Augmentation to determine that CB -> AB, and since it's known that AB is a candidate key, that means all other attributes are determined.