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.

Was sind die Elemente eines Datenbankschemas?

Ein Datenbankschema ist ein Entwurf einer Datenbank, der die logische und physische Struktur der Daten beschreibt. Es definiert, wie die Daten organisiert sind und wie die Beziehungen zwischen den verschiedenen Datenelementen hergestellt werden. Das Schema trägt dazu bei, dass die Daten auf einheitliche Weise gespeichert, organisiert und abgerufen werden. Es bietet auch ein klares Verständnis dafür, wie die Daten in einer Organisation verwendet werden.

Die wichtigsten Elemente eines Datenbankschemas sind:

  • Tabellen: Sie sind die wichtigsten Objekte in einem Datenbankschema und enthalten die eigentlichen Daten in Zeilen und Spalten. Tabellen stellen die Entität oder das Konzept dar, auf die sich die Daten beziehen, und jede Spalte stellt ein Attribut dieser Entität dar.
  • Spalten: Dies sind die Felder, aus denen eine Tabelle besteht, und sie definieren die Art der Daten, die in jeder Spalte gespeichert werden können. Jeder Spalte wird ein Name und ein Datentyp zugewiesen, z. B. Text, numerisch oder Datum.
  • Primärschlüssel: Dies sind eindeutige Bezeichner, die dazu dienen, die Eindeutigkeit jedes Datensatzes in einer Tabelle zu gewährleisten. Primärschlüssel können einzelne Spalten oder Kombinationen von Spalten sein und werden als Grundlage für die Erstellung von Beziehungen zwischen Tabellen verwendet.
  • Fremdschlüssel: Sie werden verwendet, um Beziehungen zwischen Tabellen herzustellen und die referenzielle Integrität zu gewährleisten. Ein Fremdschlüssel ist eine Spalte oder eine Kombination von Spalten in einer Tabelle, die auf den Primärschlüssel einer anderen Tabelle verweist.
  • Indizes: Diese werden verwendet, um die Leistung von Datenbankabfragen zu verbessern, indem eine Datenstruktur erstellt wird, die ein schnelles Nachschlagen bestimmter Werte in einer Tabelle ermöglicht. Indizes können für eine oder mehrere Spalten in einer Tabelle erstellt werden.
  • Einschränkungen (Constraints): Dies sind Regeln, die von der Datenbank durchgesetzt werden, um die Datenintegrität zu gewährleisten. Constraints können verwendet werden, um Regeln wie Datentyp, Eindeutigkeit und referentielle Integrität durchzusetzen.
  • Ansichten: Dies sind virtuelle Tabellen, die durch die Kombination von Daten aus einer oder mehreren Tabellen in einer Datenbank erstellt werden. Ansichten werden verwendet, um komplexe Abfragen zu vereinfachen und den Benutzern eine vereinfachte Sicht auf die Daten zu bieten.

Insgesamt ist ein Datenbankschema ein Entwurf für die Organisation von Daten in einer Datenbank und umfasst die Struktur der Tabellen, die Beziehungen zwischen ihnen und die Regeln, die für die Daten gelten.

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.

Was sind Best Practices um ein Datenbnkschema zu erstellen?

Der Entwurf eines Datenbankschemas ist eine wichtige Aufgabe, die einen erheblichen Einfluss auf die Leistung, Benutzerfreundlichkeit und Skalierbarkeit einer Anwendung haben kann. Im Folgenden finden Sie einige Best Practices, die Sie bei der Erstellung eines Datenbankschemas berücksichtigen sollten:

  • Halte es einfach: Einer der wichtigsten Grundsätze bei der Erstellung von Datenbankschemata ist es, sie einfach zu halten. Die Einfachheit trägt dazu bei, dass das Schema leicht zu verstehen, zu pflegen und zu ändern ist. Komplexe Schemadesigns können zu Problemen führen, z. B. zu einer langsameren Leistung und zu Dateninkonsistenzen.
  • Benutze beschreibende Namen: Namenskonventionen spielen eine entscheidende Rolle für die Verständlichkeit des Datenbankschemas. Stelle deshalb sicher, dass Du beschreibende Namen verwendest, die den Zweck der Tabellen und Spalten genau wiedergeben.
  • Wähle die richtigen Datentypen: Wähle die richtigen Datentypen für jede Spalte, um die Speicherung und Leistung zu optimieren. Beispielsweise kann die Verwendung des Datentyps Integer für Spalten, die große Zahlen speichern, die Speichereffizienz verbessern und die Verarbeitungszeit verringern.
  • Normalisiere die Daten: Unter Normalisierung versteht man den Prozess der Organisation des Datenbankschemas, um Datenredundanz zu minimieren und Datenkonsistenz zu gewährleisten. Sie kann dazu beitragen, Probleme wie Dateninkonsistenzen und Aktualisierungsanomalien zu vermeiden.
  • Optimieren der Abfrageleistung: Entwerfe das Datenbankschema unter Berücksichtigung der Abfrageleistung. Verwende Indizierungen, um den Datenabruf zu beschleunigen, und vermeide die Verwendung von Platzhaltersuchen oder Abfragen, die eine große Anzahl von Zeilen zurückgeben.
  • Verwende Constraints: Constraints helfen, die Datenintegrität zu gewährleisten und können Dateninkonsistenzen verhindern. Durch die Definition einer Fremdschlüssel-Beschränkung kann beispielsweise sichergestellt werden, dass Daten in einer Tabelle immer mit Daten in einer anderen Tabelle verknüpft sind.
  • Dokumentiere das Schema: Schließlich ist es wichtig, das Datenbankschema zu dokumentieren, damit es für andere leicht zu verstehen und zu pflegen ist. Die Dokumentation des Schemas sollte eine detaillierte Beschreibung jeder Tabelle, Spalte und Beziehung sowie aller Annahmen und Einschränkungen enthalten.

Wenn Du diese bewährten Verfahren befolgen, kannst Du ein Datenbankschema erstellen, das leicht zu verstehen und zu pflegen ist und dessen Leistung optimiert werden kann.

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

Was ist eine RESTful API?

Erfahren Sie alles über RESTful APIs und wie sie Ihre Webentwicklungsprojekte effizienter und skalierbarer machen können.

Time Series Data / Zeitreihendaten

Was sind Zeitreihendaten?

Gewinnen Sie mithilfe von Analyse- und Prognosetechniken Erkenntnisse aus Zeitreihendaten. Entdecken Sie Trends und Muster!

Balkendiagramm / Bar Chart

Was ist ein Balkendiagramm?

Entdecken Balkendiagramme bei der Datenvisualisierung. Lernen Sie, wie man sie für aufschlussreiche Datenanalyse erstellt und anpasst.

Liniendiagramm / Line Chart

Was ist ein Liniendiagramm?

Meistern Sie die Kunst der Liniendiagramme: Lernen Sie in unserem Leitfaden, wie Sie Trends und Muster visualisieren können.

Data Preprocessing

Was ist Data Preprocessing?

Optimieren Sie Ihre Datenanalyse mit effektivem Data Preprocessing. Lernen Sie das Wesentliche in unserem Leitfaden zur Datenvorverarbeitung.

Kreisdiagramm / Pie Chart

Was ist ein Kreisdiagramm?

Visualisieren Sie Datenproportionen mit Kreisdiagrammen: Eine intuitive und effektive Methode, um die relative Verteilung zu verstehen.

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

Schlagwörter:
Cookie Consent mit Real Cookie Banner