Data Modeling & Warehousing Fundamentals
Back to Dimensional Modeling in Practice

Slowly Changing Dimensions (SCDs)

How dimensions change over time — and the three (well, six) strategies for handling history. FIND_VIDEO: search 'slowly changing dimensions SCD type 2' — recommended channel: Kahan Data Solutions / Kimball Group. Aim for 12 min or under.

7 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.
Loading progress...

Key moments

  1. Introduction to SCDs — Dimensional attributes evolve over time and require structured management techniques to maintain reporting consistency.
  2. SCD Type 0: Fixed Attribute — Attribute values remain permanently immutable after creation to preserve original baseline data.
  3. SCD Type 1: Overwrite — Existing values are updated in place, intentionally discarding historical values for current-state reporting.
  4. SCD Type 2: Full History — Changes trigger new row insertions using surrogate keys, active indicators, and effective date ranges to track full history.
  5. SCD Type 3: Limited History — A dedicated previous-value column is added to track single-level history without generating additional rows.
  6. SCD Type 4: Mini Dimensions — Volatile attributes are separated into a mini-dimension table linked independently to the fact table.
  7. Hybrid SCD Approaches — Techniques like Types 5 and 6 combine multiple SCD methods to satisfy complex enterprise data requirements.
PDF notes

Frequently asked questions

Why is a surrogate key mandatory for SCD Type 2 implementations?

Because the natural business key remains identical across multiple versions, a distinct surrogate primary key is required to uniquely identify each historical state in fact tables.

When should an engineer choose SCD Type 3 over SCD Type 2?

Choose Type 3 when reporting strictly requires comparing the current state against the immediate prior state and full multi-version history is unnecessary.

What is the primary trade-off when implementing SCD Type 4 mini-dimensions?

Type 4 prevents dimension row explosion from volatile attributes, but requires managing two separate foreign keys inside the fact table schema.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.