Direkt zum Inhalt

Star Schema vs. Snowflake Schema: Unterschiede & Anwendungsfälle

In diesem Leitfaden werden Stern- und Snowflake-Schemata beschrieben - zwei gängige Methoden, um Daten in Warenhäusern zu organisieren. Du erfährst, wie sie funktionieren, wie sie sich unterscheiden und wann du sie für deinen Datenbedarf einsetzen solltest.
Aktualisierte 20. Jan. 2025  · 20 Min. Lesezeit

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. Aber hast du schoner darüber nachgedacht, welches Datenbankschema am besten deine Bedürfnisse passt? Es gibt zwei große Frameworks, die du dafür verwenden kannst: das Sternschema und das Snowflake-Schema.

Das Sternschema ist einfach und schnell - ideal, wenn du schnell Daten für Analysen extrahieren musst. Das Snowflake-Schema hingegen ist detaillierter. Es legt den Schwerpunkt auf Speichereffizienz und die Verwaltung komplexer Datenbeziehungen. 

In diesem Artikel erkläre ich dir die Strukturen dieser Schemata, zeige ihre Unterschiede auf und erläutere ihre Vorteile. Am Ende wirst du wissen, wo jedes Schema passt und wie du entscheiden kannst, welches für deine Datenprojekte am besten geeignet ist.

Was ist ein Sternschema?

Ein Sternschema ist eine Möglichkeit, Daten in einer Datenbank zu organisieren, insbesonderein Data Warehouses, um sieeinfacher und schneller zu analysieren. Im Zentrum steht eine Haupttabelle, dieFaktentabelle , die messbare Daten wie Verkäufe oder Einnahmen enthält. Rundherum gibt es Dimensionstabellen, die Details wie Produktnamen, Kundeninformationen oder Daten hinzufügen. Diese Anordnung bildet eine sternförmige Form.

Sternschema-Layout.

Sternschema-Layout. Bild vom Autor.

Schauen wir uns die wichtigsten Merkmale des Sternschemas an:

  • Tabellen mit einstufigen Dimensionen: Die Dimensionstabellen sind direkt mit der Faktentabelle verbunden, ohne zusätzliche Ebenen. Jede Tabelle konzentriert sich auf einen Bereich, z. B. Produkte, Regionen oder Zeit, und ist dadurch einfach zu bedienen.
  • Denormalisierter Entwurf: In einem Sternschema werden zusammenhängende Daten in einer Tabelle gespeichert, wobei ein denormalisierter Ansatz verwendet wird. Eine Tabelle kann zum Beispiel die Produkt-ID, den Namen und die Kategorie an der gleichen Stelle enthalten. Das bedeutet zwar einige Datenwiederholungen, aber die Abfragen werden schneller bearbeitet.
  • Üblich im Data Warehousing: Das Sternschema wird für eine schnelle Analyse verwendet. Sie kann leicht filtern oder Summen berechnen und ist daher eine gute Wahl für Data Warehouses, in denen schnelle Einblicke erforderlich sind.

Lass uns das mit einem einfachen Sternschema-Diagramm verstehen. DieFaktentabelle Sales steht in der Mitte. Sie enthält die numerischen Daten, die du analysieren willst, wie z. B. Umsätze oder Gewinne. Damit verbunden sind Dimensionstabellen mit beschreibenden Details, wie Produktnamen, Kundenstandort oder Daten:

Ein Beispiel aus der Praxis für ein Sternschema.

Beispiel für ein Sternschema. Bild vom Autor. 

Hier ist ein einfaches SQL-Beispiel für die Einrichtung eines Sternschemas mit einer Sales Faktentabelle und Dimensionstabellen für Product, Customer, und 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 beschleunigt Abfragen, weil es keine komplexen Verknüpfungen gibt. Die folgende Abfrage ruft zum Beispiel die Gesamtumsätze gruppiert nach Kundenstandort ab und nutzt dabei die einfachen Joins des Sternschemas:

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 eine gewisse Datenredundanz in Kauf nehmen, da die Tabellen der Dimensionen möglicherweise wiederholte Informationen enthalten.

Vorteile und Grenzen eines Sternschemas

