Das Starschema beschreibt die Anordnung von Datenbanktabellen, die möglichst speichereffizient und leistungsstark sein sollen. Wie der Name bereits verrät, sind die Tabellen dabei sternenförmig in einer sogennanten Faktentabelle angeordnet, die von mehreren sogenannten Dimensionstabellen umgeben ist.
Wie ist der Aufbau des Schemas?
Bei großen Datenmengen wird die Speicherung in Datenbanken oder dem Data Warehouse schnell unübersichtlich und Abfragen sind nicht nur kompliziert, sondern dauern auch relativ lange. Deshalb benötigt man intelligente Wege, um Tabellen anzulegen, sodass Speicher gespart werden kann und somit Abfragen schneller stattfinden können.
Ein erster Ansatz dafür ist das Starschema, das sternenförmige Tabellenstrukturen beinhaltet. Dabei wird in Fakten und Dimensionen unterschieden:
- Die Fakten sind Kennzahlen oder Messwerte, die analysiert oder veranschaulicht werden sollen. Sie bilden den Mittelpunkt der Analyse und stehen in der zentralen Faktentabelle. Diese besteht neben den Kennzahlen noch aus den Schlüsseln, die auf die umliegenden Dimensionen verweisen. Im Unternehmensumfeld sind Fakten beispielsweise die Umsatzmenge, der Umsatz oder der Auftragseingang.
- Die Dimensionen hingegen sind die Eigenschaften der Fakten und können genutzt werden, um die Kennzahlen zu visualisieren. In diesen sind dann die verschiedenen Detailstufen der Dimensionen gespeichert und somit kann Speicher gespart werden, da die Details nur ein einziges Mal in der Dimensionstabelle hinterlegt werden müssen. Dimensionen im Unternehmensumfeld sind beispielsweise die Kundeninformationen, das Datum des Auftrags oder Produktinformationen.
Das Starschema verzichtet dabei gezielt auf die Normalisierung, die normalerweise ein wichtiges Konzept in der Datenbanktheorie darstellt. Die dritte Normalform ist nämlich mit einem Sternenschema verletzt. Dafür ist der Aufbau besonders effizient und liefert schnelle Antworten auch bei komplexen Abfragen.
Was ist die Normalisierung?
Wenn Daten in Datenbanken abgelegt werden, kann dies schnell sehr unübersichtlich und redundant werden. Deshalb sollte man sich bei der Erstellung eines Datenbankschemas darüber Gedanken machen, wie sich redundante Informationen, also beispielsweise Duplikate vermeiden lassen.
Die Normalisierung ist dabei eine Abfolge von verschiedenen Schritten, die mehr und mehr vermeidbare Redundanzen verhindern sollen. Dazu gibt es die sogenannten Normalformen, die aufeinander aufbauen und immer strengere Regeln aufweisen. Für das Starschema sind lediglich die ersten drei Normalenformen interessant, da eine Datenbank im Sternenschema lediglich die ersten zwei Normalformen erfüllt, nicht aber die dritte:
- Eine Datenbank ist in der 1. Normalform, wenn alle Attribute/Spalten lediglich einen einzigen Wert aufweisen. Das heißt in keinem Feld kommt es zu einer Ansammlungen von Werten.
- Eine Datenbank befindet sich in der 2. Normalform, wenn jedes Attribut der Tabelle voll vom Primärschlüssel abhängig ist. Das bedeutet auch, dass alle Attribute, die nicht vom Primärschlüssel abhängen in eine separate Datenbanktabelle ausgelagert werden müssen. Natürlich muss eine Datenbank, die in der 2. Normalform ist, auch gleichzeitig die 1. Normalform erfüllen, da diese aufeinander aufbauen. Dasselbe gilt auch für die nachfolgenden Normalformen.
- Eine Datenbank ist in der 3. Normalform, wenn kein Attribut, das nicht Primärschlüssel der Tabelle ist, nicht auf ein anderes Nichtschlüsselattribut hinweist. Wenn dies der Fall ist, muss dafür eine neue Relation, also eine neue Tabelle, erstellt werden.
Das Sternenschema verfehlt in den meisten Fällen die dritte Normalform, da in der Dimensionstabellen häufig mehrere Attribute vorkommen, die zwar kein Primärschlüsselattribut sind und trotzdem aufeinander hinweisen. In der Dimensionstabelle “Produkte” lässt sich der Preis beispielsweise durch die Kombination aus dem “Produktnamen” und der “Farbe” bestimmen, obwohl weder der Produktname noch die Farbe ein Primärschlüsselattribut sind.
Was sind die Vor- und Nachteile des Schemas?
Die Anordnung von Tabellen als Starschema erfüllt zwar nicht die Ansprüche der Normalisierung, da die dritte Normalform nicht gegeben ist, jedoch weist sie einige Vorteile auf, die sie in der praktischen Anwendung sehr beliebt macht:
- Die Anordnung im Starschema ist für eine hohe Anfragelast optimiert und bietet somit die Möglichkeit auch komplexe Abfragen effizient zu bearbeiten.
- Des Weiteren sind durch den gezielten Verzicht der dritten Normalform unnötige Join-Operationen bei den meisten Abfragen nicht nötig.
- Durch die Anordnung im Starschema wird ein Großteil der auftretenden Redundanzen vermieden. Das führt auch dazu, dass die Dimensionstabellen vergleichsweise wenig Speicherplatz benötigen und damit große Mengen an Datenvolumen eingespart werden.
- Das Starschema ist in vielen Anwendungen eine sehr verständliche Anordnung von Relationen, da die Aufteilung in Fakten- und Dimensionstabellen sehr intuitiv und nachvollziehbar ist.
Jedoch gibt es auch Anwendungsfälle in denen die Nutzung des Starschemas nicht optimal ist, beispielsweise wenn die Dimensionstabellen sehr groß werden und es zu häufigen Abfragen auf diesen Tabellen kommt. Dann können sich die Abfragezeiten deutlich verschlechtern. Außerdem kann es, wie bereits erwähnt, zu Redundanzen in den Daten kommen. Deshalb hat sich neben dem Starschema noch ein zweites Datenbankschema gebildet, welches die Nachteile ausbessern soll.
Welche Aspekte sollten bei der Einführung eines Sternschemas beachtet werden?
Die Implementierung eines Sternschemas erfordert einige Überlegungen, um optimale Leistung und effiziente Abfragen zu gewährleisten. Einige wichtige Überlegungen zur Implementierung sind:
- Denormalisierung: In einem Sternschema wird die Faktentabelle denormalisiert, was bedeutet, dass redundante Daten in der Tabelle gespeichert werden. Dies verringert die Notwendigkeit von Joins bei der Abfrage der Daten und verbessert die Abfrageleistung.
- Datentypen: Die Wahl geeigneter Datentypen für die Fakten- und Dimensionstabellen ist wichtig, um eine effiziente Speicherung und Abfrage von Daten zu gewährleisten. Die verwendeten Datentypen sollten die Art der zu speichernden Daten widerspiegeln.
- Indizierung: Die Erstellung geeigneter Indizes für die Fakten- und Dimensionstabellen ist entscheidend für schnelle Abfragen. Die Indizes sollten auf den Abfragen basieren, die üblicherweise auf die Daten ausgeführt werden.
- Partitionierung: Die Partitionierung der Faktentabelle in kleinere Abschnitte auf der Grundlage von Zeiträumen oder anderen Kriterien kann die Abfrageleistung verbessern, indem die Menge der zu durchsuchenden Daten reduziert wird.
- Aggregation: Die Voraggregation von Daten kann die Abfrageleistung verbessern, indem die zu verarbeitende Datenmenge reduziert wird. Die Aggregation kann auf der Fakten- oder Dimensionsebene erfolgen.
- Abfrageoptimierung: Die Abfrageoptimierung ist wichtig, um sicherzustellen, dass Abfragen effizient ausgeführt werden. Techniken wie das Umschreiben von Abfragen, materialisierte Ansichten und Caching können zur Verbesserung der Abfrageleistung eingesetzt werden.
Insgesamt ist die sorgfältige Berücksichtigung dieser Implementierungsfaktoren entscheidend für die erfolgreiche Implementierung eines Sternschemas und eine optimale Leistung bei der Abfrage der Daten.
Was ist das Snowflake-Schema?
Das sogenannte Schneeflocken-Schema ist eine weitere Ausbaustufe des Starschemas mit dem Ziel die Tabellen komplett zu normalisieren und dadurch die Nachteile des Starschemas gewissermaßen zu umgehen. Der Aufbau einer Schneeflocke ergibt sich kurzgesagt dadurch, dass die Dimensionstabellen noch weiter aufgeschlüsselt und klassifiziert werden. Die Faktentabelle hingegen bleibt unverändert.
In unserem Beispiel könnte das dazu führen, dass die Dimensionstabelle mit den Lieferadressen weiter klassifiziert wird in Land, Bundesland und Stadt. Dadurch werden die Tabellen normalisiert und es ist auch die dritte Normalform erfüllt, jedoch geht dies zu Lasten von weiteren Verzweigungen. Diese sind vor allem bei einer späteren Abfrage nachteilig, da diese mit aufwändigen Joins wieder zusammengefügt werden müssen.
Die Weiterverzweigung führt also dazu, dass die Daten weniger redundant abgespeichert werden und dadurch die Datenmenge nochmal weiter reduziert wird im Vergleich zum Starschema. Dies geht jedoch zu Lasten der Performance, da bei der Abfrage die Dimensionstabellen wieder zusammengeführt werden müssen, was häufig sehr aufwändig ist.
Sternschema vs. Snowflake-Schema
Das Starschema und das Snowflake-Schema sind relativ ähnlich aufgebaut und werden auch deshalb oft miteinander verglichen. Tatsächlich hängt die Wahl eines passenden Datenbankschemas vor allem von der konkreten Anwendung ab.
Kurz gesagt ist das Ziel des Starschemas eine gute Grundlage für häufige Abfragen zu bieten und trotzdem die Datenmenge zu verringern. Das wird erzeugt, indem eine Aufspaltung in Fakten- und Dimensionstabellen vorgenommen wird. Dadurch lassen sich viele Redundanzen entfernen und die ersten zwei Normalformen erfüllen. Die Zahl der Tabellen bleibt verhältnismäßig klein und dadurch sind Abfragen mit wenigen Joins und schnellen Antwortzeiten möglich. Jedoch kann keine vollständige Normalisierung der Datenbank erfolgen und einige Redundanzen bleiben bestehen.
Das Schneeflocken-Schema hingegen ist eine Weiterentwicklung des Starschemas mit dem Ziel, eine Normalisierung der Datenbank herbeizuführen. Dabei wird die Faktentabelle beibehalten und die Dimensionstabellen werden noch weiter klassifiziert und in weitere Relationen aufgeteilt. Dadurch werden zwar die verbleibenden Redundanzen des Starschemas beseitigt, jedoch werden Abfragen dadurch langsamer und aufwändiger, da die Dimensionstabellen erst wieder zusammengeführt werden müssen.
Das solltest Du mitnehmen
- Das Starschema ist ein Datenbankschema, das dazu genutzt wird, möglichst effiziente Datenbankabfragen zu ermöglichen.
- Dazu werden die ursprünglichen Daten in die sogenannte Faktentabelle und mehrere Dimensionstabellen aufgeteilt.
- Obwohl das Starschema bereits viele Redundanzen beseitigt, werden immer noch einige Informationen doppelt abgespeichert. Auch deshalb erfüllt das Starschema die Anforderungen der Normalisierung nicht.
- Eine Weiterentwicklung des Starschemas ist das sogenannte Schneeflocken-Schema, das die Dimensionstabellen nochmal in feinere Relationen aufteilt. Das geht jedoch zu Lasten der Performance bei Abfragen.
Was ist Ausreißererkennung?
Entdecken Sie Anomalien in Daten mit Verfahren zur Ausreißererkennung. Verbessern Sie ihre Entscheidungsfindung!
Was ist die Bivariate Analyse?
Nutzen Sie die Bivariate Analyse: Erforschen Sie Typen und Streudiagramme und nutzen Sie Korrelation und Regression.
Was ist eine RESTful API?
Erfahren Sie alles über RESTful APIs und wie sie Ihre Webentwicklungsprojekte effizienter und skalierbarer machen können.
Was sind Zeitreihendaten?
Gewinnen Sie mithilfe von Analyse- und Prognosetechniken Erkenntnisse aus Zeitreihendaten. Entdecken Sie Trends und Muster!
Was ist ein Balkendiagramm?
Entdecken Balkendiagramme bei der Datenvisualisierung. Lernen Sie, wie man sie für aufschlussreiche Datenanalyse erstellt und anpasst.
Was ist ein Liniendiagramm?
Meistern Sie die Kunst der Liniendiagramme: Lernen Sie in unserem Leitfaden, wie Sie Trends und Muster visualisieren können.
Andere Beiträge zum Thema Starschema
Microsoft hat einen sehr interessanten Beitrag zum Starschema und dessen Bedeutung für deren Business Analytics Plattform Power BI geschrieben.
Niklas Lang
Seit 2020 bin ich als Machine Learning Engineer und Softwareentwickler tätig und beschäftige mich leidenschaftlich mit der Welt der Daten, Algorithmen und Softwareentwicklung. Neben meiner Arbeit in der Praxis unterrichte ich an mehreren deutschen Hochschulen, darunter die IU International University of Applied Sciences und die Duale Hochschule Baden-Württemberg, in den Bereichen Data Science, Mathematik und Business Analytics.
Mein Ziel ist es, komplexe Themen wie Statistik und maschinelles Lernen so aufzubereiten, dass sie nicht nur verständlich, sondern auch spannend und greifbar werden. Dabei kombiniere ich praktische Erfahrungen aus der Industrie mit fundierten theoretischen Grundlagen, um meine Studierenden bestmöglich auf die Herausforderungen der Datenwelt vorzubereiten.