Snowflake Schema: A Normalized Data Modeling Approach
The snowflake schema is an extension of the star schema and is widely used in data warehousing and business intelligence. While the star schema is simple and denormalized, the snowflake schema introduces normalization by breaking down dimension tables into smaller, related tables. This results in a structure that resembles a snowflake , hence the name.Components of a Snowflake Schema
-
Fact Table:
- The central table in the snowflake schema, just like in the star schema.
- Contains quantitative data (measures or metrics) such as sales, revenue, or quantity.
- Each row in the fact table represents a specific event or transaction.
- Connected to dimension tables via foreign keys.
- A fact table for a retail store might store sales transactions:
Fact_Sales:Txn_ID,Date_ID,Product_ID,Customer_ID,Store_ID,Quantity_Sold,Total_Amount.
-
Dimension Tables:
- Surround the fact table like the points of a snowflake.
- Contain descriptive attributes (context or metadata) related to the facts.
- Unlike the star schema, dimension tables in a snowflake schema are normalized, meaning they are split into multiple related tables to reduce redundancy.
Dim_Date:Date_ID,Date,Month,Quarter,Year,Day_of_Week.Dim_Product:Product_ID,Product_Name,Category_ID,Brand_ID,Price.Dim_Category:Category_ID,Category_Name.Dim_Brand:Brand_ID,Brand_Name.Dim_Customer:Customer_ID,Customer_Name,City_ID,Phone_Number.Dim_City:City_ID,City,State.Dim_Store:Store_ID,Store_Name,City_ID,Manager_Name.
Example: Snowflake Schema for a Retail Store
Snowflake Schema
Fact Table
Fact_Sales
Dimension Tables
-
Dim_Date: -
Dim_Product: -
Dim_Category: -
Dim_Brand: -
Dim_Customer: -
Dim_City: -
Dim_Store:
How the Snowflake Schema Works
-
Querying Data:
- Suppose you want to find the total sales of sarees in Mumbai for January 2025.
- The query would join the
Fact_Salestable with multiple dimension tables using their respective keys. - Example SQL Query:
-
Benefits:
- Reduced Redundancy: Normalization minimizes data duplication.
- Improved Data Integrity: Ensures consistency across related tables.
- Flexibility: Easier to maintain and update.
Advantages of Snowflake Schema
- Normalization: Reduces data redundancy and improves storage efficiency.
- Data Integrity: Ensures consistency by maintaining relationships between tables.
- Scalability: Suitable for complex data models with many relationships.
Disadvantages of Snowflake Schema
- Query Performance: More joins can lead to slower query performance compared to the star schema.
- Complexity: More tables and joins make the schema harder to design and understand.
- Business-Friendliness: Less intuitive for business users compared to the star schema.