Kurs
Wenn du mit Data Warehouses arbeitest, weißt du, wie wichtig es ist, Daten so zu strukturieren, dass sie effizient und einfach zu handhaben sind. Hast du dir schon mal überlegt, welches Datenbankschema am besten zu deinen Bedürfnissen passt? Dafür gibt's zwei wichtige Frameworks, die du nutzen kannst: das Sternschema und das Snowflake-Schema.
Das Sternschema ist einfach und schnell – perfekt, wenn du Daten schnell für Analysen extrahieren musst. Andererseits ist das Snowflake-Schema detaillierter. Es legt Wert auf Speichereffizienz und das Verwalten von komplizierten Datenbeziehungen.
In diesem Artikel zeig ich dir die Strukturen dieser Schemata, zeig dir ihre Unterschiede und erkläre dir ihre Vorteile. Am Ende wirst du wissen, wo jedes Schema passt und wie du entscheiden kannst, welches für deine Datenprojekte am besten ist.
Was ist ein Sternschema?
Ein Sternschema ist eine Methode, um Daten in einer Datenbank, vor allemin Data Warehouses, so zu organisieren, dass sie einfacher und schneller analysiert werden können. In der Mitte gibt's eine Haupttabelle namens„ -Faktentabelle“ (), die messbare Daten wie Verkäufe oder Einnahmen enthält. Drum herum gibt'sdie Dimensionstabellen „ “ und „ “, die Details wie Produktnamen, Kundeninfos oder Daten hinzufügen. Dieses Layout sieht aus wie ein Stern.

Sternschema-Layout. Bild vom Autor.
Schauen wir uns mal die wichtigsten Features des Sternschemas an:
- Einstufige Dimensionstabellen: Die Dimensionstabellen sind direkt mit der Faktentabelle verbunden, ohne dass es zusätzliche Ebenen gibt. Jede Tabelle konzentriert sich auf einen Bereich, wie Produkte, Regionen oder Zeit, was die Nutzung einfach macht.
- Denormalisiertes Design: In einem Sternschema werden zusammengehörige Daten in einer Tabelle gespeichert, indem man einen denormalisierten Ansatz nutzt. Zum Beispiel kann eine Produkttabelle die Produkt-ID, den Namen und die Kategorie an derselben Stelle haben. Das kann zwar zu ein paar Datenwiederholungen führen, aber die Abfragen werden schneller bearbeitet.
- Häufig in Data-Warehousing-: Das Sternschema wird für schnelle Analysen genutzt. Es kann ganz einfach filtern oder Summen berechnen, also ist es wahrscheinlich eine gute Wahl für Data Warehouses, wo man schnell Einblicke braucht.
Schauen wir uns das mal mit einem einfachen Sternschema-Diagramm an. DieFaktentabelle „ “ ( Sales ) ist in der Mitte. Es enthält die Zahlen, die du analysieren willst, wie zum Beispiel Umsätze oder Gewinne. Damit verbunden sinddie Dimensionstabellen „ “ mit beschreibenden Details wie Produktnamen, Kundenstandort oder Daten:

Beispiel für ein Sternschema. Bild vom Autor.
Hier ist ein einfaches SQL-Beispiel für die Einrichtung eines Sternschemas mit einer Sales Faktentabellen und Dimensionstabellen für Product, Customerund Date:
-- Fact table
CREATE TABLE Sales (
Sales_ID INT PRIMARY KEY,
Product_ID INT,
Customer_ID INT,
Date_ID INT,
Sales_Amount DECIMAL(10, 2),
FOREIGN KEY (Product_ID) REFERENCES Product(Product_ID),
FOREIGN KEY (Customer_ID) REFERENCES Customer(Customer_ID),
FOREIGN KEY (Date_ID) REFERENCES Date(Date_ID)
);
-- Dimension table: Product
CREATE TABLE Product (
Product_ID INT PRIMARY KEY,
Product_Name VARCHAR(100),
Category VARCHAR(50)
);
-- Dimension table: Customer
CREATE TABLE Customer (
Customer_ID INT PRIMARY KEY,
Customer_Name VARCHAR(100),
Location VARCHAR(50)
);
-- Dimension table: Date
CREATE TABLE Date (
Date_ID INT PRIMARY KEY,
Date DATE,
Year INT,
Month VARCHAR(20)
);
Dieses Layout macht Abfragen schneller, weil es keine komplizierten Verknüpfungen gibt. Die folgende Abfrage zeigt zum Beispiel den Gesamtumsatz nach Kundenstandort gruppiert an, indem sie die einfachen Verknüpfungen des Sternschemas nutzt:
SELECT c.Location, SUM(s.Sales_Amount) AS TotalSales
FROM Sales s
JOIN Customer c ON s.Customer_ID = c.Customer_ID
GROUP BY c.Location;
Allerdings müsstest du mit einer gewissen Datenredundanz rechnen, da die Dimensionstabellen möglicherweise wiederholte Informationen enthalten.
Vorteile und Einschränkungen eines Sternschemas
Jetzt, wo du weißt, was ein Sternschema ist, schauen wir mal, warum es so besonders ist:
- Bessere Abfrage-Performance: Das Sternschema macht das Abrufen von Daten einfacher, indem es Abfragen schneller macht. Wenn ich zum Beispiel die Verkaufstrends anschauen will, verbinde ich die Faktentabelle mit den richtigen Dimensionstabellen. Und das Beste daran ist, dass ich das alles machen kann, ohne mich mit komplizierten Beziehungen rumschlagen zu müssen. Dadurch würden meine Abfragen schneller laufen und ich könnte viel Zeit sparen.
- Einfach zu verstehendes: Die Struktur ist logisch und auch für Leute ohne technischen Hintergrund leicht zu verstehen. Neue Teammitglieder können schnell erkennen, welche Tabellen die benötigten Daten haben, was die Analyse beschleunigt und die Pflege vereinfacht.
Trotz all der Vorteile hat das Sternschema auch einen Nachteil. Wie ich schon gesagt habe, haben Dimensionstabellen wegen der Denormalisierung oft doppelte Infos, was den Speicherplatzbedarf erhöht. Wenn zum Beispiel mehrere Produkte zur selben Kategorie gehören, kann es sein, dass sich die Namen der einzelnen Produkte wiederholen und dadurch mehr Speicherplatz verbrauchen.
Was ist ein Snowflake-Schema?
Ein Snowflake-Schema ist eine andere Art, Daten zu organisieren. In diesem Schema werden Dimensionstabellen in kleinere Unterdimensionen aufgeteilt, um die Daten übersichtlicher und detaillierter zu halten – wie Snowflakes in einem großen See.

Layout des Snowflake-Schemas. Bild vom Autor.
Schauen wir uns mal die wichtigsten Features des Snowflake-Schemas an, die es von anderen Schemata unterscheiden:
- Mehrstufige Dimensionstabellen: Wir können unsere Dimensionstabellen in kleinere, spezifischere Tabellen aufteilen. Wenn ich zum Beispiel die Standorte von Geschäften verfolgen will, kann ich die ganzen Standortdetails nicht in eine große Tabelle packen, sondern sie in separate Tabellen für Länder, Bundesstaaten und Städte aufteilen. So würde jede Tabelle nur die Infos haben, die sie braucht, um Redundanzen zu vermeiden und die Organisation zu verbessern.
- Normalisierung für Speichereffizienz: Im Gegensatz zum Sternschema ermöglicht das Snowflake-Schema fürein normalisiertes Design, wwodurch Datenverdopplungen vermieden werden. Anstatt zum Beispiel für jedes Produkt eine Produktkategorie wie „
Electronics“ zu wiederholen, kann ich die Kategorie in einer separaten Tabelle speichern und mit den einzelnen Produkten verknüpfen. - Eignet sich für komplizierte Datenumgebungen: Das Snowflake-Schema eignet sich am besten für komplexe Datenumgebungen, weil es mehrstufige Tabellen nutzt, um komplizierte Beziehungen und hierarchische Datenstrukturen zu verarbeiten.
Schauen wir uns das mal mit einem einfachen Snowflake-Schema an. Im Mittelpunkt steht die Faktentabelle, die messbare Daten enthält. Es verbindet sich mit Dimensionstabellen, die die Fakten beschreiben, und diese Dimensionstabellen verzweigen sich weiter in Unterdimensionstabellen, wodurch eine Snowflake-artige Struktur entsteht.
Zum Beispiel habe ich hier die Tabelle „ Product ” indie Tabellen „ Manufacturer” ( )und „ ” ( ) sowie „ Category” ( )und „ ” ( ) aufgeteiltunddie Tabelle „ Customer” ( ) indie Tabellen „ Transaction” ( ) und „ ” ( ) sowie„ Location” ( ) und„ ” ( ) aufgeteilt:

Beispiel für ein Snowflake-Schema. Bild vom Autor.
Hier ist ein SQL-Beispiel, das ein Snowflake-Schema zeigt, bei dem die Product Tabelle weiter in Category und Manufacturer Tabellen:
-- Fact table remains the same
CREATE TABLE Sales (
Sales_ID INT PRIMARY KEY,
Product_ID INT,
Customer_ID INT,
Date_ID INT,
Sales_Amount DECIMAL(10, 2),
FOREIGN KEY (Product_ID) REFERENCES Products(Product_ID),
FOREIGN KEY (Customer_ID) REFERENCES Customers(Customer_ID),
FOREIGN KEY (Date_ID) REFERENCES Dates(Date_ID)
);
-- Dimension table: Product
CREATE TABLE Product (
Product_ID INT PRIMARY KEY,
Product_Name VARCHAR(100),
Category_ID INT,
Manufacturer_ID INT,
FOREIGN KEY (Category_ID) REFERENCES Category(Category_ID),
FOREIGN KEY (Manufacturer_ID) REFERENCES Manufacturer(Manufacturer_ID)
);
-- Sub-dimension table: Category
CREATE TABLE Category (
Category_ID INT PRIMARY KEY,
Category_Name VARCHAR(50)
);
-- Sub-dimension table: Manufacturer
CREATE TABLE Manufacturer (
Manufacturer_ID INT PRIMARY KEY,
Manufacturer_Name VARCHAR(100)
);
Die folgende Abfrage zeigt den Gesamtumsatz nach Produktkategorie an. Obwohl es mehr Verknüpfungen als das Sternschema hat, ist es speichereffizienter:
SELECT cat.Category_Name, SUM(s.Sales_Amount) AS TotalSales
FROM Sales s
JOIN Product p ON s.Product_ID = p.Product_ID
JOIN Category cat ON p.Category_ID = cat.Category_ID
GROUP BY cat.Category_Name;
Vorteile und Einschränkungen eines Snowflake-Schemas
Genau wie das Sternschema hat auch das Snowflake-Schema seine eigenen Vorteile. Mal sehen, was das ist:
- Weniger Datenredundanz: Durch die Normalisierung wird sichergestellt, dass dieselben Daten nicht mehrfach gespeichert werden, was Doppelungen reduziert.
- Effiziente Speicherung für große Datensätze: Dieses Schema spart Speicherplatz, weil es doppelte Daten vermeidet, und ist damit super für die Verwaltung großer Datensätze.
Trotz der Vorteile gibt es aber auch ein paar Einschränkungen. Zum Beispielkönnen Abfragen mit „ “ langsamer sein als „ “, weil es mehr Verknüpfungen zwischen den Tabellen gibt. Außerdem ist die mehrstufige Strukturschwieriger zu entwerfen und zu pflegen als einfachere Schemata wie das Sternschema. Also, mach das nur, wenn du ein erfahrenes DBA-Team hast.
Ich empfehle dir, den Kurs „Datenbankdesign“ zu besuchen, wenn du mehr über die effiziente Strukturierung von Daten für Analysezwecke lernen möchtest.
Mit einem hybriden Ansatz
In echten Projekten ist es üblich, beide Muster auf verschiedenen Ebenen zu nutzen, um die Vorteile beider Ansätze zu kombinieren:
- Behalte mehr normalisierte (Snowflake) Strukturen in der Warehouse-Ebene, damit alles einheitlich bleibt und die Wartung einfacher wird.
- Veröffentliche sternförmige Märkte oder denormalisierte Ansichten für BI und Berichterstellung.
So können Teams die Datenintegrität und -verwaltung mit einer schnellen und einfachen Nutzung von Analysen in Einklang bringen.
Sternschema vs. Snowflake-Schema
Sowohl Stern- als auch Snowflake-Schemata sind in der Datenlagerung weit verbreitet, aber aufgrund ihrer einzigartigen Eigenschaften eignen sie sich für unterschiedliche Anforderungen. Schauen wir mal, wie sich diese Schemata in Sachen Struktur, Leistung, Speicherbedarf und Anwendungsfälle unterscheiden.
Struktur
Alle Dimensionstabellen sind direkt mit einer zentralen Faktentabelle in einem Sternschema verbunden. Das heißt, alle deine Referenzdaten sind nur einen Schritt von deinen Hauptdaten entfernt, was sie leicht verständlich und benutzerfreundlich macht.
Im Vergleich dazu teilt ein Snowflake-Schema Dimensionstabellen in kleinere, spezifischere Unterdimensionstabellen auf. Du kannst zum Beispiel separate Tabellen für Länder, Bundesstaaten und Städte haben, anstatt nur eine Standorttabelle. Das sorgt zwar für eine übersichtlichere und detailliertere Struktur, aber es heißt auch, dass mehr Verbindungen (oder Verknüpfungen) nötig sind, um auf deine Daten zuzugreifen – ein Hauptgrund, warum das Snowflake-Schema komplexer ist als das Sternschema.
Leistung
Wenn es um Geschwindigkeit geht, sind Sternschemata oft besser. Weil alle Dimensionstabellen direkt mit der Faktentabelle verbunden sind, brauchen Abfragen normalerweise weniger Verknüpfungen, was eine schnellere Leistung bedeutet. Angenommen, du möchtest die Umsätze nach Regionen analysieren – in diesem Fall kannst du das Sternschema verwenden, um die Daten mit minimalem Verarbeitungsaufwand abzurufen.
Andererseits sind Snowflake-Schemas oft langsamer, weil man über mehrere Tabellen verbinden muss, um die Daten abzurufen. Jede Verknüpfung kostet mehr Zeit, was Snowflake-Schemas für Aufgaben, die schnelle Abfrageergebnisse brauchen, weniger effizient macht.
Der Kurs „Joining Data in SQL” ist super, um zu lernen, wie man Tabellen zusammenführt, relationale Mengenlehre anwendet und mit Unterabfragen arbeitet.
Lagerungsbedingungen
Sternschemata brauchen mehr Speicherplatz, weil sie doppelte Infos in Dimensionstabellen speichern. Wenn zum Beispiel mehrere Produkte zur selben Kategorie gehören, wird der Name der Kategorie für jedes Produkt wiederholt, was den Speicherbedarf erhöht.
Bei Snowflake-Schemas werden die Daten aber so normalisiert, dass alle Infos nur einmal gespeichert werden. Anstatt zum Beispiel Kategorienamen zu wiederholen, werden sie in einer separaten Tabelle gespeichert und über Fremdschlüssel mit der Produkttabelle verknüpft. Dieses Design spart Speicherplatz und ist deshalb super für große Datensätze.
Anwendungsfälle
Sternschemata sind super für OLAP-Systeme ( Online Analytical Processing ), Berichte und Business-Intelligence-Aufgaben. Ihre Einfachheit macht sie perfekt für Situationen, in denen es auf Schnelligkeit und Benutzerfreundlichkeit ankommt, wie zum Beispiel beim Erstellen von schnellen Dashboards oder Verkaufsberichten.
Snowflake-Schemata werden oft für Finanzanalysen oder CRM-Systeme (Customer Relationship Management) benutzt. In solchen Fällen ist es wichtiger, detaillierte Hierarchien zu organisieren und Speicherplatz zu sparen, als die Abfragegeschwindigkeit zu erhöhen.
Tabelle
Hier ist ein kurzer Vergleich zwischen dem Stern- und dem Snowflake-Schema, damit du besser entscheiden kannst, welches am besten zu deinen Datenanforderungen passt. Ich habe die wichtigsten Unterschiede in dieser Tabelle hervorgehoben und mich dabei auf ihre Struktur, Leistung, Speicherkapazität und Anwendungsfälle konzentriert:
|
Feature |
Sternschema |
Snowflake-Schema |
Hybridansatz |
|
Struktur |
Zentrale Faktentabelle, die mit denormalisierten Dimensionen verbunden ist |
Zentrale Faktentabelle, die mit normalisierten Dimensionen verbunden ist |
Normalisiertes Kernmodell plus sternförmige Märkte oder nicht normalisierte Ansichten für die Nutzung |
|
Komplexität |
Einfach, mit weniger Verbindungen |
Komplex, mit mehr Verbindungen |
Mittlere Größe, mit mehr beweglichen Teilen, aber jede Schicht bleibt für ihren Zweck einfacher. |
|
Datenredundanz |
Mehr Redundanz wegen denormalisierter Dimensionen |
Weniger Redundanz durch einheitliche Maße |
Mittlere Redundanz durch selektive Denormalisierung |
|
Abfrage-Performance |
Schnellere Abfragen dank einer einfacheren Struktur |
Langsameres Abfragen wegen extra Verknüpfungen |
Schnell für BI, weil die Verbrauchsebene denormalisiert ist |
|
Lagerung |
Braucht mehr Speicherplatz wegen der Redundanz |
Braucht weniger Speicherplatz wegen der Normalisierung |
Benötigt mäßigen Speicherplatz, weil Märkte/Ansichten zu Duplikaten führen können. |
|
Einfache Wartung |
Einfacher zu entwerfen und zu warten |
Komplexer in der Gestaltung und Wartung |
Einfach zu warten, weil Märkte aus dem kontrollierten Kern wieder aufgebaut werden können. |
|
Am besten geeignet für |
Kleine bis mittelgroße Datensätze |
Große und komplizierte Datensätze |
Moderne Datenplattformen, die sowohl Governance-Anforderungen als auch BI-Leistungsanforderungen erfüllen |
Das richtige Schema auswählen
Wann man ein Sternschema benutzt
Wenn du deine Daten vor allem einfach und schnell organisieren willst, ist das Sternschema genau das Richtige für dich. Hier kannst du es verwenden:
- Wenn du ein semantisches Modell für BI-Tools (z. B. Power BI) erstellst und eine geringe Anzahl von Tabellen und Beziehungen haben möchtest. Es unterstützt intuitive Filterung/Gruppierung und funktioniert gut für interaktive Visualisierungen.
- Wenn du einfache Abfragen wie die Ermittlung des Gesamtumsatzes nach Region durchführen möchtest, verwende ein Sternschema. Da alle Dimensionstabellen direkt mit der Faktentabelle verbunden sind, wird unnötige Komplexität vermieden und Antworten werden schneller geliefert.
- Du kannst sogar ein Sternschema verwenden, wenn Geschwindigkeit für dich am wichtigsten ist. Es reduziert die Anzahl der Verknüpfungen zwischen Tabellen, sodass deine Abfragen schneller laufen. Ich hab's mal benutzt, um ein paar Verkaufsberichte zu erstellen, und das hat mir im Vergleich zu anderen Designs echt viel Zeit gespart.
- Wenn dein Datensatz klein bis mittelgroß ist, ist die Redundanz des Sternschemas kein Problem. Selbst mit wiederholten Daten würde es gut funktionieren, ohne deinen Speicherplatz zu überlasten.
Wann sollte man ein Snowflake-Schema verwenden?
Das Snowflake-Schema eignet sich besser, um Hierarchien und gemeinsame Referenzdaten darzustellen, vor allem wenn sich mehrere Dimensionsattribute über viele Zeilen wiederholen. Hier kannst du es verwenden:
- Wenn deine Dimensionen klare Hierarchien haben (z. B. Land → Bundesland/Region → Stadt) und du diese Ebenen sauber als separate Tabellen modellieren möchtest.
- Wenn du mehr Kontrolle über gemeinsam genutzte Referenzdaten haben willst (z. B. Standardlisten wie Kategorien, Hersteller oder Regionen), um Doppelarbeit zu vermeiden und die Konsistenz der Definitionen im gesamten Lager zu vereinfachen.
- Du kannst das Snowflake-Schema sogar verwenden, wenn sich deine Daten oft ändern, wie zum Beispiel bei der Aktualisierung von Regionsnamen. Es sorgt dafür, dass alle zugehörigen Daten immer auf dem neuesten Stand sind, um Fehler und Wartungsaufwand zu minimieren.
- Wenn deine Analyse mehrere Datenebenen umfasst, kann dir das Snowflake-Schema dabei helfen, diese Beziehungen auf einfache Weise zu organisieren und darzustellen.
Schemaauswahl in Cloud-Data-Warehouses
In vielen modernen Cloud-Data-Warehouses ist der Speicherplatz im Vergleich zur Rechenleistung ziemlich günstig. Das heißt, der „zusätzliche Speicherplatz“ von denormalisierten Dimensionen ist oft weniger wichtig als die Rechenkosten für das Scannen und Zusammenführen von Daten.
Wenn du zwischen Stern und Snowflake wählst, denk an das Preismodell deiner Plattform (Rechenleistung vs. Speicherplatz), die Anzahl der gleichzeitigen Abfragen und ob du Caching/materialisierte Ansichten nutzen kannst, um die Abfragekosten niedrig zu halten.
Abschließende Gedanken
In diesem Blog habe ich die Unterschiede zwischen dem Stern- und dem Snowflake-Schema, ihre Stärken und wann man welches Schema verwenden sollte, erklärt. Ich hoffe, du hast jetzt ein klares Verständnis und praktische Tipps für deine Arbeit! Wenn du mehr erfahren möchtest, schau dir diese Ressourcen auf DataCamp an:
- Der Kurs „Einführung in die Datenmodellierung in Snowflake“ hilft dir dabei, die Grundlagen für die Arbeit mit Snowflake zu erlernen.
- Der Kurs „Datenmodellierung in Power BI ” zum Organisieren und Verwalten von Daten in Power BI.
- Der Associate Data Engineer auf dem Lernpfad SQL hilft dir dabei, deine SQL-Kenntnisse auf die nächste Stufe zu bringen.
Werde Dateningenieur
FAQs
Was ist der Sinn der Indizierung in diesen Schemata?
Die Indizierung macht die Abfrage in beiden Schemata schneller, indem sie das Abrufen von Daten beschleunigt.
Was sind Dimensionstabellen und Faktentabellen?
Dimensionstabellen speichern beschreibende Attribute (wie Produktnamen oder Daten), die die Daten in der Faktentabelle beschreiben.
Auf der anderen Seite speichern Faktentabellen quantitative Daten wie Verkaufszahlen oder Transaktionsbeträge und sind mit Dimensionstabellen verbunden.
Sind diese Schemata für unstrukturierte Daten okay?
Nein, diese Schemata sind für strukturierte Daten gedacht. Unstrukturierte Daten brauchen andere Modelle, wie zum Beispiel nosql oder Data Lakes.
Wie kann ich Stern- und Snowflake-Schemata entwerfen?
Um diese Schemata zu erstellen und zu visualisieren, kannst du Datenmodellierungstools (ERDPlus), BI-Tools (Tableau, Power BI, QlikView) oder Cloud-Plattformen (Databricks) nutzen.
Gibt's Alternativen zu Stern- und Snowflake-Schemata?
Ja, du kannst Galaxy-Schemas, Data-Vault-Modellierung oder komplexere Dimensionsmodelle verwenden. Diese Optionen unterscheiden sich hauptsächlich in der Organisation von Daten und im Umgang mit Beziehungen zwischen verschiedenen Informationen.
Ich bin ein Inhaltsstratege, der es liebt, komplexe Themen zu vereinfachen. Ich habe Unternehmen wie Splunk, Hackernoon und Tiiny Host geholfen, ansprechende und informative Inhalte für ihr Publikum zu erstellen.


