Loading section...
Boyce-Codd Normal Form
Concepts: dmBcnf
BCNF: When 3NF Is Not Enough BCNF is a stricter version of 3NF. A table is in BCNF when every determinant (any column that other columns depend on) is a candidate key. The difference from 3NF: 3NF allows a non-key column to determine another non-key column if the determining column is part of a candidate key. BCNF does not allow this. In practice, BCNF violations are rare. They appear in tables with multiple overlapping candidate keys. The canonical example: a course scheduling table where each course has multiple sections, each taught by one professor, but each professor teaches only one course. Professor determines course (each professor teaches one course). But professor is not a candidate key for the table. This is a BCNF violation even though the table satisfies 3NF. The anomaly: if D