Types of Dimensions in a Data Warehouse (Beginner’s Guide)



This content originally appeared on DEV Community and was authored by Bharath Prasad

When working with data warehouses, one question comes up often: how do we give context to raw numbers? That’s where dimensions come in. They provide the “who, what, where, and when” around facts.

For example, a sales figure of ₹50,000 on its own doesn’t mean much. Add product type, customer details, and location — suddenly the number tells a story.

In any data warehouse, there are two key table types:

Fact Table → Stores the actual numbers like sales, revenue, or quantity.

Dimension Table → Stores descriptive details such as product name, customer ID, region, or time.

Common Types of Dimensions

Here’s a quick breakdown of the major dimension types you’ll see in real-world projects:

Conformed Dimension – shared across multiple reports (like Date or Customer).

Junk Dimension – groups small indicators (payment status, return flag).

Degenerate Dimension – no separate table, lives in fact table (e.g., invoice number).

Role-Playing Dimension – one dimension used in multiple roles (Order Date, Ship Date).

Slowly Changing Dimension (SCD) – tracks changes over time (customer address history).

Snowflake Dimension – normalized into sub-tables (Product → Category → Department).

Outrigger Dimension – linked to another dimension (Store → Region).

Inferred Dimension – placeholder row created when some data is missing.

Why It Matters

Dimensions aren’t just theory — they’re how industries build reports, dashboards, and decision systems. From e-commerce tracking customer behavior to healthcare monitoring patient records, dimensions make analytics possible.

If you’re exploring data engineering or analytics, practicing dimension design is a great starting point. For hands-on learning, check out Learning Labb and try building your own data models.


This content originally appeared on DEV Community and was authored by Bharath Prasad