🧱 Data Modeling
Keys and relationships, normalization, star vs. snowflake schemas, and slowly changing dimensions.
No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.
Before you start: Learn SQL — Series 1 entire, plus INSERT … SELECT from Series 2. Series 1 models Northwind, the business you queried all through Learn SQL: you decide what its tables should be, load its real rows into them, and run your first report again on your own model. You should already be comfortable with SELECT, WHERE, JOIN and GROUP BY, and able to INSERT rows selected from another table, so your attention goes on the modelling and not on the SQL.
Short on time? The 33 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.
Series 1 · Modeling Fundamentals
model a business you already know, from its sentences to tables that prove themselves
- 01
Start Here: The Modeling Loop — From What a Business Does to Tables That Prove It
corebeginnercoming soon - 02
Entities & Attributes — Is It a Thing, or a Fact About a Thing?
corebeginner#chencoming soon - 03
Relationships, Cardinality & Optionality — Business Rules as Lines on a Diagram
corebeginner#chencoming soon - 04
Grain & Keys — One Row per What, and What Makes It Unique
corebeginner#kimballcoming soon - 05
Many-to-Many & Junction Tables — When the Link Is the Real Thing
corebeginnercoming soon - 06
Normalization: 1NF, 2NF, 3NF — Functional Dependencies and the Update That Goes Half-Wrong
corebeginner#coddcoming soon - 07
Copy or Reference — When Duplicated Data Is Really a Point-in-Time Fact
corebeginnercoming soon - 08
Supertypes & Subtypes — Customers, Suppliers, Shippers, Employees: One Thing or Four?
corebeginnercoming soon - 09
Data Types & Domains — The Physical Choice That Is Hardest to Undo
corebeginnercoming soon - 10
Foreign Keys & Referential Integrity — Relationships the Database Enforces, Not Just Draws
corebeginnercoming soon - 11
NOT NULL, UNIQUE, CHECK & DEFAULT — Rules That Match Reality
corebeginnercoming soon - 12
Nullable, Missing Row or Separate Table — What an Empty Cell Should Mean
corebeginnercoming soon - 13
From Diagram to DDL — CREATE TABLE, and Names a Colleague Can Read
corebeginnercoming soon - 14
Reading a Schema You Didn't Design — Reverse-Engineer It, Then Judge It Fairly
corebeginner#karwincoming soon - 15
Project — Model Northwind's Business: A Schema That Fits, Refuses and Answers
corebeginner#projectcoming soon
Series 2 · Modeling for the Real World
design a schema from a brief nobody finished writing, then keep it alive as the business changes
- 01
From a Brief to a Table List — The Nouns, the Verbs and the Questions to Ask
coreintermediate#evanscoming soon - 02
Design the Library — Your First Schema, From Nothing
coreintermediatecoming soon - 03
Title, Edition, Copy & Keys — Choosing What a Key Identifies
coreintermediate#kimballcoming soon - 04
Relationships That Are Events — Loans, Repeats and Their Own Identity
coreintermediatecoming soon - 05
Hierarchies & Classification — Adjacency List, Path Enumeration, Nested Sets, and a Second Axis
intermediate#celkocoming soon - 06
Temporal Data — Business Time, and What Was True on a Date in the Past
coreintermediate#snodgrasscoming soon - 07
Rules Across Rows — One Loan per Copy at a Time, and Where a Rule Should Live
coreintermediatecoming soon - 08
created_at, updated_by & deleted_at — System Time, and What Soft Deletes Cost
intermediatecoming soon - 09
Lookups, Enums & Reference Data — Where Constants Should Live
intermediatecoming soon - 10
BCNF & When to Stop Normalizing — Saying Far Enough in Review
intermediate#coddcoming soon - 11
Indexes & Denormalization — Designing for the Reads You Expect, in That Order
intermediatecoming soon - 12
JSON Columns — When to Stop Modelling and Store the Document
intermediatecoming soon - 13
Schema Evolution — The Library Goes Live: Add, Rename and Split Without Breaking Anyone
coreintermediate#amblercoming soon - 14
Project — Six Months Later: Ebooks, a Second Branch, and Reservations
coreintermediate#projectcoming soon
Series 3 · Dimensional Modeling
reshape your own model into star schemas for reporting, and prove every total
- 01
OLTP vs OLAP Models — Why One Schema Can't Serve Both
coreadvancedcoming soon - 02
Facts, Dimensions & the Four-Step Design — Process, Grain, Then Dimensions and Facts
coreadvanced#kimballcoming soon - 03
The Star Schema — Build fact_sales From Your Own Model, and Reconcile It
coreadvanced#kimballcoming soon - 04
Fact Grain & Additivity — The Measures You Must Not SUM
coreadvanced#kimballcoming soon - 05
Fact Table Types — One Row per Event, per Period, or per Pipeline
coreadvanced#kimballcoming soon - 06
The Date Dimension & Role-Playing — One Calendar Table, Used Three Ways
coreadvanced#kimballcoming soon - 07
Degenerate & Junk Dimensions — The Order Number With No Table, and the Flags With No Home
coreadvanced#kimballcoming soon - 08
Snowflake vs Star — Normalizing Dimensions, and What It Costs You
advanced#kimballcoming soon - 09
Slowly Changing Dimensions — Type 1, 2 and 3, and Which to Pick
coreadvanced#kimballcoming soon - 10
Bridge Tables — When One Fact Row Belongs to Several Dimension Rows
advanced#kimballcoming soon - 11
Conformed Dimensions & the Bus Matrix — Sales, Stock and Targets on One Product Table
coreadvanced#kimballcoming soon - 12
Data Vault 2.0 — Hubs, Links & Satellites, and When Scale Demands Them
advanced#linstedtcoming soon - 13
One Big Table & Wide Tables — What Columnar Storage Changed, and What It Didn't
advancedcoming soon - 14
Project — From Your Northwind Model to a Star Schema That Reconciles
coreadvanced#project#kimballcoming soon
Where this leads
- NoSQL Concepts — starts from Series 1.
Not here, on purpose
- Writing queries against these schemas — covered in Learn SQL
- Loading the model — pipelines, SCD-2 loads, backfills — covered in ETL & Data Pipelines and Analytics Engineering with dbt
- Loading, querying and running a warehouse at scale, and columnar engine design — covered in Data Warehousing — this course designs the star and proves it on small data
- Running, tuning and migrating the live database — covered in Data Ops — this track designs the change, that one ships it safely
- EXPLAIN, index internals and making a slow query fast — covered in Learn SQL, Series 3. In this course, Series 2 · 40 makes only the design call, before the query exists
- NULL semantics — three-valued logic, and why `= NULL` never matches — covered in Learn SQL, Series 1, which is what NULL does to a query. In this course, Series 1 · 52 is whether the column should allow NULL at all — a different question that happens to share the word
- Querying JSON once it is in a column — covered in Learn SQL, Series 3, which queries JSON once it is there. In this course, Series 2 · 42 asks only whether it should be JSON in the first place
- The Party model, order-to-cash, work effort — the patterns themselves — covered in Data Model Patterns — here you learn to decide, there you inherit decisions already proven
- Contact mechanisms, effective dating, type and status tables and hierarchies as ready-made patterns — covered in Data Model Patterns, which hands over the settled pattern. In this course, Series 1 · 05, Series 2 · 20, Series 2 · 25 and Series 2 · 32 teach how to choose
- Subject areas and bounded contexts — finding your way around a 200-table schema — covered in Schema Teardowns, Series 1, on real schemas of that size
- Multi-tenancy — how one product keeps its customers' data apart — covered in Schema Teardowns, Series 2, from products that live the decision
- How real shipped applications actually modelled it — covered in Schema Teardowns — that track is field evidence, this one is method