4.1 Star Schema Design

Key Takeaways

  • Star schema is the recommended data model design for Power BI, consisting of fact tables surrounded by dimension tables.
  • Fact tables contain numeric measures (sales amount, quantity) and foreign keys to dimension tables.
  • Dimension tables contain descriptive attributes (product name, category, customer address) and have a unique primary key.
  • The star shape emerges because one central fact table connects to multiple surrounding dimension tables.
  • Star schema optimizes DAX performance, simplifies report building, and reduces model ambiguity.
Last updated: March 2026

Star Schema Design

Quick Answer: Star schema is the gold standard for Power BI data models. A central fact table holds numeric measurements (revenue, quantity, cost) and connects to surrounding dimension tables that provide descriptive context (who, what, when, where). This design maximizes DAX performance and report simplicity.

What is a Star Schema?

A star schema is a data modeling pattern where:

  1. A central fact table stores quantitative data (measures/metrics)
  2. Multiple dimension tables surround the fact table, providing descriptive context
  3. Each dimension connects to the fact table through a one-to-many relationship
  4. The visual layout resembles a star, with the fact table at the center

Fact Tables

Fact tables contain the numerical measurements that your reports analyze.

Characteristics of Fact Tables

PropertyDescription
GrainEach row represents a specific event or transaction
MeasuresNumeric columns that are aggregated (SUM, AVG, COUNT)
Foreign KeysColumns that link to dimension tables
Row CountUsually the largest table (millions/billions of rows)
NarrowFewer columns than dimension tables

Example: Sales Fact Table

OrderIDDateKeyProductKeyCustomerKeyStoreKeyQuantityUnitPriceTotalAmount
100120260301P-100C-500S-10329.9989.97
100220260301P-205C-312S-221149.00149.00

Key columns (DateKey, ProductKey, etc.) are the foreign keys that connect to dimension tables. Measure columns (Quantity, UnitPrice, TotalAmount) are the values you analyze.

Types of Fact Tables

TypeDescriptionExample
TransactionOne row per eventIndividual sales
Periodic SnapshotOne row per periodMonthly account balances
Accumulating SnapshotOne row per process lifetimeOrder pipeline stages
Factless FactNo measures — tracks eventsStudent attendance

Dimension Tables

Dimension tables provide the descriptive context that gives meaning to the numbers in fact tables.

Characteristics of Dimension Tables

PropertyDescription
Primary KeyUnique identifier for each row
AttributesDescriptive text columns (name, category, address)
HierarchiesNatural levels (Year → Quarter → Month → Day)
Row CountMuch smaller than fact tables (thousands to millions)
WideMany descriptive columns

Common Dimension Tables

DimensionKey AttributesUsed For
DateYear, Quarter, Month, Day, Day of WeekTime-based analysis
ProductName, Category, Subcategory, Brand, ColorProduct analysis
CustomerName, City, State, Country, SegmentCustomer analysis
Store/LocationStore Name, City, Region, ManagerGeographic analysis
EmployeeName, Department, Title, Hire DateHR and sales analysis

Building a Star Schema in Power BI

Step 1: Identify the Grain

Determine what each row in your fact table represents:

  • One sale? One order line? One daily summary?
  • The grain determines the level of detail in your model

Step 2: Identify Dimensions

For each fact, ask the "who, what, when, where, why, how" questions:

  • Who made the sale? → Customer dimension
  • What was sold? → Product dimension
  • When was it sold? → Date dimension
  • Where was it sold? → Store/Location dimension
  • How was it paid? → Payment method dimension

Step 3: Create Relationships

In Power BI Model view:

  1. Drag a key column from a dimension table to the matching column in the fact table
  2. Set cardinality to One-to-Many (one dimension row → many fact rows)
  3. Set cross-filter direction to Single (dimension filters fact, not vice versa)

Step 4: Hide Technical Columns

Hide foreign key columns in fact tables from report view:

  • Report builders should filter using dimension attributes, not key values
  • Right-click column → Hide in report view

Snowflake Schema vs. Star Schema

FeatureStar SchemaSnowflake Schema
Dimension structureFlat (denormalized)Normalized (sub-dimensions)
Number of tablesFewerMore
Query performanceBetter (fewer joins)Slightly worse
StorageSlightly more (duplicate data)Less (normalized)
ComplexitySimplerMore complex
Power BI recommendationPreferredAvoid when possible

Best Practice: In Power BI, always flatten (denormalize) snowflake dimensions into a single table. Power BI's VertiPaq engine compresses data efficiently, making normalization unnecessary and even harmful to performance.

Model Organization Best Practices

  1. Use Model view (diagram view) to visually arrange tables in a star pattern
  2. Place fact tables in the center and dimensions around them
  3. Hide all foreign key columns from report view
  4. Hide all technical/internal columns that users don't need
  5. Create display folders to organize measures by business area
  6. Mark your date table as the official date table (Table Tools → Mark as Date Table)
  7. Disable auto date/time to prevent hidden date table proliferation

On the Exam

The PL-300 frequently tests:

  • Identifying fact tables vs. dimension tables from a business scenario
  • Understanding one-to-many relationship direction (dimension → fact)
  • Knowing when to denormalize a snowflake schema into a star schema
  • Recognizing the role of the date dimension in time intelligence
  • Hiding technical columns from report view
Loading diagram...
Star Schema Example
Test Your Knowledge

In a star schema, which table typically has the most rows?

A
B
C
D
Test Your Knowledge

What is the primary reason Power BI recommends star schema over snowflake schema?

A
B
C
D
Test Your Knowledge

Which columns in a fact table should be hidden from report view?

A
B
C
D