Das Sternschema ist ein populäres Datenmodell im Data Warehouse (DWH)-Umfeld, das eine effiziente Datenorganisation für Abfragezwecke ermöglicht. Es besteht aus einer zentralen Faktentabelle, die mit einer oder mehreren Dimensionstabellen verknüpft ist. Die Faktentabelle enthält quantitative Daten (z.B. Verkaufszahlen), während die Dimensionstabellen beschreibende, kategorische Informationen (z.B. Zeit, Kundeninformationen) enthalten.
Inhalt dieser Seite
Struktur:
- Faktentabelle: Enthält die Hauptdaten und Schlüssel zu den Dimensionstabellen.
- Dimensionstabellen: Enthalten Details und beschreibende Daten, verknüpft mit der Faktentabelle über Fremdschlüssel.
Vorteile:
- Abfrageleistung: Optimiert für Abfrageleistung durch Denormalisierung.
- Verständlichkeit: Einfach zu verstehen und zu navigieren.
- Flexibilität: Ermöglicht flexible und vielfältige Abfragen.
Beispiel für MS SQL Server:
Data Warehouse
Angenommen, Sie haben ein DWH für ein Einzelhandelsunternehmen, das Verkaufsdaten speichert.
1. Dimensionstabellen erstellen
-- Zeit Dimension
CREATE TABLE DimZeit (
ZeitID INT IDENTITY(1,1) PRIMARY KEY,
Datum DATE,
Jahr INT,
Monat INT,
Tag INT
);
-- Kunden Dimension
CREATE TABLE DimKunde (
KundeID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100),
Email NVARCHAR(100)
);
In diesem Beispiel haben wir zwei Dimensionstabellen erstellt: DimZeit
für Zeitinformationen und DimKunde
für Kundeninformationen.
2. Faktentabelle erstellen
-- Verkauf Faktentabelle
CREATE TABLE FaktVerkauf (
VerkaufID INT IDENTITY(1,1) PRIMARY KEY,
ZeitID INT FOREIGN KEY REFERENCES DimZeit(ZeitID),
KundeID INT FOREIGN KEY REFERENCES DimKunde(KundeID),
Verkaufsbetrag DECIMAL(10, 2)
);
Hier haben wir eine Faktentabelle FaktVerkauf
erstellt, die Verkaufsbeträge speichert und mit den Dimensionstabellen über ZeitID
und KundeID
verknüpft ist.
3. Daten einfügen
-- Daten in die Dimensionstabellen einfügen
INSERT INTO DimZeit (Datum, Jahr, Monat, Tag) VALUES ('2023-10-01', 2023, 10, 1);
INSERT INTO DimKunde (Name, Email) VALUES ('Max Mustermann', 'max.mustermann@example.com');
-- Daten in die Faktentabelle einfügen
INSERT INTO FaktVerkauf (ZeitID, KundeID, Verkaufsbetrag) VALUES (1, 1, 100.00);
4. Abfragen
-- Abfrage, um den Gesamtverkaufsbetrag pro Kunde zu erhalten
SELECT k.Name, SUM(v.Verkaufsbetrag) as GesamtVerkauf
FROM FaktVerkauf v
JOIN DimKunde k ON v.KundeID = k.KundeID
GROUP BY k.Name;
In dieser Abfrage verbinden wir die Faktentabelle mit der Kundendimensionstabelle, um den Gesamtverkaufsbetrag pro Kunde zu ermitteln.
Fazit:
Das Sternschema ist ein effizientes und weit verbreitetes Modell für Data Warehouses, das eine schnelle und flexible Datenabfrage ermöglicht. Durch die klare Trennung von Fakten- und Dimensionstabellen können Benutzer leicht komplexe Abfragen erstellen, um wertvolle Erkenntnisse aus ihren Daten zu gewinnen.
Hinterlasse jetzt einen Kommentar