The Data Model in Power BI
What a data model is and why it is the foundation of every good Power BI report
The data model is the heart of Power BI. Everything you build — every visual, every measure, every filter — runs on top of the data model. Understanding it well separates analysts who build accurate reports from those who get wrong numbers.
A data model is simply a collection of tables and the relationships between them. Instead of having one giant flat table with all your data (like a pivot table in Excel), Power BI links separate tables through key columns. This approach is faster, uses less memory, and makes calculations far more flexible.
Power BI uses an in-memory engine called VertiPaq that compresses and stores your data — this is why even 10 million row reports can load in seconds when the model is designed correctly.
✗ Flat Table (Avoid)
| OrderID | Customer | Product | Category | Region | Amount |
|---|---|---|---|---|---|
| 1001 | Rahul | Laptop | Electronics | Delhi | 45,000 |
| 1002 | Rahul | Mobile | Electronics | Delhi | 18,000 |
| 1003 | Priya | Laptop | Electronics | Noida | 47,000 |
"Rahul", "Laptop", "Electronics" repeated in every row → bloated, slow
✓ Star Schema (Best Practice)
FACT_Sales
OrderID · CustID · ProdID · Amount
DIM_Customers
CustID · Name · Region · Segment
DIM_Products
ProdID · Name · Category · Price
DIM_Date
DateKey · Date · Month · Quarter · Year
Each name appears once → compact, fast, clean DAX
Example
Key Points
- ✓Model View (chain-link icon on left) shows all tables and their relationships as a diagram
- ✓A good model has fact tables (transactions, sales, orders) and dimension tables (products, customers, dates)
- ✓Never combine all data into one flat table — it hurts performance and makes DAX harder
- ✓Relationships let you filter across tables — filter a dimension and it filters the fact table automatically
- ✓Power BI can handle hundreds of millions of rows in a well-optimised model
Practice Question
In a Power BI data model, which type of table typically contains the transactional data (like sales records with amounts and dates)?