← All topics

Learn free · topic 68

SNOWFLAKE SCHEMA

The Snowflake Schema is a dimensional modelling design in which one or more dimension tables are normalized into related sub-dimensions, forming a snowflake-like structure around a central fact table. While the fact table remains the analytical core, dimension tables are decomposed to reduce redundancy and improve governance.

The primary goal of the snowflake schema is to improve data quality, storage efficiency, and reusability, especially for large, shared dimensions, while still preserving dimensional modelling semantics for analytics.

A snowflake schema typically begins as a classic star schema (Fact + Dimensions). Over time, wide dimension tables may be normalized into smaller, related sub-dimensions. For example:

  • Dim_Customer may be split into:
    • Customer (core identity attributes)
    • Demographics (age band, income band)
    • Employment (industry, employer category)
    • Geography (city, region, country)

Similarly, a Date dimension may separate into Date, Month, Quarter, and Year tables if reuse or governance demands it.

The advantages of this approach include reduced duplication, improved storage efficiency, clearer conformed hierarchies, and easier management of slowly changing attributes. When multiple fact tables (e.g., Loans, Collections, Marketing Campaigns) share the same conformed dimensions, normalization ensures consistency across analytical domains.

However, snowflake schemas introduce additional joins. Queries may become more complex compared to a star schema. For end users, this added structural depth can reduce simplicity. For this reason, snowflake schemas are often paired with a semantic layer or BI modelling tool that presents flattened, business-friendly views to analysts.

Consider a loan approval analytics environment in a large enterprise bank. Customer and Geography hierarchies are shared across multiple subject areas, including Loans, Risk, and Marketing. Instead of repeating demographic and regional data in every dimension table, the Customer dimension is normalized into reusable components. Analysts can still run queries such as:

  • Approval rates by income band and region
  • Average interest rate by employment category
  • Total disbursed amount by branch and quarter

Behind the scenes, additional joins occur, but the semantic layer abstracts that complexity.

The strengths of the snowflake schema include improved governance, reuse of conformed dimensions, and better storage efficiency for large enterprises. It is particularly useful when dimensions are large, frequently updated, and shared across many fact tables.

The trade-offs include increased join complexity and slightly reduced query simplicity compared to a pure star schema. Without a semantic or BI abstraction layer, business users may find it less intuitive.

From a modelling perspective, the snowflake schema belongs to the Dimensional Modelling family. Unlike the star schema, it reintroduces partial normalization into dimensions, moving closer to 2NF or 3NF principles. However, its primary objective remains analytical usability rather than strict normalization compliance.

In summary, the snowflake schema balances dimensional modelling with governance and storage efficiency. It is best suited for enterprise-scale environments where conformed dimensions must be shared, maintained consistently, and optimized for long-term manageability, while still supporting robust analytics.

Explanation

  • Starts from a classic star (Fact + Dimensions).
  • Normalizes wide dimensions into sub-dimensions (e.g., Customer → Demographics, Employment, Geography).
  • Pros: less duplication, clearer conformed hierarchies, easier maintenance of slowly changing descriptive data.
  • Cons: more joins, slightly higher query complexity; may require semantic layers or BI models to hide complexity.

A screenshot of a computer

AI-generated content may be incorrect.

Dimensions represent the “who, what, where, when, how” surrounding a business process

A screenshot of a computer screen

AI-generated content may be incorrect.

Finished reading? Test yourself with 10 questions on this topic.

Go to the questions →

From I Am Datapedia! by Mustafa Qizilbash, published here free by the author. Nothing about your reading is stored.