Schneeflockenschema vs. Sternschema

Bei der Auswahl eines Datenbankschemas für ein Data Warehouse sind Schneeflocken- und Sternschemata häufig beliebt. In diesem Vergleich wird die Eignung von Stern- und Schneeflockenschemata in verschiedenen Szenarien und deren Eigenschaften erörtert.

Vergleichstabelle

Vergleichstabelle Schneeflockenschema gegen Sternschema
Schneeflockenschema Sternschema
Einfache Wartung / ÄnderungKeine Redundanz, sodass Schneeflockenschemata einfacher zu warten und zu ändern sind.Hat redundante Daten und ist daher weniger einfach zu warten / zu ändern
BenutzerfreundlichkeitKomplexere Abfragen und daher weniger leicht zu verstehenGeringere Abfragekomplexität und leicht verständlich
AbfrageleistungMehr Fremdschlüssel und damit längere Ausführungszeit für Abfragen (langsamer)Geringere Anzahl von Fremdschlüsseln und damit kürzere Ausführungszeit für Abfragen (schneller)
Art des DatawarehouseGut geeignet für den Datawarehouse-Kern, um komplexe Beziehungen zu vereinfachen (viele: viele)Gut für Datamarts mit einfachen Beziehungen (1: 1 oder 1: viele)
Tritt beiHöhere Anzahl von JoinsWeniger Joins
DimensionstabelleEin Schneeflockenschema kann mehr als eine Dimensionstabelle für jede Dimension haben.Ein Sternschema enthält nur eine Dimensionstabelle für jede Dimension.
Wann zu verwendenWenn die Dimensionstabelle relativ groß ist, ist Schneeflocken besser, da sie weniger Platz bietet.Wenn die Dimensionstabelle weniger Zeilen enthält, können Sie das Sternschema auswählen.
Normalisierung / De-NormalisierungDimensionstabellen liegen in normalisierter Form vor, Faktentabelle jedoch in nicht normalisierter FormSowohl die Dimensions- als auch die Faktentabelle liegen in de-normalisierter Form vor
DatenmodellBottom-up-AnsatzTop-Down-Ansatz

Beispiele

Stellen Sie sich eine Datenbank für einen Einzelhändler mit vielen Geschäften vor, wobei jedes Geschäft viele Produkte in vielen Produktkategorien und von verschiedenen Marken verkauft. Ein Data Warehouse oder ein Data Mart für einen solchen Einzelhändler müsste Analysten die Möglichkeit bieten, Verkaufsberichte zu erstellen, die nach Geschäft, Datum (oder Monat, Quartal oder Jahr) oder Produktkategorie oder Marke gruppiert sind.

Beispiel für ein Sternschema

Wenn dieser Datamart ein Sternschema verwenden würde, würde er wie folgt aussehen:

Beispiel eines Sternschemas

Die Faktentabelle wäre eine Aufzeichnung von Verkaufstransaktionen, während es Dimensionstabellen für Datum, Geschäft und Produkt gibt. Dimensionstabellen sind jeweils über ihren Primärschlüssel, der ein Fremdschlüssel für die Faktentabelle ist, mit der Faktentabelle verbunden. Anstatt beispielsweise das tatsächliche Transaktionsdatum in einer Zeile der Faktentabelle zu speichern, wird die date_id gespeichert. Diese date_id entspricht einer eindeutigen Zeile in der Dim_Date-Tabelle, und in dieser Zeile werden auch andere Attribute des Datums gespeichert, die für die Gruppierung in Berichten erforderlich sind. zB Wochentag, Monat, Quartal des Jahres und so weiter. Die Daten werden zur einfacheren Berichterstellung denormalisiert.

Hier erfahren Sie, wie Sie mithilfe der inneren Verbindungen einen Bericht über die Anzahl der nach Marke und Land verkauften Fernseher erhalten.

Beispiel für ein Schneeflockenschema

Das gleiche Szenario kann auch ein Schneeflockenschema verwenden. In diesem Fall wäre es wie folgt strukturiert:

Beispiel für ein Schneeflockenschema (zum Vergrößern anklicken)

Der Hauptunterschied im Vergleich zum Sternschema besteht darin, dass die Daten in Dimensionstabellen stärker normalisiert sind. Anstatt beispielsweise Monat, Quartal und Wochentag in jeder Zeile der Dim_Date-Tabelle zu speichern, werden diese weiter in ihre eigenen Dimensionstabellen unterteilt. In ähnlicher Weise sind für die Dim_Store-Tabelle der Status und das Land geografische Attribute, die einen Schritt entfernt sind. Anstatt in der Dim_Store-Tabelle gespeichert zu werden, werden sie jetzt in einer separaten Dim_Geography-Tabelle gespeichert.

Der gleiche Bericht - die Anzahl der nach Land und Marke verkauften Fernseher - ist jetzt etwas komplizierter als in einem Sternschema:

SQL-Abfrage, um die Anzahl der verkauften Produkte nach Land und Marke zu ermitteln, wenn die Datenbank ein Schneeflockenschema verwendet.

Ähnlicher Artikel