Boyce-Codd Normal Form (BCNF)
BCNF stands for Boyce-Codd normal form and was made by R.F Boyce and E.F Codd in 1974.A functional dependency is said to be in BCNF if these properties hold:
- It should already be in 3NF.
- For a functional dependency say P->Q, P should be a super key.
BCNF is an extension of 3NF and it is has more strict rules than 3NF. Also, it is considered to be more stronger than 3NF.
Example of BCNF
For the relation R(A, B, C, D) with functional dependencies as {A->B, A->C, C->D, C->A}:
The candidate keys will be : {A, C}
as the closure of A = {A, B, C, D}
closure of C = {A, B, C, D}
This relation is in BCNF as it is already in 3Nf (there is no prime attribute deriving no prime attribute) and on the left hand side of the functional dependency there is a candidate key.
Difference between 3NF and BCNF in DBMS
A relation is in the third normal form, if there is no transitive dependency for non-prime attributes as well as it is in the second normal form. The Boyce-Codd Normal Form (BCNF) is based on functional dependencies, BCNF has additional constraints when compared to the basic definition of 3NF. In this article, we will see the differences between 3NF and BCNF.