Zum Inhalt springen

Was ist ein Datenbankschema?

  • Daten

Ein Datenbankschema ist die Beschreibung der logischen Abhängigkeiten zwischen Datenbankobjekten, wie beispielsweise Relationen, also Tabellen, oder Views. Darin wird definiert, wie die Beziehungen zwischen Attributen und Tabellen geregelt sind. Dazu wird die relationale Abfragesprache SQL genutzt.

Was ist ein relationales Datenbankschema?

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.

Um das volle Potenzial von Datenbanken ausschöpfen zu können, wird deshalb deren Aufbau im Datenbankschema beschrieben und optimiert. Außerdem dient er dazu, dass alle Nutzer der Daten sich eigenständig darüber informieren können, wo die benötigten Informationen liegen und mit welcher Abfrage man an sie gelangen kann. Darin sind nämlich neben den Beziehungen zwischen den Entitäten, wie Tabellen oder Views, auch die Abläufe der Datenbank gespeichert.

Welche Arten von Datenbankschemata gibt es?

In der Anwendung unterscheidet man grundsätzlich zwei verschiedene Arten von Datenbankschemata. Der Unterschied dieser Arten liegt vor allem darin, wie praktisch sie schon veranlagt sind:

  1. Das logische Schema legt die Beziehung zwischen Tabellen und anderen Entitäten fest. Außerdem bestimmt es die sogenannten Integritätsbedingungen. Es gibt mehrere Integritätsbedingungen, die zu konsistenten Daten führen. Eine davon legt beispielsweise fest, dass keine Spalte in der Tabelle Null-Werte enthalten soll.
  2. Das physische Schema hingegen beschäftigt sich vielmehr mit der praktischen Speicherung der Daten und beschreibt mit welchen Indizes die Daten physisch auf dem Speichermedium hinterlegt werden sollen.

Was ist der Unterschied zwischen einem Datenbankschema und einer Datenbankinstanz?

Die Begriff Datenbankinstanz und Datenbankschema werden häufig als Synonyme genutzt, beschreiben jedoch unterschiedliche Eigenschaften. Die Datenbankinstanz ist ein Abzug einer Datenbank zu einem bestimmten Zeitpunkt, das selbst also auch Daten enthält. Somit kann es zu verschiedenen Zeitpunkten auch unterschiedliche Datenbankinstanzen geben.

Das Datenbankschema hingegen ist eher statisch und lässt sich nach der Inbetriebnahme nur sehr schwer wieder verändern. Die Änderung von bestehenden Tabellen, in denen bereits Informationen abgespeichert wurden, ist nur sehr schwierig umzusetzen, da auch die entsprechenden Pipelines, die die Datenbank füllen, geändert werden müssen.

Welche Datenbankschemata gibt es in der Praxis?

In der Praxis haben sich vor allem zwei relationale Datenbankschemata durchgesetzt, die abhängig vom konkreten Anwendungsfall genutzt werden.

Was ist das Starschema?

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 Speicherplatz 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.
Starschema als Datenbankschema
Starschema am Beispiel | Quelle: Autor

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 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.

Snowflake Schema
Snowflake-Schema am Beispiel | Quelle: Autor

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

  • Ein Datenbankschema ist die logische Beschreibung von den Beziehungen von verschiedenen Datenbankobjekten, wie beispielsweise Tabellen oder Views.
  • Man unterscheidet dabei das logische und das physische Datenbankschema.
  • In der Praxis werden Datenbankschemata vor allem im Zusammenhang mit relationalen Datenbanken verwendet. Dabei kommt vor allem das Starschema oder das Snowflakeschema zum Einsatz.

Andere Beiträge zum Thema Datenbankschema

  • Ein ausführlicher Artikel zum Thema Datenbankschema findet sich auch bei Lucidchart. Dieser diente als Grundlage und Quelle für diesen Beitrag.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner