Loading...

Exploring the Many Faces of Power BI Data Models: Star, Snowflake, and Galaxy Schemas

Exploring the Many Faces of Power BI Data Models: Star, Snowflake, and Galaxy Schemas

In Power BI, a data model is the foundation of your analysis. It organizes the data, establishes relationships between different tables, and allows for aggregation, filtering, and modeling of your business logic for effective reporting. The way your data model is set up has a significant impact on performance, usability, and the quality of insights you derive from your data.



Below are the types of data models you will typically use in Power BI, their usages, and how to implement them:

1. Star Schema

Usage:
The star schema is one of the most commonly used data modeling techniques for creating a simplified and highly efficient data model. It’s great for reporting and business intelligence because it is intuitive, improves performance, and avoids complex joins.

Structure:
The model consists of a central fact table connected to multiple dimension tables, forming a structure that looks like a star.

  • Fact Table: Contains business measurements, usually quantitative data such as sales revenue, quantity sold, or order costs. These tables often have foreign keys that link to dimension tables.
  • Dimension Tables: These contain descriptive information that provides context to the measurements in the fact table, such as Customer, Product, or Time.

Example:

  • Fact Table: Sales (with fields like Sales_ID, Date_Key, Product_ID, Customer_ID, Sales_Amount)
  • Dimension Tables: Time (Date), Product (Product_ID, Name, Category), Customer (Customer_ID, Name, Region)

Implementation in Power BI:

  • Import data from the respective sources.
  • In the Model View, define relationships (Fact -> Dimensions).
  • Set proper cardinality (usually 1:* from Dimension to Fact).
  • Configure Date dimension for time intelligence (like Year, Month, Quarter).

Advantages:

  • Easy to navigate and understand.
  • Efficient querying and calculations.
  • Great for BI reports with aggregated data.

2. Snowflake Schema

Usage:
The snowflake schema is similar to the star schema but with normalized dimension tables. It is often used in situations where there’s a need for high granularity in reporting or when the data model should adhere to a normalized structure (reduce data redundancy).

Structure:

  • Fact Table: Like in the star schema, it holds business transaction data.
  • Normalized Dimension Tables: Dimensions are further divided into related tables to remove data redundancy. For example, a Product Category dimension might be separated into different tables (ProductCategory, ProductSubcategory, etc.).

Example:

  • Fact Table: Sales (Sales_ID, Date_Key, Product_ID, Customer_ID, Sales_Amount)
  • Dimension Tables:
    • Product (Product_ID, ProductName, ProductSubcategory_ID)
    • Product Subcategory (ProductSubcategory_ID, SubcategoryName, ProductCategory_ID)
    • Product Category (ProductCategory_ID, CategoryName)

Implementation in Power BI:

  • Import data with normalization, creating additional sub-dimension tables.
  • Define the relationships in Model View ensuring correct primary-foreign key linkage between normalized tables.
  • Perform necessary calculations using DAX (e.g., join columns or use functions like RELATED() to pull from related tables).

Advantages:

  • More normalized data, saving space and avoiding redundancy.
  • Easier to maintain when dimensions change.

Disadvantages:

  • Can lead to complex relationships.
  • Queries may be slower compared to the star schema since more joins are involved.

3. Galaxy Schema (or Fact Constellation Schema)

Usage:
The Galaxy schema involves multiple fact tables sharing common dimension tables. It’s useful in complex business scenarios where you have multiple fact tables (e.g., Sales, Returns, Inventory) that need to be analyzed together, all linked to the same set of dimension tables.

Structure:

  • Contains multiple fact tables and common dimension tables. Dimensions are typically shared across all fact tables (e.g., Product, Customer, Date).
  • Example: You might have both Sales and Returns as two fact tables, but both link to common dimension tables like Product, Customer, and Date.

Example:

  • Fact Tables: Sales (Sales_ID, Product_ID, Customer_ID, Sales_Amount), Returns (Return_ID, Product_ID, Customer_ID, Return_Amount)
  • Shared Dimension Tables: Product (Product_ID, ProductName), Customer (Customer_ID, CustomerName), Date (Date_ID, Year, Month)

Implementation in Power BI:

  • Import multiple fact tables with common dimension keys.
  • In Model View, create one-to-many relationships from the fact tables to the dimension tables.
  • Use aggregation and DAX to create shared measures between the fact tables.

Advantages:

  • Useful for businesses with multiple related transactional datasets.
  • Allows flexible and consolidated reporting from different perspectives.

Disadvantages:

  • More complex structure.
  • Can lead to confusion if relationships are not well defined.

4. Flat Model (Denormalized Model)

Usage:
In a flat model, all data is stored in a single table (denormalized), usually used in simpler or smaller data scenarios. This model does not require relationships between tables but often sacrifices data redundancy for simplicity.

Structure:

  • Data from multiple source tables are combined into one large table. This can include fact data alongside dimensional data.

Example:
A single Sales table containing columns for Sales_ID, ProductName, CustomerName, Sales_Amount, OrderDate, etc., instead of splitting them into separate Product and Customer tables.

Implementation in Power BI:

  • Import the flat file or denormalized dataset.
  • You don’t need to define any relationships since there is only one table.
  • Use DAX or Power Query for any necessary transformation or grouping.

Advantages:

  • Very simple to implement.
  • Fast performance for smaller datasets.

Disadvantages:

  • Poor scalability; data duplication increases.
  • Difficult to maintain as data grows.

5. One-to-Many with Bridging (Many-to-Many)

Usage:
Sometimes, the standard one-to-many relationship is not enough, and you have a many-to-many relationship. In this case, you would create a bridge table to act as a mediator between the related tables. This is common in scenarios where products and customers have many-to-many relationships (a product can belong to multiple categories, or customers can have multiple products).

Structure:

  • Fact Table to Bridge Table (1:*)
  • Bridge Table to Dimension Table (many:1)

Example:
If Customers can have many products and each product can be linked to many customers, the bridge table stores unique pairings of customer IDs and product IDs, effectively resolving the many-to-many relationship.

Implementation in Power BI:

  • Create a bridge table.
  • Set one-to-many relationships from the fact table to the bridge table and the bridge table to the dimension tables.
  • Ensure that you use appropriate DAX functions to aggregate measures across many-to-many links (like SUMX()).

Advantages:

  • Useful for complex many-to-many relationships without data duplication.
  • Supports advanced analytics scenarios.

Disadvantages:

  • Complex to implement and manage.
  • Can increase computational load on large datasets.

Conclusion:

Choosing the right data model for Power BI largely depends on the complexity of the dataset and the business requirements. Here’s a quick summary:

  • Star Schema is ideal for simplified, high-performance reporting.
  • Snowflake Schema works well when you need normalization and more granular control.
  • Galaxy Schema is for businesses with multiple related facts.
  • Flat Model is the simplest but not recommended for large, complex datasets.
  • One-to-Many with Bridging (Many-to-Many) is useful for complex relationships between entities.

Implementing these models in Power BI involves choosing the right data source, defining relationships in Model View, and creating appropriate measures and calculations using DAX to optimize report performance. 

Published on:

Learn more
Power Platform , D365 CE & Cloud
Power Platform , D365 CE & Cloud

Dynamics 365 CE, Power Apps, Powerapps, Azure, Dataverse, D365,Power Platforms (Power Apps, Power Automate, Virtual Agent and AI Builder), Book Review

Share post:

Related posts

Optimising DAX: VertiPaq Encoding Techniques

VertiPaq fits millions of rows in memory by compressing columns. Learn how value, hash and run-length encoding work, and what they mean for mo...

12 hours ago

Building in the Agentic Era with Power BI and Fabric

Microsoft Build 2026 marks a major shift in how developers build data experiences with AI agents. Today we're announcing two capabilities that...

1 day ago

Power BI at Microsoft Build 2026: The Agentic Era of analytics

Microsoft Build 2026 brings the next generation of intelligent analytics to Power BI—where agents do the building, apps deliver insights ...

1 day ago

DAX User-Defined Functions (Generally Available)

DAX user-defined functions are now production-ready based on community feedback and internal validation. Their adoption during preview shows t...

2 days ago

No Code Power BI: How to Use Claude and the Power BI Modeling MCP Server

What if you could build a complete Power BI semantic model — date table, time intelligence measures, relationships and all — without touching ...

5 days ago

Power Query, Dataflows, and What’s Next — A Conversation with Miguel Escobar | Fabric Insider Ep. 3

Power Query is one of those tools that has been close to my heart for a very long time. I wrote a full book on it, I have trained thousands of...

6 days ago

Microsoft Cans Power BI App for Microsoft 365 Usage

Microsoft has announced that the Microsoft 365 Usage Analytics Power BI app will retire on August 1, 2026. The alternative is the usage report...

6 days ago

Microsoft 365 Usage Analytics Power BI template app will be retired

The Microsoft 365 Usage Analytics Power BI template app will be retired, with new downloads ending June 1, 2026, and support ending August 1, ...

7 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy