Snowflake Schema erweitert das Star Schema durch Normalisierung der Dimensionstabellen. Die Produktkategorie wird zu einer eigenen Tabelle — spart Speicher, fügt aber JOINs hinzu.
Normalisierte Dimensionen¶
Dimensionstabellen werden in mehrere Ebenen normalisiert. Das Diagramm ähnelt einer Schneeflocke.
CREATE TABLE dim_product (
product_key INT PRIMARY KEY,
product_name VARCHAR(200),
category_key INT REFERENCES dim_category(category_key)
);
CREATE TABLE dim_category (
category_key INT PRIMARY KEY,
category_name VARCHAR(100),
department_key INT REFERENCES dim_department(department_key)
);
CREATE TABLE dim_department (
department_key INT PRIMARY KEY,
department_name VARCHAR(100)
);
Star vs Snowflake¶
- Star — schnellere Abfragen, weniger JOINs
- Snowflake — weniger Redundanz, große Dimensionen
- Modernes Warehouse — Speicher ist günstig, Star ist meist besser
Zusammenfassung¶
Snowflake Schema spart Speicher durch Normalisierung von Dimensionen. In modernen Cloud-Warehouses wird Star Schema meist bevorzugt.
snowflake schemaNormalisierungdata modelingwarehouse