Schneeflockenschema
Das Schneeflockenschema ist eine Weiterführung des Sternschemas, das beim OLAP und Data-Warehousing eingesetzt wird.
Beim Sternschema liegen die Dimensionstabellen denormalisiert vor, was eine bessere Verarbeitungsgeschwindigkeit zu Lasten der Datenintegrität und des Speicherplatzes mit sich bringt. Im Gegensatz dazu werden beim Schneeflockenschema die einzelnen Dimensionstabellen verfeinert, indem sie klassifiziert oder normalisiert werden. Durch diese Weiterverzweigung des Datenmodells entsteht die Form einer Schneeflocke, woher die Bezeichnung dieses Entwurfsmusters stammt.
Bedingt durch diese feinere Strukturierung sind die Daten zwar weniger redundant als in einem Sternschema, es sind jedoch für Abfragen eventuell zusätzliche Join-Operationen notwendig. Ein Schneeflockenschema führt also zu kleineren und besser strukturierten Datenmengen, die aber komplexere Zusammenhänge haben und damit unter Umständen zu längeren Lade- oder Abfragezeiten führen.
Definition
Das Schneeflockenschema ist eine Weiterführung des Sternschemas. Bei diesem bleibt die Faktentabelle wie beim Sternschema analog. Jedoch sind im Gegensatz zum Sternschema die Dimensionstabellen differierend, denn diese enthalten nicht mehr alle Dimensionselemente, sondern nur Daten über die Dimensionshierarchien. Die Dimensionen werden dafür weiter verfeinert, indem sie klassifiziert oder normalisiert werden. Jedenfalls werden die Dimensionstabellen dabei um die Attribute erweitert, damit jede Ausprägung einer Dimension in einer eigenen Tabelle dargestellt werden kann. D.h. beim verbreiteten Schneeflockenschema werden die Daten in den Dimensionstabellen in der 3. Normalform (3NF) gespeichert. Durch die Normalisierung entsteht für jede Hierarchiestufe einer Dimension eine eigene Tabelle und führt demnach zu kleineren und besser strukturierten Datenmengen. Durch diese Weiterverzweigung des Datenmodells entsteht die Form einer Schneeflocke, was diesem Schema den Namen verleiht.
Eigenschaften
- Dimensionentabellen
- Primärschlüssel zur Identifizierung der Dimensionenwerte
- Abbildung der Dimensionenhierarchie durch Fremdschlüssel
- Normalisierung
- Faktentabellen (gleich mit Sternschema)
- Fremdschlüssel zu den Dimensionentabellen, d. h. die unterste Ebene jeder Dimension wird als Schlüssel in die Faktentabelle aufgenommen
- Fremdschlüssel auf die Dimensionen bilden zusammengesetzten Primärschlüssel für die Fakten
Vor- und Nachteile
Folgend werden die Vor- und Nachteile des Schneeflockenschemas im Vergleich zum einfacheren Sternschema aufgezeigt:
Vorteile
- geringerer Speicherplatzverbrauch: Dimensionentabellen enthalten durch Normalisierung keine redundanten Daten.
- n:m-Beziehungen zwischen Aggregationsstufen können über Relationstabellen aufgelöst werden
- optimale Unterstützung der Aggregationsbildung
- Browsing-Funktionalität: häufige Abfragen über sehr große Dimensionstabellen erbringen Zeitersparnis und Geschwindigkeitsvorteil.
Nachteile
- Geschwindigkeitsnachteil: Bedingt durch zusätzliche Verbunde bei den Dimensionstabellen
- Komplexere Strukturierung: Bedingt durch die feinere Strukturierung sind die Daten zwar weniger redundant als in einem Sternschema, die Zusammenhänge sind jedoch komplexer. Mehrstufige Dimensionstabellen müssen deshalb wieder über Join-Abfragen verknüpft werden und können unter Umständen zu längeren Abfragezeiten führen.
- größere Tabellenanzahl: Durch die komplexere Strukturierung wird eine größere Anzahl an Tabellen benötigt.
- Reorganisationsproblem: Änderungen im semantischen Modell führen zu umfangreicher Reorganisation der Tabellen und folglich zu einem höheren Wartungsaufwand
Sternschema vs. Schneeflockenschema (normalisiert)
Sternschema | Schneeflockenschema | |
---|---|---|
Ziel |
|
|
Ergebnis |
|
|
Beispiel
Das nebenstehende Beispiel zeigt die verknüpften Tabellen, welche für eine vollständige Beschreibung der Produkt Dimension im Microsoft Datawarehouse-Beispielprojekt Adventure Works notwendig sind. Kategorie und Unterkategorie des Produkts in der Product-Dimension müssen demnach enthalten sein. Diese Informationen befinden sich jedoch nicht direkt in der Haupttabelle für die Produkt-Dimension, aber eine Fremdschlüsselbeziehung zwischen Produkt-Dimension und Produkt Unterkategorie-Dimension, die wiederum eine Fremdschlüsselbeziehung zur Produkt Kategorie-Tabelle hat, ermöglicht das Einschließen der Informationen für Produktkategorien und -unterkategorien in der Dimensionstabelle des Produktes.
Die Anzahl der verwendeten Joins steigt beim Schneeflockenschema im Gegensatz zum Sternschema linear mit Anzahl der Aggregationspfade.
Siehe auch
Literatur
- H. Kemper, W. Mehanna & C. Unger: Business Intelligence – Grundlagen und praktische Anwendungen: Eine Einführung in die IT-basierte Managementunterstützung. 2. erg. Ausgabe, Wiesbaden: Vieweg+Teubner, 2006 ISBN 3-8348-0275-1
- J. Han & M. Kamber: Data Mining. Concepts and Techniques. 2nd Edition, San Francisco (CA) et al: Morgan Kaufmann, 2006 ISBN 1-558-60901-6
- B. Larson: Delivering Business Intelligence with Microsoft SQL Server. 2nd Edition, New York: Mcgraw-Hill Professional, 2009 ISBN 0-071-54944-7
- Ralph Kimball, Margy Ross: The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling, Second Edition. Auflage, Wiley, New York 2002, ISBN 0-471-20024-7.
- Lynn Langit: Foundations of SQL Server 2005 Business Intelligence, First Edition. Auflage, Apress, New York 2007, ISBN 1-590-59834-2.
Weblinks
- Präsentation zum Thema Data-Warehouse-Design (PDF; 500 kB)
- Snowflake Schema vs. Star Schema
- Why is the Snowflake Schema a Good Data Warehouse Design? von Mark Levene & George Loizou (PDF; 202 kB)
- Schema Modeling Techniques
- Optimizing Large Star-Schema Queries with Snowflakes via Heuristic-Based Query Rewriting (PDF; 178 kB)