Boyce-Codd Normal Form (BCNF) in DBMS
The Boyce-Codd Normal Form (BCNF) is a stricter version of the Third Normal Form (3NF). It eliminates certain types of redundancy that 3NF may still allow, ensuring higher data integrity.
DBMS Tutorial:-
SQL Tutorial:-
What is BCNF?
A relation is in BCNF if, for every functional dependency X → Y, the left-hand side X is a super key. In short, the LHS of every functional dependency must be a super key.
Note: A table must already be in 3NF before checking BCNF compliance.
Example Scenario
Consider an EMPLOYEE table with functional dependencies:
EMP_ID → EMP_COUNTRYEMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}- Candidate Key:
{EMP_ID, EMP_DEPT}
Neither EMP_ID nor EMP_DEPT alone is a super key, which violates BCNF. Hence the table is NOT in BCNF.
BCNF Decomposition
We break the table into three relations:
- EMP_COUNTRY (EMP_ID → EMP_COUNTRY)
- EMP_DEPT (EMP_DEPT → DEPT_TYPE, EMP_DEPT_NO)
- EMP_DEPT_MAPPING (key: {EMP_ID, EMP_DEPT})
Now every functional dependency has a super key on its LHS, so the design is in BCNF.
3NF vs BCNF
3NF allows a non-prime attribute to determine part of a candidate key in some cases; BCNF removes this exception by requiring every determinant to be a super key. Every BCNF relation is in 3NF, but not vice versa.
Download New Real Time Projects:- Click here
Complete Python Course:-
Conclusion
BCNF eliminates redundancy more effectively than 3NF by enforcing stricter rules on functional dependencies. Decomposing into BCNF ensures higher data integrity and avoids anomalies. For more database concepts, stay connected with .
boyce-codd normal form in dbms
boyce-codd normal form example
bcnf example
difference between 3nf and bcnf
bcnf condition
normalization in dbms
bcnf decomposition
boyce codd normal form pdf