DEV Community

jim kinyua
jim kinyua

Posted on

Schemas and Data Modelling in Power BI

Everyone loves building flashy visuals and writing clever DAX measures in Power BI, and those things definitely matter. But the truth is, the single biggest factor in whether your report performs well, scales nicely, and gives trustworthy results is data modelling.

Get the model right, and everything else becomes easier: calculations run faster, measures are simpler to write, filters behave as expected, and totals add up correctly. Get it wrong, and you’ll spend endless hours fighting performance issues, chasing phantom duplicates, or explaining why the numbers don’t match what the business expects.

Data modelling is basically about answering three core questions:

  1. Where do the numbers live? (sales amounts, quantities, revenue)
  2. Where do the descriptive attributes live? (product names, customer details, dates etc)
  3. How do all these tables connect?

Fact Tables vs. Dimension Tables

Fact tables
They hold the measurable events. These are the things that happened in the business. Think sales transactions, orders, inventory movements, clicks, or support tickets. They’re usually full of numeric values (facts) and foreign keys that reference other tables.

Dimension tables
They provide the "who, what, where, when, why" context. They contain descriptive fields and are typically much smaller than fact tables.

The Star Schema
In a star schema, you have the following

  1. One central fact table
  2. Several dimension tables connected directly to it (usually via single-direction relationships from dimension to fact)

Hence the name Star.
It's important to note that the star schema is the gold standard for Power BI (and most modern BI tools). It’s simple, fast, and plays perfectly to how Power BI’s engine (VertiPaq) works.

The Snowflake Schema
A snowflake schema is basically a normalized star schema. Instead of keeping everything in one dimension table, you split dimensions into multiple related tables (e.g., Product → Category → Subcategory → Department).

Comparison Between Star and Snowflake

Feature Star Schema Snowflake Schema
Complexity Simple and intuitive More complex
Query performance Faster (fewer joins) Slightly slower
DAX development Much easier More complicated

Bottom line: Use a star schema in Power BI unless you have a massive warehouse where normalization savings outweigh speed.

Why Good Data Modelling Actually Matters

A good model is not a “nice to have” but will affect every aspect of your reporting experience. Performance comes first. The column-store engine (VertiPaq) in Power BI is highly optimized for star schema models. This means there are fewer tables to join, and the relationships are simpler, so queries run much faster — especially as users begin to slice and dice the data. A flat table or a “snowflake” mess will slow things down considerably

Accuracy is a must. When relationships are defined correctly (with the right cardinality and cross-filtering), filters work as expected, totals aren’t double-counted, and grand totals match what’s expected at lower levels. Get this wrong, and you’ll get inconsistent or wrong numbers — the quickest way to undermine trust in your reports.

Simpler DAX formulas are a massive benefit. In a properly modeled star schema, most calculations can be simple aggregations (SUM, COUNT, AVERAGE) with CALCULATE filters as needed. No more complex workarounds, heavy use of iterators, or “treat the table like an Excel sheet.” Debugging is simpler too — usually, problems are visible in seconds, not hours.

Finally, maintainability and scalability. A model that’s clean and logical is easy for others (or for you, later) to understand. It scales well as you add more data or subject areas, and you can often reuse the same model in multiple reports or even share it in a Power BI dataset for the whole team.

In short: Take the time to model your data properly. The difference between a report that feels snappy and reliable and one that’s always fighting you is huge. The visuals and DAX formulas are great, but they’re only as good as the foundation they’re built on.

Top comments (0)