Performance Implications of Normalization vs. Denormalization

Introduction

Normalization and denormalization are not simply "right" and "wrong" ways to design a schema — they are two ends of a trade-off spectrum. A highly normalized schema stores each fact exactly once, which keeps writes small, cheap, and safe from update anomalies, but it scatters related data across many tables so that answering a question often requires several joins. A denormalized schema pre-combines or pre-computes that data so reads are fast, but the same fact now lives in multiple places, meaning every write must touch more rows and the risk of inconsistency rises. Storage follows a similar pattern: redundancy costs disk space, and summary tables and extra indexes cost even more.

This topic matters in COP4708 because design decisions are only defensible when you can tie them to a workload. Before choosing a degree of normalization you need to profile how the application actually behaves: what fraction of operations are reads versus writes, which queries are on the critical path, how often data changes, and how large the tables will grow. The same schema can be excellent for a reporting workload and terrible for a transaction-heavy one. The goal is a repeatable framework — measure the workload, estimate read cost, write cost, and storage cost for each candidate design, and justify the choice explicitly.

As you watch the videos below, look for three things. First, note how each presenter characterizes the cost of a join versus the cost of maintaining redundant data. Second, watch for the vocabulary of workload profiling — read-heavy, write-heavy, OLTP, analytics — and how that vocabulary drives the recommendation. Third, pay attention to indexing, caching, and replication as alternatives to denormalization; a performance problem does not always require changing the schema, and knowing the other options is part of making a defensible design decision.

Video 1: Normalization VS Denormalization - Data Modeling Best Practices

PhoenixAI (the original creator of StarRocks) · 4:40 · 1,357 views · 2y ago · captions — Watch on YouTube

About this video

A short, focused comparison of normalized and denormalized data models, including what each approach does to redundancy, join counts, and query speed. The chapter markers in the description suggest it walks through each approach in turn and then contrasts them, likely with examples of when a data modeler would pick one over the other. Expect it to frame the choice around analytical versus transactional use, since the channel comes from the team behind an analytics database engine.

Why this video

This is the most directly on-topic video for the module: it addresses the normalization-versus-denormalization trade-off head on, in under five minutes, which makes it a good orientation piece before the deeper performance discussion.

Video 2: 7 Must-know Strategies to Scale Your Database

ByteByteGo · 8:42 · 285,678 views · 2y ago · captions — Watch on YouTube

About this video

ByteByteGo surveys seven techniques commonly used to make a database handle more load, which typically include indexing, caching, replication, sharding, vertical scaling, and denormalization. The framing is practical and system-level, showing where each technique helps and what it costs. Denormalization appears here as one tool among several rather than as an automatic answer to slow queries.

Why this video

It places denormalization in the broader context of scalability goals and workload pressure, which is exactly the perspective needed to build a structured decision framework rather than a reflexive schema change.

Video 3: SQL indexing best practices | How to make your database FASTER!

CockroachDB · 4:08 · 316,259 views · 4y ago · captions — Watch on YouTube

About this video

A concise walkthrough of SQL indexing best practices from CockroachDB, covering how indexes accelerate lookups and which columns are worth indexing. It should also address the flip side that matters for this topic: indexes consume storage and add overhead to inserts, updates, and deletes. That read-speed-for-write-cost exchange mirrors the normalization trade-off almost exactly.

Why this video

Indexing is the cleanest illustration of the read-versus-write-versus-storage triangle at the heart of this topic, and it demonstrates a non-schema alternative to consider before denormalizing.

How These Videos Support the Learning Outcomes

Together these videos support the comparative and decision-making outcomes of the module. The PhoenixAI video gives you the core vocabulary and contrast needed to weigh read performance, write overhead, and storage cost between a normalized and a denormalized schema (MO4), and to recognize techniques such as merging tables or storing precomputed values as deliberate denormalization choices (MO3). The ByteByteGo video supplies the workload and scalability context — read-heavy versus write-heavy patterns, and the alternatives of caching, replication, and sharding — that a structured justification must account for (MO5). The CockroachDB indexing video grounds the same trade-off in a concrete, measurable mechanism, reinforcing that every gain in read speed is paid for somewhere in write cost or storage (MO4, MO5). The videos assume you already know how to identify functional dependencies and normalize a design (MO1, MO2); they pick up where that work ends, asking whether and how far to back away from full normalization.

About These Videos

These videos were chosen from YouTube on October 2, 2026. Each has captions; the player turns them on. Videos on YouTube can be changed or removed — if one no longer plays, tell your instructor. If a player does not appear, use its Watch on YouTube link.