Skip to main content

Data Modelling and Warehousing (DE-201)

A source database answers "what is true right now" for one order at a time. An analytics warehouse answers "what happened last quarter, by region, by cohort" for millions of rows at once. The same data, two jobs โ€” and the shape that makes the first job fast makes the second job slow and error-prone. When a finance dashboard disagrees with the source system, the cause is almost never a broken query. It is a model that was never designed for the question being asked.

DE-201 is where you learn to design that model on purpose. You will move from the normalized tables an application writes to, to the dimensional models a warehouse reads from โ€” deciding the grain of a fact table, choosing between a star and a snowflake, and tracking how a customer's attributes change over time without losing last year's truth. You finish able to take a normalized source and build the analytical schema it should feed.

๐ŸŽฏ What you'll learn
  • Explain what normalization buys a source system and why analytics undoes some of it on purpose
  • Decide when a normalized 3NF model fits and when a denormalized one wins, using access patterns rather than dogma
  • Design a dimensional model: choose the grain of a fact table, separate facts from dimensions, and lay out a star schema
  • Compare star and snowflake schemas and justify the extra join a snowflake costs
  • Implement a slowly changing dimension (SCD Type 2) that preserves history
  • Choose a warehouse loading pattern โ€” full reload, insert-only, or upsert โ€” that matches the table it loads

Who this course is forโ€‹

DE-201 is a Practitioner course in the School of Data Engineering. It is written for the learner who can already query data and now needs to design the tables other people query:

  • The analyst crossing over who lives in a BI tool, has felt the pain of a data model that fights every question, and wants to build the model instead.
  • The backend engineer pivoting into data work who knows normalization from application databases and needs to learn where โ€” and why โ€” warehouses break those rules.
  • The cohort learner already inside the migrated data-modelling material, converting hands-on progress into the full credentialed course.

The assumption is that you can read and write SQL joins and GROUP BY comfortably. This course builds the modelling judgment on top of that.

Prerequisitesโ€‹

  • DE-102 SQL for Data Engineers is recommended. This course leans on the joins, aggregation, and window-function fluency DE-102 builds, and the lab reuses the same local sqlite3 workflow.
  • Comfort with multi-table JOIN, GROUP BY, and reading a result set to tell whether a query dropped or doubled rows.
  • Python 3.10 or newer for the lab. It uses only the standard-library sqlite3 module โ€” nothing to install, no server, no cost.

You do not need a warehouse account, a cloud subscription, or any paid tool. Practice runs in the SQL Kingdom playground, and the lab runs entirely on your machine.

Modulesโ€‹

DE-201 is roughly twenty hours of effort across seven modules. This slice delivers three core lessons โ€” the normalization trade-off, dimensional modelling, and slowly changing dimensions โ€” plus a hands-on lab that builds a star schema end to end.

#ModuleWhat you leave with
1Modelling for analyticsGrain, facts, and dimensions as first principles
2Star and snowflake schemasWhen each shape earns its complexity
3Slowly changing dimensionsTypes 1 and 2, and the cost of keeping history
4Normalization vs. denormalization3NF sources, dimensional targets, and access patterns
5Warehouse design workshopFrom business questions to a bus matrix
6Modern layeringStaging, core, and marts (dbt-style, tool-agnostic)
7Anti-patterns clinicOne-big-table, snowflake sprawl, premature aggregation

The three lessons and the lab below cover the core of Modules 1โ€“4 and give you the schema-design skill the rest of the course extends.

Outcomesโ€‹

By the end of this course slice you can:

  • Look at a normalized source schema and name what each normal form protects, then decide where analytics should denormalize and why.
  • Design a star schema for a business process: fix the fact grain, pick the measures, and split the descriptive context into conformed dimensions.
  • Choose a star or a snowflake for a given dimension and defend the join count.
  • Track a changing dimension attribute with SCD Type 2 so historical facts still join to the attribute that was true when they occurred.
  • Match a loading pattern โ€” reload, append, or upsert โ€” to each table in a model.

Where this leadsโ€‹

The model you design here is the target that everything downstream fills. In DE-202 Batch Processing with PySpark you will express the same joins, aggregations, and dimension loads at scale, and in DE-203 Data Engineering on AWS you will land these tables in a cloud warehouse. The modelling judgment you build in DE-201 โ€” the right grain, the right dimension, the right loading pattern โ€” carries straight into both, and into the school capstone.

tip

Do the lessons in order. Normalization comes first because it frames the whole course: dimensional modelling is a deliberate, disciplined denormalization, and slowly changing dimensions are what you add once the star schema exists. The lab then builds a star schema from a normalized source, so it assumes all three.