Boyce-Codd Normal Form (BCNF)
3NF vs. BCNF
- BCNF is similar to 3NF.
- Differs only when there are overlapping candidate keys.
- If there are no overlapping candidate keys, then 3NF ⇔ BCNF
A table that is 3NF but not BCNF
student_in_course(sn_old, sn_new, semester, course_number, grade)
Candidate keys:
(sn_old, course_number, semester)
(sn_new, course_number, semester)
Functional dependencies (omitting derived FDs):
sn_old → sn_new
sn_new → sn_old
|