Boyce-Codd Normal Form
Concepts covered: 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
About This Interactive Section
This section is part of the Beyond 3NF lesson on DataDriven, a free data engineering interview prep platform. Each section includes explanations, worked examples, and hands-on code challenges that execute in real time. SQL queries run against a live PostgreSQL database. Python runs in a sandboxed Docker container. Data modeling problems validate against interactive schema canvases. All content is framed around what data engineering interviewers actually test at companies like Meta, Google, Amazon, Netflix, Stripe, and Databricks.
How DataDriven Lessons Work
DataDriven combines four interview rounds (SQL, Python, Data Modeling, Pipeline Architecture) with adaptive difficulty and spaced repetition. Easy problems get harder as you improve. Weak concepts resurface until you master them. Your readiness score tracks progress across every topic interviewers test. Every lesson section ends with problems you solve by writing and running real code, not by picking multiple-choice answers.