Chapter 19 — Further Reading

Foundations (🔬 CS Student)

  • E. F. Codd's papers on normalization (1NF–3NF) and Boyce-Codd's BCNF. The origin of the normal forms; rigorous and historically illuminating.
  • Ramakrishnan & Gehrke / Silberschatz / Elmasri & Navathe — the normalization chapters. Functional dependencies, closure, minimal cover, decomposition algorithms (lossless-join, dependency-preserving), and 4NF/5NF. The full theory.
  • C. J. Date, Database Design and Relational Theory: Normal Forms and All That Jazz. A deep, opinionated, modern treatment of normalization theory.

Approachable explanations (everyone)

  • "Normalization explained with examples" tutorials — many walk a flat table through 1NF→3NF much like this chapter's anchor. A second pass with different data helps it stick.
  • "A simple guide to five normal forms" (the classic Kent paper, "A Simple Guide to Five Normal Forms in Relational Database Theory") — concise and famous.
  • The mnemonic — "the key, the whole key, and nothing but the key (so help me Codd)" — a memorable summary of 1NF/2NF/3NF.

In practice (💻 Developer · 🏗️ DBA)

  • Articles on "denormalization trade-offs" — preview of Chapter 20; understand both directions together.
  • "When to break normalization" — practitioner perspectives on the read-performance vs. write-integrity balance.
  • dbt / analytics-engineering on "normalized vs. dimensional modeling" — how OLTP (normalized) and OLAP/warehouse (often denormalized/star schema, Chapter 34) differ by purpose.

Reference (this book)

  • Appendix F — Normalization Reference: 1NF–BCNF with worked examples, on one page.
  • Chapter 20 — Denormalization (next): the deliberate reverse.
  • Chapter 34 — Data Warehousing: where denormalized star schemas are the right default for analytics.

Do, don't just read

  • Normalize the chapter's flat table yourself, step by step, then compare your result to Mercado's sql/schema.sql. They should essentially match — that's the anchor's lesson.
  • Audit a real schema (yours or one online) for transitive dependencies (Case Study 2): for each non-key column, ask "does this depend on the key, or on another column?"
  • Write the FDs for three of your project's tables and confirm each table is in 3NF.

Next: Chapter 20 — Denormalization: breaking the rules on purpose.