Jetzt, wo du weißt, was ein Sternschema ist, wollen wir uns ansehen, warum es sich auszeichnet:

  • Schnellere Abfrageleistung: Das Sternschema vereinfacht das Abrufen von Daten, indem es Abfragen schnell macht. Wenn ich mir zum Beispiel die Umsatzentwicklung ansehen möchte, verbinde ich die Faktentabelle mit den richtigen Dimensionstabellen. Und das Beste daran ist, dass ich all das tun werde, ohne mich mit komplexen Beziehungen auseinanderzusetzen. Das würde meine Abfragen schneller machen und mir eine Menge Zeit sparen.
  • Leicht zu verstehen: Die Struktur ist logisch und einfach zu verstehen, auch für technisch nicht versierte Nutzer. Neue Teammitglieder können schnell erkennen, welche Tabellen die von ihnen benötigten Daten enthalten, was die Analyse beschleunigt und die Pflege vereinfacht.

Trotz aller Vorteile hat das Sternschema auch einen Nachteil. Wie ich bereits erwähnt habe, enthalten Dimensionstabellen aufgrund der Denormalisierung oft wiederholte Informationen, was den Speicherbedarf erhöht. Wenn zum Beispiel mehrere Produkte zur gleichen Kategorie gehören, kann sich der Name jedes Produkts wiederholen, was mehr Speicherplatz beansprucht.

Was ist ein Snowflake Schema?

Ein Snowflake-Schema ist eine weitere Möglichkeit, Daten zu organisieren. In diesem Schema werden Dimensionstabellen in kleinere Unterdimensionen aufgeteilt, damit die Daten übersichtlicher und detaillierter bleiben - wie Schneeflocken in einem großen See. 

Snowflake Schema Layout.

Snowflake Schema Layout. Bild vom Autor.

Schauen wir uns die wichtigsten Merkmale des Snowflake-Schemas an, die es von anderen Schemas unterscheiden:

  • Tabellen mit mehreren Dimensionsebenen: Wir können unsere Dimensionstabellen in kleinere, spezifischere Tabellen aufteilen. Wenn ich z.B. die Standorte meiner Filialen erfassen möchte, kann ich sie in separate Tabellen für Länder, Staaten und Städte aufteilen, anstatt alle Standortdetails in eine große Tabelle zu packen. Auf diese Weise würde jede Tabelle nur die Informationen enthalten, die sie benötigt, um Redundanzen zu vermeiden und die Organisation zu verbessern.
  • Normalisierung für Speichereffizienz: Im Gegensatz zum Sternschema ermöglicht das Snowflake-Schemaein normalisiertes Design, was die Duplizierung von Daten vermeidet. Anstatt z.B. eine Produktkategorie wie Electronics für jedes Produkt zu wiederholen, kann ich die Kategorie in einer separaten Tabelle speichern und sie mit einzelnen Produkten verknüpfen.
  • Eignung für komplexe Datenumgebungen: Das Snowflake-Schema eignet sich am besten für komplexe Datenumgebungen, da es mehrstufige Tabellen verwendet, um komplizierte Beziehungen und hierarchische Datenstrukturen zu handhaben.

Wir wollen das anhand eines einfachen Snowflake-Schemas verstehen. Im Mittelpunkt steht die Tabelle mit den messbaren Daten. Sie ist mit Dimensionstabellen verbunden, die die Fakten beschreiben, und diese Dimensionstabellen verzweigen sich weiter in Unterdimensionstabellen, die eine schneeflockenartige Struktur bilden. 

Hier habe ich zum Beispiel die Tabelle Product in dieTabellen Manufacturer und Category und dieTabelle Customer in dieTabellen Transaction und Location aufgeteilt:

Ein Beispiel für das Snowflake-Schema in der realen Welt.

Beispiel für ein Snowflake-Schema. Bild vom Autor.

Hier ist ein SQL-Beispiel für ein Snowflake-Schema, bei dem die Product Tabelle weiter normalisiert wird in Category und Manufacturer Tabellen unterteilt ist:

-- 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 berechnet den Gesamtumsatz nach Produktkategorie. Obwohl es mehr Joins erfordert als das Sternschema, 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 Grenzen eines Snowflake-Schemas

Wie das Sternschema hat auch das Snowflake-Schema seine eigenen Vorteile. Schauen wir mal, welche das sind:

  • Weniger Datenredundanz: Die Normalisierung stellt sicher, dass dieselben Daten nicht mehrfach gespeichert werden, wodurch Doppelarbeit vermieden wird.
  • Effizienter Speicher für große Datenmengen: Dieses Schema spart Speicherplatz, indem es die Wiederholung von Daten vermeidet und ist daher ideal für die Verwaltung großer Datenmengen.

Trotz der Vorteile gibt es aber auch ein paar Einschränkungen. Sokönnen zum Beispiel die Abfragen von langsamer sein, weil es mehr Verknüpfungen zwischen Tabellen gibt. Abgesehen davon ist die mehrstufige Struktur anspruchsvoller zu gestalten und zu pflegen als einfachere Schemata wie das Sternschema. Entscheide dich also nur dafür, 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 die Analyse erfahren möchtest. 

