Schema Design June 28, 2026 • 10 min read
A Practical Guide to Database Normalization (1NF to 3NF)
Written by Marcus Vance
Database normalization is the process of structuring relational database columns and tables to reduce data redundancy and eliminate anomalies.
1. First Normal Form (1NF)
To satisfy 1NF, each table cell must contain a single, atomic value. No lists or comma-separated values are allowed in a single column cell.
-- Bad: comma separated lists
-- users (id, name, roles) -> 1, 'Sarah', 'admin,editor'
-- Good: normalized to satisfy 1NF
-- users (id, name) -> 1, 'Sarah'
-- user_roles (user_id, role) -> (1, 'admin'), (1, 'editor')
2. Second Normal Form (2NF)
Must be in 1NF and all non-key columns must be fully functionally dependent on the primary key, avoiding partial dependencies.
3. Third Normal Form (3NF)
Must be in 2NF and must not contain transitive dependencies. Non-primary columns must depend only on the primary key, not on other non-key columns.