Back to library

🗄️Database Normalization Basics

Stop memorizing normal forms abstractly and start using them as design tools — see exactly why redundancy creates update anomalies, walk a messy table through 1NF, 2NF, and 3NF with real before/after schemas, then design a production-ready schema and defend every table you create.

Foundations14 drops~2-week path · 5–8 min/daytechnology

Phase 1Why Redundancy Breaks Your Database

See why duplication breaks updates and corrupts data

4 drops
  1. Duplicate data is a time bomb, not a convenience

    6 min

    Duplicate data is a time bomb, not a convenience

  2. Every column either depends on the key, or it doesn't belong

    6 min

    Every column either depends on the key, or it doesn't belong

  3. An UPDATE statement should change one row — not many

    6 min

    An UPDATE statement should change one row — not many

  4. If you can't insert A without inventing B, your schema is wrong

    7 min

    If you can't insert A without inventing B, your schema is wrong

Phase 2Walking a Messy Table Through 1NF, 2NF, 3NF

Normalize a messy table through 1NF, 2NF, and 3NF

5 drops
  1. 1NF: every cell holds one value, not a list

    7 min

    1NF: every cell holds one value, not a list

  2. 2NF: no column should depend on only part of the key

    7 min

    2NF: no column should depend on only part of the key

  3. 3NF: non-key columns should not depend on other non-key columns

    7 min

    3NF: non-key columns should not depend on other non-key columns

  4. BCNF: when 3NF still leaves room for trouble

    7 min

    BCNF: when 3NF still leaves room for trouble

  5. Take one ugly table and walk it through 1NF, 2NF, 3NF

    8 min

    Take one ugly table and walk it through 1NF, 2NF, 3NF

Phase 3Normalization vs Denormalization in the Real World

Trade normalization for performance with eyes open

4 drops
  1. Five-table joins on every page load are a real problem

    7 min

    Five-table joins on every page load are a real problem

  2. Three legitimate ways to break the rules on purpose

    8 min

    Three legitimate ways to break the rules on purpose

  3. Some 'denormalization' isn't denormalization — it's a snapshot

    7 min

    Some 'denormalization' isn't denormalization — it's a snapshot

  4. JSONB, schema-on-read, and when to ignore the rules entirely

    8 min

    JSONB, schema-on-read, and when to ignore the rules entirely

Phase 4Design a Schema and Defend Every Table

Design a real app schema and defend every table

1 drop
  1. Design a real app schema and defend every decision

    8 min

    Design a real app schema and defend every decision

Frequently asked questions

What is database normalization in plain English?
This is covered in the “Database Normalization Basics” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
What is the difference between 1NF, 2NF, and 3NF?
This is covered in the “Database Normalization Basics” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
Why do update anomalies happen in unnormalized tables?
This is covered in the “Database Normalization Basics” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
When should I denormalize a database for performance?
This is covered in the “Database Normalization Basics” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
Do modern apps still need to normalize, or is denormalization fine?
This is covered in the “Database Normalization Basics” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.