Unterschiede zwischen Star Schema und Snowflake Schema

Sowohl Stern- als auch Snowflake-Schemata sind im Data Warehousing weit verbreitet, aber aufgrund ihrer einzigartigen Eigenschaften eignen sie sich für unterschiedliche Anforderungen. Schauen wir uns an, wie sich diese Schemata in Bezug auf Struktur, Leistung, Speicheranforderungen und Anwendungsfälle unterscheiden.

Struktur

Alle Dimensionstabellen sind direkt mit einer zentralen Faktentabelle in einem Sternschema verbunden. Das bedeutet, dass alle deine Referenzdaten nur einen Schritt von deinen Hauptdaten entfernt sind, wodurch sie leicht zu verstehen und zu bearbeiten sind.

Im Vergleich dazu unterteilt ein Snowflake-Schema Dimensionstabellen in kleinere, spezifischere Sub-Dimensionstabellen. Du kannst z.B. statt einer Tabelle für einen Ort separate Tabellen für Länder, Staaten und Städte haben. Dies schafft zwar eine übersichtlichere und detailliertere Struktur, bedeutet aber auch, dass mehr Verbindungen (oder Joins) erforderlich sind, um auf deine Daten zuzugreifen - ein Hauptgrund, warum ein Snowflake-Schema komplexer ist als ein Sternschema.

Leistung

Wenn es um Geschwindigkeit geht, sind Sternschemata besser. Da alle Dimensionstabellen direkt mit der Faktentabelle verbunden sind, benötigen Abfragen weniger Joins, 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 minimaler Verarbeitung abzurufen.

Umgekehrt sind Snowflake-Schemata langsamer, weil du dich über mehrere Tabellen verbinden musst, um die Daten abzurufen. Jede Verknüpfung erhöht die Verarbeitungszeit, wodurch Snowflake-Schemata für Aufgaben, die schnelle Abfrageergebnisse erfordern, weniger effizient sind.

Der Kurs Joining Data in SQL ist eine hervorragende Grundlage, um zu lernen, wie man Tabellen zusammenfügt, die relationale Mengenlehre anwendet und mit Unterabfragen arbeitet.

Anforderungen an die Lagerung

Sternschemata benötigen mehr Speicherplatz, weil sie redundante Informationen in Dimensionstabellen speichern. Wenn zum Beispiel mehrere Produkte zur selben Kategorie gehören, wiederholt sich der Kategoriename für jedes Produkt, was den Speicherbedarf erhöht.

Snowflake-Schemata normalisieren die Daten jedoch so, dass alle Informationen nur einmal gespeichert werden. Anstatt die Kategorienamen zu wiederholen, werden sie zum Beispiel in einer separaten Tabelle gespeichert und über Fremdschlüssel mit der Produkttabelle verknüpft. Dieses Design spart Speicherplatz und ist daher ideal für große Datenmengen.

Anwendungsfälle

Sternschemata sind ideal für OLAP-Systeme ( Online Analytical Processing ), Berichte und Business Intelligence-Aufgaben. Ihre Einfachheit macht sie perfekt für Szenarien, in denen Geschwindigkeit und Benutzerfreundlichkeit wichtig sind, z. B. bei der Erstellung von schnellen Dashboards oder Verkaufsberichten.

Snowflake-Schemata werden häufig für Finanzanalysen oder Customer Relationship Management (CRM)-Systeme verwendet. Die Organisation von detaillierten Hierarchien und die Einsparung von Speicherplatz sind in solchen Fällen wichtiger als die Abfragegeschwindigkeit.

Wann wird ein Sternschema verwendet?

Wenn du deine Daten vor allem einfach und schnell organisieren willst, ist das Sternschema perfekt. Hier ist, wann du es verwenden kannst:

  • Wenn du einfache Abfragen durchführen willst, z. B. den Gesamtumsatz nach Region, kannst du das Sternschema verwenden. Da alle Dimensionstabellen direkt mit der Faktentabelle verbunden sind, wird unnötige Komplexität vermieden und die Antworten werden schneller geliefert.
  • Du kannst sogar ein Sternschema verwenden, wenn du Wert auf Geschwindigkeit legst. Es minimiert die Anzahl der Tabellen-Joins, sodass deine Abfragen schneller laufen. Ich habe es einmal benutzt, um mehrere Verkaufsberichte zu erstellen, was mir im Vergleich zu anderen Designs sehr viel Zeit erspart hat.
  • Wenn dein Datensatz klein bis mittelgroß ist, wird die Redundanz des Sternschemas kein Problem sein. Selbst mit wiederholten Daten würde es gut funktionieren, ohne deinen Speicher zu überfordern.

