Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A single flat table can answer straightforward Power BI questions. A star schema becomes useful when reports need flexible filtering and grouping across business concepts—such as products, customers, and dates—while summarizing related sales data. It gives descriptive fields and measurable events distinct roles, connected through clear relationships.

What a star schema changes

A star schema organizes a model around a fact table and one or more dimension tables. The fact table records events or observations and contains keys and values used for analysis. Dimension tables describe business entities or concepts and provide fields for filtering and grouping. As Microsoft Learn puts it, “Dimension tables enable filtering and grouping.” (Microsoft Learn: Star schema guidance)

Power BI visuals query the semantic model. When descriptive fields live in dimensions and summarizable data lives in facts, report authors can select useful groupings and filters without treating every repeated description as part of the transaction data. Relationships tell the model how those tables connect.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This is a modeling recommendation, not a claim that Power BI cannot answer questions from a flat table. A denormalized table may be adequate for simple reporting. The benefit of separating roles is clearer, more flexible analysis as reporting needs grow.

How the sales example fits together

Imagine a sales fact table containing Sales Amount and Product Standard Cost, with related Date, Product, Customer, and Reseller dimensions. A report can group sales by product or date, filter by customer or reseller, and use the related descriptive fields to explore the facts. Microsoft’s official tutorial uses this kind of warehouse-style star schema and demonstrates one-to-many relationships. (Microsoft Learn: Star schema guidance)

1. Define the fact grain

Grain means what one row in the fact table represents. For example, it might be one row per sales transaction line. Define that before choosing measures or relationships: the grain follows the dimension-key values stored on each row, not the table’s name. If the grain is unclear, it is harder to decide what values can be meaningfully summarized.

2. Choose dimensions for the questions

Identify the concepts people need to filter or group by, such as date, product, customer, and geography. Build dimensions around those descriptive roles rather than splitting every fact-table column into its own table. An order number, for instance, may appropriately stay in the fact table as a degenerate dimension when users need it for filtering or grouping.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Make relationship keys unique on the dimension side

A common relationship is one-to-many: a dimension is on the unique “one” side, and the fact is on the “many” side. The dimension needs a unique relationship key. When the source has no suitable unique column, Microsoft describes creating a surrogate identifier—for example, a Power Query index—and merging it into the many-side query. (Microsoft Learn: Star schema guidance)

4. Relate the tables and choose summaries

Connect each dimension to the relevant fact table, then create the summaries reports need. A fact may contain stored values such as Sales Amount; an explicit DAX measure is evaluated at query time to calculate a result from model data. The distinction helps keep the model’s recorded values separate from the calculations users request. (Microsoft Learn: Star schema guidance)

When a flat source extract needs reshaping

A source file may repeat product, customer, or other descriptive attributes on every transaction row. That can be convenient for data delivery, but it does not give a semantic model clear dimension and fact roles. Microsoft says Power Query can transform a denormalized source into multiple tables. For large data volumes or advanced preparation such as slowly changing dimensions, it recommends considering a data warehouse and ETL process before connecting the semantic model. (Microsoft Learn: Star schema guidance)

The practical choice depends on the source and the reporting job. Power Query may be sufficient for a manageable extract; a warehouse or ETL layer may be more appropriate when preparation is complex or the volume is large. The guidance does not establish a universal performance gain or a benchmark for a particular model.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When not to split or normalize everything

Keep appropriate attributes in the fact

Some attributes do not need a separate dimension. A transaction order number can remain in the fact as a degenerate dimension if its purpose is to let users filter or group the recorded events. A factless fact table is another valid pattern; Microsoft notes that bridge tables can support many-to-many relationships between dimensions. (Microsoft Learn: Star schema guidance)

Choose deliberately between a snowflake and a combined dimension

A snowflake dimension stores related descriptive entities in separate, normalized tables. Microsoft says those tables can instead be combined into one model table. Combining them can make authoring and hierarchies easier, though redundant data may increase storage. Keeping the snowflake structure means more tables and longer filter-propagation chains, which can be less efficient and less intuitive. The right choice depends on usability, storage, and the model’s structure—not a rule to create a separate table for every concept. (Microsoft Learn: Star schema guidance)

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to model multiple fact tables

When a model contains multiple facts, shared dimensions can connect to each fact with one-to-many relationships. A shared Date or Product dimension, for example, can give visuals a common way to filter or group related facts while those facts supply their respective summaries.

Microsoft generally recommends this approach instead of directly relating two fact tables with many-to-many cardinality. A direct fact-to-fact relationship can limit which dimension fields are available for grouping and may mask data-integrity problems. This is guidance for the general case, not a claim that every unusual model has the same requirements. (Microsoft Learn: Many-to-many relationship guidance)

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decide whether the pattern fits your report

  • Report flexibility: Do users need to group or filter facts by descriptive attributes from several business concepts?
  • Relationship clarity: Can each dimension provide a unique key, and are the filter paths understandable?
  • Model usability: Can report authors find the fields they need without navigating unnecessary tables?
  • Storage and query considerations: Would combining descriptive tables introduce redundancy, or would keeping them separate create a long chain of relationships?
  • Preparation needs: Can Power Query reasonably shape the source, or do volume and historical modeling needs call for a warehouse and ETL process?

A flat table remains a reasonable fit when its simple structure serves the reporting questions. A star schema is more useful when separating descriptive fields from recorded facts makes filtering, grouping, relationships, or multiple related facts easier to manage.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.