Star Schema vs Snowflake Schema
Schema design determines how fact and dimension tables are organized. The two most common schemas in BI are Star Schema and Snowflake Schema.
Star Schema
• The most recommended schema for Power BI • Central fact table surrounded by dimension tables • Dimensions connect directly to the fact table • Looks like a star when visualized
Structure: • One fact table at the center • Multiple dimension tables radiating outward • Dimensions are denormalized (flattened — all attributes in one table)
Example: • Fact Table: Sales (OrderID, ProductID, CustomerID, DateKey, Amount, Quantity) • Dimension Tables: Products, Customers, Dates, Stores
Advantages: • Simple to understand and navigate • Fast query performance (fewer joins) • Optimized for Power BI's VertiPaq engine • Easier to create DAX measures
Disadvantages: • Some data redundancy in dimension tables • Dimension tables may be larger due to denormalization
Snowflake Schema
• An extension of the Star Schema • Dimension tables are normalized (broken into sub-dimensions) • Looks like a snowflake when visualized
Structure: • One fact table at the center • Dimension tables that link to sub-dimension tables • More tables, more relationships
Example: • Fact Table: Sales • Dimension: Products → links to → Product Category → links to → Product Department
Advantages: • Less data redundancy • Better data integrity through normalization • Uses less storage space
Disadvantages: • More complex queries (more joins) • Slower performance in Power BI • Harder to understand and maintain
Comparison Table
| Feature | Star Schema | Snowflake Schema |
|---|---|---|
| Structure | Simple (flat dimensions) | Complex (normalized dimensions) |
| Number of Tables | Fewer | More |
| Joins Required | Fewer | More |
| Query Performance | Faster | Slower |
| Data Redundancy | Some | Minimal |
| Storage | More | Less |
| Recommended for Power BI | ✅ Yes | ❌ Not ideal |
Best Practice for Power BI
Always prefer Star Schema because: • Power BI's VertiPaq engine is optimized for star schemas • Fewer relationships mean faster DAX calculations • Simpler models are easier to maintain and debug • If you inherit a snowflake schema, consider flattening dimensions in Power Query before loading