Das „Star Schema“ als Data Warehouse-Design

Spectrum™ Technology Platform unterstützt die Erstellung und Wartung von Data Warehouses mit „Star Schema“-Design. In einem „Star Schema“ sind Daten entweder als Fakten – spezifische Beschreibungen eines Ereignisses – gespeichert oder als dimensionale Attribute – Beschreibungen der Fakten in der Faktentabelle. Fakten ändern sich auf regelmäßiger Basis, während sich Dimensionen selten oder nie ändern.

Die folgende Abbildung zeigt das Design eines „Star Schema“:



Die Abbildung zeigt die Hauptmerkmale eines „Star Schema“: eine Faktentabelle, Dimensionstabellen und Verbindungen.

Faktentabelle

Faktentabellen sind die zentralen Tabellen im „Star Schema“ Ihres Data Warehouse. Faktentabellen enthalten normalerweise numerische oder quantitative Informationen (Messwerte genannt), die ein spezifisches Ereignis beschreiben. Wenn Sie beispielsweise über ein Data Warehouse verfügen, das Sie zur Generierung eines Berichts zum Unternehmensumsatz verwenden, haben Sie möglicherweise die Spalten „dollar_sales“ und „dollar_cost“ in Ihrer Faktentabelle, wie in der Abbildung oben dargestellt. Normalerweise sind Fakten durchgehend bewertet und additiv. „Durchgehend bewertet“ bedeutet, dass der Fakt ein numerischer Messwert ist und für jeden Messzeitpunkt einen Wert enthält. „Additiv“ bedeutet, dass der Fakt durch Addition aufsummiert werden kann.

Faktentabellen enthalten außerdem einen Satz Spalten, die einen verketteten oder zusammengesetzten Schlüssel bilden. Jede Spalte des zusammengesetzten Schlüssels ist ein Fremdschlüssel mit Bezug zum Primärschlüssel einer Dimensionstabelle. Die Faktentabelle in der obigen Abbildung enthält beispielsweise eine Spalte „product_key“, die den Fakt zu einem bestimmten Produkt in der Tabelle „product_dimension“ zuordnet.

Die Detailebene in einer Faktentabelle wird als Granularität bezeichnet. Jede Zeile in der Faktentabelle muss in derselben Detailebene aufgezeichnet werden. Im obigen Diagramm sind die Messwerte in der Faktentabelle Tagesgesamtwerte der Verkäufe in Dollar, Verkäufe in Einheiten und Kosten jedes verkauften Produkts in Dollar. Die Granularität ist ein Tag. Jeder Datensatz in der Faktentabelle stellt die gesamten Verkäufe eines bestimmten Produkts in einem Einzelhandelsgeschäft an einem Tag dar. Jede neue Kombination von Produkt, Geschäft oder Tag generiert einen anderen Datensatz in der Faktentabelle.

Faktentabellen werden mit Daten gefüllt, die aus einer Datenquelle extrahiert werden. Die Datenquelle kann entweder ein OLTP-System oder ein Data Warehouse sein. Spectrum™ Technology Platform erstellt nach einem Zeitplan regelmäßig eine Momentaufnahme der Quelldaten und verschiebt die Daten zum Data Warehouse. Dies geschieht üblicherweise zum selben Zeitpunkt an jedem Tag, in jeder Woche oder in jedem Monat.

Ein „Star Schema“ kann mehrere Faktentabellen enthalten. Verwenden Sie ein Schema mit mehreren Faktentabellen, um Sätze mit Messwerten, die eine gemeinsame Teilmenge an Dimensionstabellen verwenden, zu trennen oder um Messwerte mit unterschiedlicher Granularität nachzuverfolgen.

Dimensionstabelle

Dimensionstabellen speichern Daten, die die Informationen in der Faktentabelle beschreiben. Wenn sich beispielsweise „sales_total“ von Monat zu Monat unterscheidet, können Sie über die Dimensionen herausfinden, warum. Dieselbe Dimensionstabelle kann mit unterschiedlichen Faktentabellen verwendet werden.

Dimensionstabellen verfügen über Attribute und einen einteiligen Primärschlüssel, über den eine Dimensionstabelle mit der Faktentabelle verbunden ist. Attribute sind die Spalten in der Dimensionstabelle. Über den einteiligen Primärschlüssel können Sie eine einzelne Dimensionstabelle schnell durchsuchen. Das Durchsuchen einer Dimensionstabelle kann Ihnen helfen, die beste Möglichkeit zur Abfrage der Faktentabelle zu finden.

Zeitdimensionstabellen werden für genaue zeitbasierte Berechnungen benötigt, da die erforderlichen Datumsdaten manchmal nicht einfach aus den Datensätzen extrahiert werden können. Als Beispiel dienen hier die folgenden Datensätze aus einer Umsatzdatenbank. Beachten Sie, dass zwischen den Datensätzen zeitliche Lücken vorhanden sind. Beispielsweise ist kein Datensatz für den 01.04.2012 vorhanden.

Date Produkt Amount
03.01.2012 Rotes Hemd 10,00 $
05.01.2012 Rotes Hemd 5,00 $
07.01.2012 Rotes Hemd 15,00 $

Wenn Sie diese Datensätze abfragen und den durchschnittlichen Tagesumsatz berechnen, wäre das Ergebnis 10,00 $ (30 $ / 3 Datensätze). Dieses Ergebnis ist jedoch falsch, die die drei Datensätze eigentlich einen Zeitraum von fünf Tagen abdecken. Wenn Sie über eine Zeitdimensionstabelle mit einem Datensatz für jeden Tag verfügen, können Sie diese Tabelle mit der obigen Tabelle zusammenführen. Sie erhalten dann Folgendes:

Date Produkt Amount
03.01.2012 Rotes Hemd 10,00 $
04.01.2012    
05.01.2012 Rotes Hemd 5,00 $
06.01.2012    
07.01.2012 Rotes Hemd 15,00 $

Bei der Berechnung des durchschnittlichen Tagesumsatzes erhalten Sie bei diesen Datensätzen das korrekte Ergebnis, 6,00 $ (30 $ / 5 Tage).

Darüber hinaus können Sie in Ihrer Berechnung beliebige Zeitattribute berücksichtigen wie Feiertage, Wochenenden und Quartale. Wenn beispielsweise der 06.01.2012 ein Feiertag war und Sie nur am durchschnittlichen Umsatz pro Arbeitstag interessiert sind, ist das Ergebnis 7,50 $.

Joins

Joins definieren die Beziehungen zwischen einer Faktentabelle und den Dimensionstabellen im „Star Schema“. Der Primärschlüssel in der Dimensionstabelle ist der Fremdschlüssel in der Faktentabelle. Die Faktentabelle muss einen Primärschlüsselwert aus jeder Dimensionstabelle enthalten. Der Verweis vom Fremdschlüssel auf den Primärschlüssel ist der Mechanismus, über den Werte zwischen den beiden Tabellen abgeglichen werden. Join-Beziehungen dieses Typs stellen die referentielle Integrität eines Data Warehouse sicher. Die referentielle Integrität muss erhalten bleiben, um gültige Abfrageergebnisse zu gewährleisten.

Jeder Datensatz in einer Dimensionstabelle kann viele Datensätze in der Faktentabelle beschreiben. Die Verbindungskardinalität von Dimensionstabellen zu Faktentabellen ist daher eine-zu-viele.

In der Abbildung oben ist „product_key“ der Primärschlüssel in der Tabelle „product_dimension“ und der Fremdschlüssel in der Tabelle „sales_fact“. Dieser Join repräsentiert die Beziehung zwischen den Produkten des Unternehmens und den Verkäufen.