▶  Watch

Normalization vs Denormalization: One Master Copy, or Photocopies Everywhere?

Two opposite schema philosophies trading correctness for speed: normalization stores each fact exactly once and joins to read it back; denormalization copies the data into every row that needs it so reads skip the join, at the cost of keeping every copy in sync.

Databases Schema Design
What this teaches

Normalization stores each fact once — a customer's address lives in one row, and every order references it by foreign key — so an update is correct everywhere but a read needs a join. Denormalization copies that data directly into each order row so reads need no join, but now every copy must be updated together or they drift out of sync (the update anomaly). The practical rule: normalize until it hurts, then denormalize only the hot read paths on purpose.

Transcript

Your app is slow because every page stitches together five tables. The obvious fix: copy the data in so you never have to join. But a copy can quietly go stale and lie. That tension is the heart of database design — normalize, or denormalize?

Normalization stores each fact exactly ONCE. A customer's address lives in one row; every order just references that customer by ID. Change the address in that one place, and every order instantly reflects it. One master copy — no duplication, no contradictions.

But to show an order WITH the customer's name and address, you join across tables — and across many tables, or distributed nodes, those joins get expensive. So denormalization copies the data in: the name and address sit right inside the order row. No join, instant read — a photocopy on every desk.

So it's a straight trade. Normalized: no duplication, airtight integrity, but reads pay for joins. Denormalized: blazing reads with no joins — but now the same fact is copied in a hundred places, and copies drift.

That's the update anomaly: because the fact is copied, changing it means updating every copy — and every one you miss becomes a lie. So denormalized data buys read speed by spending write-simplicity and truth. You keep the photocopies in sync yourself.

So the rule of thumb: normalize until it hurts, then denormalize the hot read paths on purpose — and own the duplication. One master copy that's always right, or photocopies that are always fast? It comes down to writes, or reads?

← All videos · Vibe Engines · 2026