Wann wird ein Snowflake Schema verwendet?

Das Snowflake-Schema eignet sich besser für häufige Aktualisierungen oder die Organisation von detaillierten Hierarchien. Hier ist, wann du es verwenden kannst:

  • Verwende das Snowflake-Schema, wenn du mit großen Datensätzen arbeitest und Speicherplatz sparen willst. Sie normalisiert Dimensionstabellen, um die Wiederholung von Daten zu vermeiden, was den Speicherbedarf reduziert.
  • Du kannst das Snowflake-Schema sogar verwenden, wenn sich deine Daten häufig ändern, z. B. wenn du die Namen der Regionen aktualisierst. Es sorgt für konsistente Aktualisierungen aller zugehörigen Daten, um Fehler und Wartungsaufwand zu minimieren.
  • Wenn deine Analyse mehrere Datenebenen umfasst, kann dir das Snowflake-Schema helfen, diese Beziehungen auf einfache Weise zu organisieren und darzustellen.

Zusammenfassende Tabelle: Star Schema vs. Snowflake Schema 

Im Folgenden findest du einen kurzen Vergleich zwischen dem Stern- und dem Snowflake-Schema, damit du entscheiden kannst, welches Schema am besten für deine Datenanforderungen geeignet ist. In dieser Tabelle habe ich die wichtigsten Unterschiede hervorgehoben, wobei ich mich auf die Struktur, die Leistung, die Speicherung und die Anwendungsfälle konzentriert habe:

Feature

Sternschema

Snowflake Schema

Struktur

Zentrale Tabelle, die mit denormalisierten Dimensionen verknüpft ist

Zentrale Tabelle, die mit normalisierten Dimensionen verknüpft ist

Komplexität

Einfach, mit weniger Fugen

Komplex, mit mehr Fugen

Datenredundanz

Höhere Redundanz durch denormalisierte Dimensionen

Geringere Redundanz durch normalisierte Abmessungen

Abfrageleistung

Schnellere Abfragen durch eine einfachere Struktur

Langsamere Abfragen aufgrund von zusätzlichen Joins

Lagerung

Erfordert mehr Speicherplatz wegen der Redundanz

Benötigt durch die Normalisierung weniger Speicherplatz

Einfache Wartung

Einfacher zu gestalten und zu pflegen

Komplexer zu gestalten und zu warten

Am besten geeignet für

Kleine bis mittlere Datensätze

Große und komplexe Datensätze

Schlussgedanken

In diesem Blog habe ich die Unterschiede zwischen dem Stern- und dem Snowflake-Schema, ihre Stärken und den richtigen Zeitpunkt für den Einsatz beider Schemata erläutert. Ich hoffe, du hast ein klares Verständnis und praktische Tipps für deine Arbeit! Wenn du mehr erfahren möchtest, schau dir diese Ressourcen auf DataCamp an:

Werde Dateningenieur

Beweise deine Fähigkeiten als einsatzbereiter Datentechniker.
Meine Datenkarriere auf der Überholspur

FAQs

Was ist der Zweck der Indexierung in diesen Schemata?

Die Indizierung verbessert die Abfrageleistung in beiden Schemata, indem sie den Datenabruf schneller macht.

Was versteht man unter Dimensionstabellen und Faktentabellen?

Dimensionstabellen speichern beschreibende Attribute (wie Produktnamen oder Daten), die die Daten in der Faktentabelle beschreiben.

Faktentabellen hingegen speichern quantitative Daten, z. B. Umsatzzahlen oder Transaktionsbeträge, und sind mit Dimensionstabellen verbunden.

Sind diese Schemata für unstrukturierte Daten geeignet?

Nein, diese Schemata sind für strukturierte Daten gedacht. Unstrukturierte Daten erfordern andere Modelle, wie 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) verwenden.

Gibt es Alternativen zu Stern- und Snowflake-Schemata?

Ja, du kannst Galaxy-Schemata, Data Vault-Modelle oder komplexere dimensionale Modelle verwenden. Diese Optionen unterscheiden sich vor allem in der Organisation der Daten und im Umgang mit Beziehungen zwischen verschiedenen Informationen.


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

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.

Themen

Lerne mehr über Data Engineering mit diesen Kursen!

Zertifizierung verfügbar

Kurs

Einführung in die Datentechnik

4 hr
115.9K
In diesem kurzen Kurs lernst du die Welt des Data Engineering kennen und erfährst mehr über Tools und Themen wie ETL und Cloud Computing.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen