DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk5 min

Data Warehouse Modeling FAQs: Star Schemas, Snowflakes, and Slowly Changing Dimensions

Choose fact-table grain first, then select a star or snowflake layout and an SCD policy that matches the history your analytics must preserve.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start a dimensional warehouse by declaring what one row in each fact table represents. Then choose dimensions that make those facts easy to filter and group, and decide—attribute by attribute—whether changes should overwrite old values or preserve history. A star schema is usually the clearest starting point; snowflaking and slowly changing dimension (SCD) strategies address specific modeling needs rather than serving as automatic upgrades.

What is a star schema?

A star schema organizes analytical data around fact tables and dimension tables. A fact table records measurements at a declared grain—the precise business event or state represented by one row. Dimension tables describe the entities and attributes used to filter, group, sort, and summarize those facts.

As an Amazon Associate I earn from qualifying purchases.

For example, a sales fact might represent one product line on one order. Its measures could include quantity and sales amount; its dimensions might describe the product, customer, date, and store. The grain determines which keys and measures belong in that fact table. Microsoft Learn describes star schemas as suited to analytical query workloads involving filtering, grouping, sorting, and summarizing. A warehouse can contain several fact tables and therefore several related stars. Microsoft’s dimensional-modeling overview explains the roles of facts and dimensions.

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

Why declare grain first?

Grain is the contract that makes aggregation meaningful. If rows in a fact table represent different levels of detail, the same measure may be counted inconsistently or joined to dimensions at incompatible levels. State the grain in business terms before choosing keys or loading data, and keep it consistent within that fact table.

What is a snowflake schema, and how does it differ?

A snowflake dimension divides one business dimension into multiple normalized, related tables. A product dimension, for instance, might be split into product, subcategory, and category tables. In a star, those hierarchy attributes would commonly be stored together in a denormalized product dimension.

Design Where hierarchy attributes live Practical trade-off
Star / denormalized dimension Alongside other attributes in one dimension table Fewer joins and a more direct model for report authors; hierarchy values may be repeated.
Snowflake / normalized dimension Across related tables in the hierarchy Reduces repeated hierarchy data, but adds joins and can make the model less straightforward to use.

Microsoft Learn generally favors denormalized dimensions for usability and query performance, while identifying cases where a snowflake may be appropriate. A well-designed star schema can offer high-performance relational queries because it uses fewer joins and is more likely to have useful indexes; this is Microsoft’s qualitative guidance, not a measured benchmark. See Dimensional Modeling – Microsoft Fabric and Modeling Dimension Tables in Warehouse – Microsoft Fabric.

When might snowflaking make sense?

  • A dimension is extremely large, making duplicated hierarchy attributes a material design concern.
  • Facts exist at different hierarchy grains and need keys at higher levels.
  • You need to track historical changes at a higher hierarchy level, independently of lower-level entities.

Weigh those needs against the extra joins and the experience of the people building reports. In Power BI semantic models, Microsoft notes that a view joining snowflake tables may be needed to expose a denormalized result for hierarchy use. A normalized layout is not inherently better; the right choice depends on the workload and model.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

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

How do SCD Type 1, Type 2, and Type 3 differ?

An SCD policy determines what happens when descriptive dimension attributes change. Choose the behavior per attribute: a dimension can use different types for different attributes.

Type What happens on change What historical reports show Useful when
Type 1 Overwrite the existing attribute value. Older facts are viewed using the latest value, so historical groupings can be restated. The prior value is not needed, or the existing value was erroneous and should be corrected.
Type 2 Insert a new dimension row for the changed tracked value and retain the old version. A fact can remain associated with the dimension version valid when that fact occurred. Historical context must be preserved and queried.
Type 3 Keep limited prior-value information in dimension attributes rather than creating a full sequence of rows. Only the limited history represented by those attributes is available; this is not a full audit trail. A narrowly limited previous-value comparison is sufficient; Microsoft describes this type as less commonly used.

Microsoft’s guidance on dimension tables and star schemas in Power BI covers these SCD patterns.

Business keys and surrogate keys are different

A business key identifies the real-world entity in the source, such as a customer number. A surrogate key is a warehouse-assigned identifier for a dimension row. With Type 2, each version needs its own surrogate key, while the business key connects all versions of the same entity. Facts use the version-specific dimension key when historical attributes must remain applicable to the event.

How to load a Type 2 dimension

  1. Match incoming staged records to dimension entities using their business keys.
  2. Identify new entities and compare tracked attributes on matched entities to find changes.
  3. For a changed entity, expire the current dimension version using the model’s validity dates or current-version indicator.
  4. Insert a new dimension row with a new surrogate key and validity information, retaining the business key that links it to the same entity.
  5. Load or resolve fact rows against the dimension version applicable to their event time, according to the warehouse’s effective-date rules.

Microsoft’s dimensional-model loading guidance describes matching dimension rows and Type 1/Type 2 load behavior. Type 2 history is not automatic: if the source does not retain versions, the warehouse’s load process must detect and store changes. Exact SQL, late-arriving-data handling, time-zone rules, and effective-date conventions depend on the implementation and are not prescribed by that overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How should you choose a design?

Make two related decisions: how to lay out the dimension and what history each attribute requires. A star with Type 2 dimensions, for example, is entirely possible; snowflaking and SCD types solve different problems.

  • For the schema: consider join complexity, query performance, duplicated hierarchy storage, report-author usability, facts at different hierarchy grains, and the need to preserve history at a higher hierarchy level.
  • For each changing attribute: ask whether previous values must remain queryable, whether corrections should rewrite history, how much prior history is needed, and whether the version keys and validity logic of Type 2 are justified.
  • For rapidly changing attributes: do not put them into an SCD by reflex. Microsoft suggests considering a fact-table measure or a separate dimension instead.

For further reading, Microsoft’s dimensional-modeling overview points to The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd edition (2013), by Ralph Kimball and others.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.