When most people think about Power BI, they imagine dashboards and visuals. But the truth is great Power BI reports start with great data modelling, long before a single visual is created. A strong model improves performance, ensures accurate reporting and provides a scalable foundation for analytics. In this article, we explore fact and dimension tables, star and snowflake schemas, relationships and the importance of good modelling in Power BI.
What is data modelling in Power BI?
Data modelling refers to the process of structuring data into tables, defining relationships between them, and optimizing them for analytical queries. In Power BI, the data model sits at the heart of the solution, powering calculations written in DAX and driving how filters and aggregations behave across visuals. Unlike transactional systems that are optimized for inserts and updates, Power BI models are optimized for fast read and aggregation operations. This makes modelling techniques borrowed from data warehousing such as schemas especially relevant.
Poor modelling leads to slow, inaccurate, or confusing reports. As one source puts it: "Poor data models turn Power BI dashboards into expensive lies."
Star schema
Star schema is a mature modeling approach widely adopted by relational data warehouses. It requires modelers to classify their model tables as either fact or dimension.
key features of the star schema:
- Single-level dimension tables: The dimension tables connect directly to the fact table without extra layers. Each table focuses on one area, like products, regions or time, making it simple to use.
- Denormalized design: In a star schema, related data is stored together in one table using a denormalized approach.
- Common in data warehousing: The star schema is used for quick analysis. It can easily filter or calculate totals.
Let’s understand this with a simple star schema diagram. The fact table Sales is in the center. It holds the numeric data you want to analyze, like sales or profits. Connected to it are dimension tables with descriptive details, such as product names, customer location or dates:
Fact tables
Fact tables store observations or events and can be sales orders, stock balances, exchange rates, temperatures and more. A fact table contains dimension key columns that relate to dimension tables and numeric measure columns. The dimension key columns determine the dimensionality of a fact table while the dimension key values determine the granularity of a fact table.
It is also important to note that dimension tables contain a relatively small number of rows. Fact tables, on the other hand, can contain a large number of rows and continue to grow over time.
Dimension tables
Dimension tables describe business entities - the things you model. Entities can include products, people, places and concepts including time itself. The most consistent table you'll find in a star schema is a date dimension table. A dimension table contains a key column (or columns) that acts as a unique identifier, and other columns. Other columns support filtering and grouping your data.
For example, if you are looking to determine the sales targets, you can store the attributes of the sales targets in a dimension table. Dimension tables group the data in the database when the business creates reports. For example, you can group sales targets by country, product, or retailer and those groupings are stored in dimension tables.
Snowflake schema
The snowflake schema consists of one fact table that is connected to many dimension tables, which can be connected to other dimension tables through a many-to-one relationship. Tables in a snowflake schema are usually normalized to the third normal form. Each dimension table represents exactly one level in a hierarchy.
Relationships in Power BI
Relationships define how tables connect and how filters propagate through the model.
Key relationship concepts:
- Cardinality: One-to-many is the recommended standard
- Cross-filter direction: Single direction (from dimension to fact) is preferred
- Active vs inactive relationships: Only one active relationship can exist between two tables at a time
Poorly designed relationships such as many-to-many or bi-directional filters can lead to ambiguous results, performance degradation and incorrect totals.
Why good data modelling is critical?
- Faster performance - Star schemas reduce query complexity, enabling sub‑second response times.
- Accurate reporting - Good modelling prevents conflicting calculations and improves trust in analytics.
- Scalability - A well‑structured model grows easily with your data.
- Simpler DAX - Cleaner relationships mean easier formulas and fewer workarounds.
- Stronger governance - Consistent modelling improves data integrity and decision quality.
In conclusion, if you want fast, accurate and scalable Power BI reports, start with great modelling. A strong model-built around a star schema, clean fact/dimension separation and well-defined relationships leads to high performance, reliable insights, simpler DAX and long‑term scalability
Great visuals don’t make great reports, great data modelling does.



Top comments (0)