3. BCNF(Boyce–Codd normal form)
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).
1. BCNF is the advance version of 3NF. It is
stricter than 3NF.
2. A table is in BCNF if every functional
dependency X → Y, X is the super key of the
table.
3. For BCNF, the table should be in 3NF, and for
every FD, LHS is super key.
5. Example-1
Consider relation R(A, B, C)
A -> BC, B -> A
A and B both are super keys so above relation is
in BCNF.
6. Example-2
Consider relation R(A, B, C,D,E)
{AB->C,C->D,D->E,E->A}
We have to find out the candidate keys
(AB)+->ABCDE
(BC)+->BCDEA
(BD)+->BDEAC
(BE)+->BEACD
But C->D,D->E,E->A implies
Partial key->partial key
So the R is not in 2NF so it will not be in BCNF
7. Example-3
Consider relation R(A, B, C)
{A->BC,B->AC,C->AB}
So A,B,C all are candidate keys.
So left hand side of the F.D is candidate key
So the R is in BCNF