What is normalization and what are the normal forms?
Normalization is the process of organizing data into multiple related tables to reduce redundancy and avoid update anomalies. The forms build progressively.
1NF — each column holds atomic (indivisible) values; no repeating groups.
2NF — 1NF + every non-key column depends on the whole primary key (no partial dependencies).
3NF — 2NF + non-key columns depend only on the key, not on other non-key columns (no transitive dependencies).
BCNF — stricter 3NF; every determinant must be a candidate key.
Trade-off — higher normalization means more JOINs; for read-heavy workloads, denormalization can be a deliberate optimization.
Know 1NF (atomic values), 2NF (no partial dependency on composite key), 3NF (no transitive dependency). Give an example violation and fix for each.
Denormalization for read performance is equally important to mention. Most production databases are 3NF with selective denormalization.