Der Prozess des Datenbankdesigns: Vom Datenbankschema zur fertigen Struktur

18 min

Eine gut strukturierte Datenbank ermöglicht es Nutzenden schnellen Zugriff auf geschäftskritische Informationen zu erhalten. Mit darauf spezialisierten Tools für das Datenbankdesign, wie Lucidchart, welches Ihnen dank automatischem ERD-Import aus DBMS (MySQL, PostgreSQL, Oracle) und Salesforce viel manuelle Arbeit ersparen kann, gelingt das auch mühelos und blitzschnell. Unabhängig davon, ob Sie für Ihr Datenbankdesign ein Tool werden werden oder nicht, werden Ihnen die auf dieser Seite dargelegten Prinzipien dabei helfen, erfolgreich eine Datenbank zu planen, welche sowohl leistungsstark als auch flexibel bezüglich zukünftiger Anforderungen ist. Wir behandeln im Folgenden die Grundlagen der Datenbankgestaltung sowie Best Practices zur Optimierung Ihrer Datenbank.

Der Prozess des Datenbankdesigns

Eine gut strukturierte Datenbank bietet Ihnen folgende Vorteile:

  • Sie spart Speicherplatz durch die konsequente Eliminierung redundanter Daten.
  • Sie gewährleistet die dauerhafte Genauigkeit sowie Integrität aller Daten.
  • Sie ermöglicht einen flexiblen, zielführenden Zugriff auf die Datenbestände.

Das Entwerfen einer nützlichen Datenbank erfordert die Einhaltung eines strukturierten Prozesses, welcher sich in die folgenden Phasen gliedert:

  1. Anforderungsanalyse zur präzisen Bestimmung des Datenbankzwecks
  2. Strukturierung und Organisation der Daten in Tabellen
  3. Festlegung von Primärschlüsseln sowie die genaue Analyse von Beziehungen
  4. Normalisierung zur Standardisierung der einzelnen Tabellen

Lassen Sie uns jeden einzelnen dieser Schritte genauer betrachten. Bitte beachten Sie, dass sich dieser Leitfaden ausschließlich mit dem von Edgar F. Codd entwickelten relationalen Datenbankmodell befasst, wie es in SQL implementiert wird (wobei hierarchische, Netzwerk- oder Objektdatenmodelle hier außen vor bleiben). Um tiefere Einblicke in allgemeine Datenbankmodelle zu gewinnen, empfehlen wir Ihnen unseren speziellen Leitfaden, den Sie hier finden.

Was versteht man unter einem Datenbankschema?

Ein Datenbankschema repräsentiert die logische Konfiguration einer relationalen Datenbank oder eines Teils davon. Es kann sowohl als visuelle Darstellung als auch in Form einer Reihe von Formeln existieren, die als Integritätsbedingungen die Datenbank steuern. Jene Formeln werden mithilfe einer Datendefinitionssprache wie SQL ausgedrückt. Als integraler Bestandteil eines Data Dictionarys veranschaulicht ein Datenbankschema präzise, wie die verschiedenen Entitäten der Datenbank – darunter Tabellen, Ansichten, gespeicherte Prozeduren und weitere Elemente – zueinander in Beziehung stehen.

 

Logical Physical Schema.svg

In der Regel entwerfen Datenbahndesigner:innen ein entsprechendes Schema, um Softwareentwickelnden, deren Anwendungen mit der Datenbank interagieren, eine klare Orientierung zu bieten. Dieser Erstellungsprozess wird als Datenmodellierung bezeichnet. Folgt man beim Datenbankdesign dem Drei-Schema-Ansatz, schließt sich dieser Schritt nahtlos an die Ausarbeitung eines konzeptionellen Schemas an. Konzeptionelle Schemata konzentrieren sich primär auf die Informationsbedarfe einer Organisation und klammern die physische Struktur der Datenbank zunächst aus.

Dabei unterscheidet man zwei Hauptarten von Datenbankschemata:

  1. Ein logisches Datenbankschema vermittelt die logischen Einschränkungen, welche für die gespeicherten Daten gelten, und definiert gegebenenfalls Integritätsbedingungen, Ansichten sowie Tabellen.
  2. Ein physisches Datenbankschema legt detailliert fest, wie Daten auf einem Speichersystem in Form von Dateien und Indizes physisch abgelegt werden.

Auf der grundlegendsten Ebene zeigt ein Datenbankschema auf, welche Tabellen oder Relationen die Datenbank bilden und welche Felder in den einzelnen Tabellen enthalten sind. Aus diesem Grund werden die Begriffe Schemadiagramm und Entity-Relationship-Diagramm in der Praxis oft synonym verwendet.

Dieses Datenbank-Tutorial hilft Einsteigenden, die Grundlagen von Datenbankmanagementsystemen zu verstehen. Wir nutzen anschauliche Analogien, um einen allgemeinen Überblick über Tabellenkalkulationen, Tabellen und Datenbankmanagementsysteme zu geben. Die Logik und die Konzepte in diesem Tutorial erleichtern das Verständnis der technischeren Aspekte von Datenbankarchitektur und Entity-Relationship-Diagrammen (ERD).

Anforderungsanalyse: Den Zweck der Datenbank präzise bestimmen

Das tiefgreifende Verständnis des genauen Zwecks Ihrer Datenbank wird all Ihre Entscheidungen während des gesamten Designprozesses maßgeblich beeinflussen. Stellen Sie sicher, dass Sie die Datenbank aus jeder denkbaren Perspektive beleuchten. Würden Sie beispielsweise eine Datenbank für eine öffentliche Bibliothek erstellen, müssten Sie zwingend die spezifischen Wege berücksichtigen, auf denen sowohl Bibliotheksnutzende als auch das Personal auf die Daten zugreifen müssen.

Hier sind bewährte Methoden, um vor der eigentlichen Erstellung der Datenbank relevante Informationen zu sammeln:

  • Führen Sie strukturierte Interviews mit den Personen, die das System künftig nutzen werden.
  • Analysieren Sie bestehende Geschäftsdokumente wie Rechnungen, Stundenzettel oder Fragebögen.
  • Sichten Sie alle bereits vorhandenen Datensysteme (einschließlich physischer Akten und digitaler Dateien).

Beginnen Sie damit, sämtliche bestehenden Daten zusammenzutragen, die in die Datenbank einfließen sollen. Erstellen Sie im Anschluss eine Liste der zu speichernden Datentypen sowie der Entitäten – also Personen, Objekte, Standorte und Ereignisse –, die durch jene Daten beschrieben werden, wie im Folgenden dargestellt:

Kund:innen

  • Name
  • Adresse
  • Ort, Bundesland, Postleitzahl
  • E-Mail-Adresse

Produkte

  • Name
  • Preis
  • Lagerbestand
  • Bestellte Menge

Bestellungen

  • Bestell-ID
  • Vertriebsmitarbeitende
  • Datum
  • Produkt(e)
  • Menge
  • Preis
  • Gesamtsumme

Diese Informationen bilden später das Fundament für das Data Dictionary, welches die Tabellen und Felder innerhalb der Datenbank detailliert umreißt. Achten Sie unbedingt darauf, die Informationen in die kleinstmöglichen, sinnvollen Einheiten zu zerlegen. Es empfiehlt sich beispielsweise, die Straße vom Land zu trennen, um Personen später problemlos nach ihrem Wohnsitzland filtern zu können. Vermeiden Sie es zudem konsequent, denselben Datenpunkt in mehr als einer Tabelle zu hinterlegen, da dies zu unnötiger Komplexität führt.

Sobald Klarheit darüber herrscht, welche Datenarten die Datenbank umfassen soll, woher diese stammen und wie sie genutzt werden, können Sie mit der konkreten Planung der eigentlichen Datenbank beginnen.

Datenbankstruktur: Die grundlegenden Bausteine einer Datenbank

Der nächste logische Schritt besteht darin, eine visuelle Darstellung Ihrer Datenbank auszuarbeiten. Um dies erfolgreich umzusetzen, müssen Sie präzise verstehen, wie relationale Datenbanken strukturiert sind.

Innerhalb einer Datenbank werden zusammengehörige Daten in Tabellen gruppiert, von denen jede – ähnlich wie eine Tabellenkalkulation – aus Zeilen (auch Tupel genannt) und Spalten besteht.

Um Ihre gesammelten Datenlisten in Tabellen zu überführen, erstellen Sie zunächst für jeden Entitätstyp (wie Produkte, Verkäufe, Kund:innen und Bestellungen) eine eigene Tabelle. Hier ist ein anschauliches Beispiel:


Jede Zeile einer Tabelle wird als Datensatz bezeichnet. Datensätze enthalten spezifische Informationen über ein bestimmtes Objekt oder eine Person, wie etwa zu einem konkreten Kunden. Im Gegensatz dazu umfassen Spalten (auch als Felder oder Attribute bekannt) jeweils eine einzige Informationsart, die in jedem Datensatz auftaucht – wie beispielsweise die Postleitzahlen aller in der Tabelle geführten Kund:innen.

VornameNachnameAlterPostleitzahl
RogerWilliams4334760
JerricaJorgensen3297453
SamanthaHopkins5664829

Um eine durchgängige Datenkonsistenz von einem Datensatz zum nächsten zu gewährleisten, weisen Sie jeder Spalte den passenden Datentyp zu. Zu den am häufigsten verwendeten Datentypen gehören:

  • CHAR – Text mit einer fest definierten Länge
  • VARCHAR – Text mit variabler Länge
  • TEXT – Für sehr große Textmengen
  • INT – Positive oder negative ganze Zahlen
  • FLOAT, DOUBLE – Zur Speicherung von Gleitkommazahlen
  • BLOB – Für Binärdaten

Einige Datenbankmanagementsysteme bieten darüber hinaus den Datentyp „Autonummer“ an, welcher in jeder Zeile automatisch eine unverkennbare, fortlaufende Nummer generiert.

Für die Erstellung einer visuellen Übersicht der Datenbank, dem sogenannten Entity-Relationship-Diagramm, bilden Sie nicht die realen Tabellen ab. Stattdessen wird jede Tabelle als Kasten im Diagramm dargestellt. Der Titel des Kastens benennt das Thema der Tabellendaten, während die zugehörigen Attribute darunter aufgelistet werden:

 

Student.svg

Abschließend müssen Sie festlegen, welches Attribut oder welche Kombination von Attributen als Primärschlüssel für die jeweilige Tabelle dienen soll. Ein Primärschlüssel (PK) fungiert als eindeutiger Identifikator für eine bestimmte Entität, sodass Sie einen exakten Datensatz selbst dann fehlerfrei bestimmen können, wenn Ihnen nur dieser eine Wert vorliegt.

Als Primärschlüssel ausgewählte Attribute müssen zwingend eindeutig sowie unveränderlich sein und in jedem Datensatz existieren (sie dürfen niemals NULL oder leer sein). Aus diesem Grund eignen sich Bestellnummern oder Benutzernamen hervorragend als Primärschlüssel, während Telefonnummern oder Straßenbezeichnungen ungeeignet sind. Sie können zudem mehrere Felder kombiniert als Primärschlüssel definieren (dies wird als zusammengesetzter Schlüssel bezeichnet).

Sobald die reale Datenbank implementiert wird, übertragen Sie sowohl die logische als auch die physische Datenstruktur in die Datendefinitionssprache Ihres gewählten Datenbankmanagementsystems. Zu diesem Zeitpunkt sollten Sie auch eine fundierte Schätzung der künftigen Datenbankgröße vornehmen, um sicherzustellen, dass das System das erforderliche Leistungsniveau und den notwendigen Speicherplatz bietet.

Beziehungen zwischen Entitäten definieren

Da Ihre Datenstrukturen nun in Tabellenform vorliegen, können Sie mit der präzisen Analyse der Beziehungen zwischen den einzelnen Tabellen beginnen. Die Kardinalität beschreibt dabei die quantitative Anzahl der Elemente, die zwischen zwei miteinander verknüpften Tabellen interagieren. Das korrekte Identifizieren der Kardinalität stellt sicher, dass Sie Ihre Daten auf die effizienteste Art und Weise auf die Tabellen aufgeteilt haben.

Jede Entität kann potenziell mit jeder anderen in Beziehung stehen, wobei sich diese Verbindungen typischerweise in drei Kategorien einteilen lassen:

Eins-zu-eins-Beziehungen

Wenn für jede Instanz der Entität A exakt eine Instanz der Entität B existiert, spricht man von einer Eins-zu-eins-Beziehung (oft als 1:1 geschrieben). In einem ER-Diagramm lässt sich diese Beziehungsart durch eine einfache Linie visualisieren, die an beiden Enden mit einem Querstrich versehen ist:

 

Un Representative1.svg

Sofern keine gewichtigen Gründe dagegen sprechen, deutet eine 1:1-Beziehung meist darauf hin, dass es sinnvoller wäre, die Daten der beiden separaten Tabellen in einer einzigen Tabelle zusammenzufassen.

Es gibt jedoch spezifische Szenarien, in denen Tabellen mit einer 1:1-Beziehung absolut vorteilhaft sind. Falls Sie ein Feld mit optionalen Daten führen – wie etwa eine ausführliche „Beschreibung“, die bei vielen Datensätzen leer bleibt –, können Sie all diese Beschreibungen in eine eigene Tabelle auslagern. Dadurch eliminieren Sie ungenutzten Speicherplatz und steigern die Gesamtperformance der Datenbank.

Um die korrekte Zuordnung der Daten zu garantieren, müssen Sie in diesem Fall in beiden Tabellen mindestens eine identische Spalte einfügen, worafür sich primär der Primärschlüssel anbietet.

Eins-zu-viele-Beziehungen

Diese Verknüpfungen treten auf, wenn ein einzelner Datensatz in einer Tabelle mit mehreren Einträgen in einer anderen Tabelle assoziiert ist. Beispielsweise kann ein einzelner Kunde viele verschiedene Bestellungen aufgeben oder eine Person im der Bibliothek mehrere Bücher gleichzeitig entliehen haben. Eins-zu-viele-Beziehungen (1:N) werden in Diagrammen über die sogenannte „Krähenfuß-Notation“ dargestellt, wie dieses Beispiel verdeutlicht:

 

Presidential Candidate.svg

Um eine 1:N-Beziehung beim Einrichten einer Datenbank praktisch umzusetzen, fügen Sie einfach den Primärschlüssel der „Eins“-Seite als Attribut in die Tabelle der „Viele“-Seite ein. Wird ein Primärschlüssel auf diese Weise in einer anderen Tabelle aufgeführt, bezeichnet man ihn als Fremdschlüssel. Die Tabelle auf der „1“-Seite der Beziehung fungiert hierbei als übergeordnete Tabelle (Parent Table) für die untergeordnete Tabelle (Child Table) auf der gegenüberliegenden Seite.

Viele-zu-viele-Beziehungen

Können mehrere Entitäten einer Tabelle mit mehreren Entitäten einer anderen Tabelle verknüpft sein, liegt eine Viele-zu-viele-Beziehung (M:N) vor. Ein klassisches Beispiel hierfür ist das Verhältnis zwischen Studierenden und Kursen, da eine studierende Person viele Kurse belegen kann und ein Kurs gleichzeitig viele Studierende umfasst.

In einem ER-Diagramm werden diese komplexen Beziehungen mit folgenden Linien dargestellt:

 

Course.svg

Unglücklicherweise ist es technisch nicht direkt möglich, diese Beziehungsart unverändert in einer relationalen Datenbank abzubilden. Stattdessen müssen Sie diese zwingend in zwei separate Eins-zu-viele-Beziehungen aufbrechen.

Erstellen Sie dazu eine neue Verknüpfungsentität zwischen den beiden ursprünglichen Tabellen. Existiert die M:N-Beziehung etwa zwischen Verkäufen und Produkten, könnten Sie diese neue Entität „verkaufte_produkte“ nennen, da sie den genauen Inhalt jedes Verkaufs abbildet. Sowohl die Verkaufs- als auch die Produkttabelle weisen dann jeweils eine 1:N-Beziehung zur Tabelle „verkaufte_produkte“ auf. Eine solche vermittelnde Entität wird je nach Modell als Kopplungstabelle, assoziative Entität oder Zwischentabelle bezeichnet.

Jeder Datensatz in dieser Zwischentabelle führt zwei Entitäten der angrenzenden Tabellen zusammen und kann bei Bedarf zusätzliche Zusatzinformationen enthalten. Eine Zwischentabelle zwischen Studierenden und Kursen könnte beispielsweise folgendes Aussehen haben:

 

Enrollments.svg

Optional oder obligatorisch?

Ein weiterer wichtiger Aspekt bei der Analyse von Beziehungen ist die Frage, welche Seite der Verbindung zwingend existieren muss, damit die andere existieren kann. Die optionale, also nicht obligatorische Seite wird im Diagramm mit einem kleinen Kreis auf der Linie markiert, wo sich sonst ein Querstrich befindet. So muss beispielsweise ein Land zwingend existieren, damit es eine Vertretung in den Vereinten Nationen stellen kann, wohingegen der umgekehrte Fall nicht zwingend gegeben ist:

 

Un Representative 1.a.svg

Ebenso können zwei Entitäten wechselseitig voneinander abhängig sein, sodass die eine ohne die andere überhaupt nicht existieren könnte.

Rekursive Beziehungen

In bestimmten Fällen verweist eine Tabelle auf sich selbst zurück. Wenn eine Tabelle mit Mitarbeitenden beispielsweise ein Attribut „Vorgesetzter“ enthält, welches sich wiederum auf eine andere Person in exakt derselben Tabelle bezieht, spricht man von einer rekursiven Beziehung.

Redundante Beziehungen

Eine redundante Beziehung liegt vor, wenn eine Verknüpfung mehr als einmal im System ausgedrückt wird. In der Regel können Sie eine dieser Beziehungen entfernen, ohne dass dabei relevante Informationen verloren gehen. Besitzt beispielsweise die Entität „Studierende“ eine direkte Beziehung zur Entität „Lehrkräfte“, ist aber gleichzeitig indirekt über die Entität „Kurse“ mit den Lehrkräften verknüpft, sollten Sie die direkte Verbindung kappen. Es ist ratsam, jene direkte Beziehung zu löschen, da die Zuordnung von Studierenden zu Lehrkräften ausschließlich über die belegten Kurse erfolgt.

Datenbank-Normalisierung

Sobald Ihnen ein vorläufiger Entwurf Ihrer Datenbank vorliegt, können Sie Normalisierungsregeln anwenden, um sicherzustellen, dass die Tabellen absolut korrekt strukturiert sind. Betrachten Sie diese Regeln einfach als die etablierten Industriestandards.

Gleichwohl eignen sich keineswegs alle Datenbanken uneingeschränkt für eine vollständige Normalisierung. Generell sollten OLTP-Datenbanken (Online Transaction Processing), bei denen der Fokus der Nutzenden auf dem Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen liegt, konsequent normalisiert werden.

OLAP-Datenbanken (Online Analytical Processing), die primär für Analysen und das Berichtswesen optimiert sind, fahren hingegen oft mit einem gewissen Grad an Denormalisierung besser, da hier die reine Rechengeschwindigkeit im Vordergrund steht. Hierzu zählen beispielsweise Anwendungen zur Entscheidungsunterstützung, bei denen Daten extrem schnell analysiert, jedoch nicht modifiziert werden müssen.

Jede Normalform beziehungsweise Normalisierungsstufe schließt die Bedingungen der jeweils untergeordneten Stufen vollständig ein.

Erste Normalform

Die erste Normalform (abgekürzt als 1NF) schreibt zwingend vor, dass jede einzelne Zelle einer Tabelle nur einen einzigen Wert und niemals eine Liste von Werten enthalten darf. Eine Tabelle wie die folgende verstößt somit gegen diese Regel:

ProduktIDFarbePreis
1braun, gelb$15
2rot, grün$13
3blau, orange$11

Man könnte nun versucht sein, diese Regel zu umgehen, indem man die Daten einfach auf zusätzliche Spalten aufteilt, doch auch dies ist unzulässig: Eine Tabelle mit Gruppen wiederkehrender oder eng miteinander verwandter Attribute erfüllt die Kriterien der ersten Normalform nicht. Die unten stehende Tabelle verletzt diese Vorgabe beispielsweise deutlich:

 

Products.svg

Spalten Sie die Daten stattdessen so lange auf mehrere Tabellen oder Datensätze auf, bis jede Zelle nur noch einen einzigen Wert enthält und keine überflüssigen Spalten mehr existieren. Sobald dieser Zustand erreicht ist, werden die Daten als atomar bezeichnet – sie sind auf die kleinstmögliche, sinnvolle Einheit reduziert. Für das obige Beispiel könnten Sie eine zusätzliche Tabelle namens „Verkaufsdetails“ erstellen, die spezifische Produkte mit Verkäufen verknüpft. „Verkäufe“ stünde dann in einer 1:N-Beziehung zu den „Verkaufsdetails“.

Zweite Normalform

Die zweite Normalform (2NF) setzt voraus, dass jedes Nicht-Schlüssel-Attribut voll funktionell vom gesamten Primärschlüssel abhängig sein muss. Das bedeutet konkret, dass jedes Attribut direkt vom Primärschlüssel abhängen muss und nicht indirekt über ein anderes Attribut transportiert werden darf.

Hängt beispielsweise ein Attribut „Alter“ vom Attribut „Geburtsdatum“ ab, welches wiederum vom „StudierendenID“ abhängt, liegt eine partielle funktionelle Abhängigkeit vor. Eine solche Tabelle würde die Kriterien der zweiten Normalform folglich nicht erfüllen.

Darüber hinaus verletzt eine Tabelle mit einem aus mehreren Feldern zusammengesetzten Primärschlüssel die zweite Normalform, sofern ein oder mehrere der übrigen Felder nicht von sämtlichen Teilen des Schlüssels abhängig sind.

Demnach würde eine Tabelle mit den folgenden Feldern der zweiten Normalform widersprechen, da das Attribut „Produktname“ zwar von der Produkt-ID, nicht aber von der Bestellnummer abhängt:

  • Bestellnummer (Primärschlüssel)

  • Produkt-ID (Primärschlüssel)

  • Produktname

Dritte Normalform

Die dritte Normalform (3NF) erweitert diese Anforderungen um die Bedingung, dass jedes Nicht-Schlüssel-Kolumnenelement von jedem anderen Kolumnenelement vollkommen unabhängig sein muss. Führt das Ändern eines Wertes in einer Nicht-Schlüssel-Spalte unweigerlich dazu, dass sich ein Wert in einer anderen Spalte ändert, erfüllt jene Tabelle die dritte Normalform nicht.

Dies unterbindet effektiv das Speichern jeglicher abgeleiteter Daten in der Tabelle, wie es bei der unten aufgeführten Spalte „Steuer“ der Fall ist, da diese direkt vom Gesamtwert der Bestellung abhängt:

BestellungPreisSteuer
14325$40.99$2.05
14326$13.73$.69
14327$24.15$1.21

Es wurden zwar noch weitere Normalformen vorgeschlagen – wie die Boyce-Codd-Normalform sowie die vierte bis sechste Normalform und die Domänen-Schlüssel-Normalform –, in der alltäglichen Praxis sind jedoch die ersten drei Formen am weitesten verbreitet.

Obwohl diese Formen allgemein die besten Praktiken definieren, hängt das exakte Maß der Normalisierung immer vom spezifischen Kontext und Einsatzzweck der jeweiligen Datenbank ab.

Multidimensionale Daten

Bestimmte Anwendende müssen auf mehrere Dimensionen eines einzelnen Datentyps zugreifen, was insbesondere bei OLAP-Datenbanken der Fall ist. Sie möchten beispielsweise die Umsätze aufgeschlüsselt nach Kund:innen, Bundesländern und Monaten einsehen. In einem solchen Szenario empfiehlt es sich, eine zentrale Faktentabelle anzulegen, auf welche die übrigen Tabellen für Kund:innen, Bundesländer und Monate verweisen können:

 

Sales.svg

Regeln zur Datenintegrität

Sie sollten Ihre Datenbank zudem so konfigurieren, dass sie sämtliche Daten auf Basis definierter Regeln validiert. Viele moderne Datenbankmanagementsysteme, wie etwa Microsoft Access, erzwingen einen Teil dieser Integritätsbedingungen vollautomatisch.

Die Regel zur Entitätsintegrität besagt unmissverständlich, dass ein Primärschlüssel niemals den Wert NULL annehmen darf. Setzt sich der Schlüssel aus mehreren Spalten zusammen, darf folglich keine einzige davon NULL sein, da andernfalls eine eindeutige Identifizierung des Datensatzes fehlschlägt.

Die Regel zur referenziellen Integrität verlangt, dass jeder in einer Tabelle aufgeführte Fremdschlüssel exakt einem existierenden Primärschlüssel in der referenzierten Tabelle entsprechen muss. Ändert sich der Primärschlüssel oder wird dieser gelöscht, müssen jene Modifikationen zwingend an allen Stellen nachgezogen werden, an denen der Schlüssel innerhalb der Datenbank referenziert wird.

Integritätsregeln für die Geschäftslogik stellen sicher, dass alle Daten innerhalb logisch definierter Parameter liegen. So muss ein vereinbarter Termin beispielsweise zwingend in die regulären Geschäftszeiten fallen.

Indizes und Ansichten hinzufügen

Ein Index stellt im Grunde eine sortierte Kopie einer oder mehrerer Spalten dar, deren Werte entweder in auf- oder absteigender Reihenfolge vorliegen. Das Hinzufügen eines Index ermöglicht es Nutzenden, Datensätze erheblich schneller zu finden. Anstatt bei jeder Abfrage eine vollständige Neusortierung durchzuführen, greift das System direkt in der durch den Index vorgegebenen Reihenfolge auf die Datensätze zu.

Obwohl Indizes das Abrufen von Daten spürbar beschleunigen, können sie das Einfügen, Aktualisieren und Löschen verlangsamen, da der Index bei jeder Änderung eines Datensatzes neu aufgebaut werden muss.

Eine Ansicht (View) ist vereinfacht gesagt eine gespeicherte Abfrage auf den Datenbeständen. Ansichten eignen sich hervorragend dazu, Daten aus mehreren Tabellen zusammenzuführen oder lediglich einen spezifischen Teilbereich einer Tabelle abzubilden.

Erweiterte Eigenschaften

Sobald das grundlegende Layout steht, können Sie die Datenbank durch erweiterte Eigenschaften verfeinern, wie etwa durch Anleitungstexte, Eingabemasken und Formatierungsregeln, die für ein bestimmtes Schema, eine Ansicht oder eine Spalte gelten. Der große Vorteil liegt darin, dass diese Regeln direkt in der Datenbank hinterlegt sind, wodurch die Datendarstellung über alle zugreifenden Programme hinweg vollkommen konsistent bleibt.

SQL und UML

Die Unified Modeling Language (UML) stellt eine weitere visuelle Methode dar, um komplexe Systeme auszudrücken, die in einer objektorientierten Sprache entwickelt wurden. Einige der in diesem Leitfaden erwähnten Konzepte sind in UML unter anderen Bezeichnungen bekannt. So wird eine Entität in UML beispielsweise als Klasse bezeichnet.

UML wird in der heutigen Praxis nicht mehr so häufig eingesetzt wie in der Vergangenheit. Heutzutage findet sie vorwiegend im akademischen Bereich sowie bei der Kommunikation zwischen Softwaredesigner:innen und deren Kundschaft Verwendung.

Datenbankmanagementsysteme

Viele Ihrer Designentscheidungen hängen stark davon ab, welches konkrete Datenbankmanagementsystem Sie einsetzen. Zu den am weitesten verbreiteten Systemen gehören:

  • Oracle DB

  • MySQL

  • Microsoft SQL Server

  • PostgreSQL

  • IBM DB2

Wählen Sie das für Sie am besten geeignete Datenbankmanagementsystem sorgfältig auf Basis von Faktoren wie Kosten, Betriebssystemen, Funktionsumfang und weiteren individuellen Anforderungen aus.

Schemata im Oracle-Datenbanksystem

Im Oracle-Datenbanksystem hat der Begriff Datenbankschema, welcher auch als „SQL-Schema“ bezeichnet wird, eine abweichende Bedeutung. Hier kann eine einzige Datenbank mehrere Schemata umfassen. Jedes einzelne davon enthält sämtliche Objekte, die von einem ganz bestimmten Datenbanknutzenden erstellt wurden. Jene Objekte können Tabellen, Ansichten, Synonyme und vieles mehr umfassen. Einige Objekte lassen sich jedoch nicht in ein Schema integrieren, wie etwa Nutzende, Kontexte, Rollen und Verzeichnisobjekte.

 

Schemas in Relational Database.svg

Nutzenden kann der Zugriff für die Anmeldung an einzelnen Schemata von Fall zu Fall gewährt werden, und die Inhaberschaft ist problemlos übertragbar. Da jedes Objekt mit einem bestimmten Schema verknüpft ist, das als eine Art Namensraum fungiert, ist es ratsam, Synonyme zu vergeben. Dies erlaubt es anderen Nutzenden, auf ein Objekt zuzugreifen, ohne vorher das zugehörige Schema explizit referenzieren zu müssen.

Diese Schemata spiegeln nicht zwingend die Art und Weise wider, wie die Datendateien physisch auf dem Datenträger gespeichert sind. Stattdessen werden Schemaobjekte logisch innerhalb eines Tablespaces abgelegt. Die datenbankadministrierende Person kann genau festlegen, wie viel Speicherplatz einem bestimmten Objekt innerhalb einer Datendatei zugewiesen wird.

Schließlich müssen Schemata und Tablespaces keineswegs vollkommen deckungsgleich sein: Objekte aus einem einzigen Schema können über mehrere Tablespaces hinweg verteilt sein, während ein Tablespace gleichzeitig Objekte aus verschiedenen Schemata beinhalten kann.

Datenbankinstanz oder Datenbankschema?

Diese beiden Begriffe sind zwar eng miteinander verwoben, bedeuten jedoch keineswegs dasselbe. Ein Datenbankschema ist der theoretische Entwurf einer geplanten Datenbank und enthält selbst noch keinerlei Realdaten.

Eine Datenbank-Instanz hingegen stellt eine exakte Momentaufnahme einer Datenbank zu einem ganz bestimmten Zeitpunkt dar. Folglich verändern sich Datenbank-Instanzen im Laufe der Zeit kontinuierlich, während ein Datenbankschema in der Regel statisch bleibt, da strukturelle Änderungen an einer bereits produktiven Datenbank mit erheblichem Aufwand verbunden sind.

Datenbankschemata und Datenbank-Instanzen beeinflussen sich gegenseitig über das Datenbankmanagementsystem (DBMS). Das DBMS stellt dabei permanent sicher, dass jede einzelne Datenbank-Instanz sämtliche im Datenbankschema definierten Einschränkungen strikt einhält.

Anforderungen an die Integration von Schemata

Es kann sich als äußerst nützlich erweisen, mehrere Datenquellen in einem einzigen Schema zusammenzuführen. Um einen reibungslosen Übergang zu gewährleisten, müssen die folgenden Anforderungen zwingend erfüllt sein:

Erhaltung von Überschneidungen

Jedes sich überschneidende Element in den zu integrierenden Schemata muss zwingend in einer Tabelle des resultierenden Datenbankschemas abgebildet sein.

Erweiterte Erhaltung von Überschneidungen

Elemente, die lediglich in einer einzigen Quelle auftauchen, jedoch mit sich überschneidenden Elementen assoziiert sind, müssen zwingend in das resultierende Datenbankschema übernommen werden.

Normalisierung

Unabhängige Beziehungen und Entitäten dürfen keinesfalls in derselben Tabelle des Datenbankschemas zusammengefasst werden.

Minimalität

Im Idealfall geht kein einziges Element aus den ursprünglichen Datenquellen während des Integrationsprozesses verloren.

Arten von Datenbankschemata

Im Bereich des Datenbank-Designs haben sich im Laufe der Zeit bewährte Strukturmuster etabliert.

Das weithin genutzte Star-Schema (Sternschema) stellt hierbei die einfachste Struktur dar. Bei diesem Muster werden eine oder mehrere Faktentabellen mit einer beliebigen Anzahl von Dimensionstabellen verknüpft. Es eignet sich hervorragend für das effiziente Handling einfacher Abfragen.

Das eng verwandte Snowflake-Schema (Schneeflockenschema) wird ebenfalls zur Darstellung multidimensionaler Datenbanken herangezogen. Bei diesem Muster werden die Dimensionen jedoch tiefergehend in zahlreiche separate Tabellen normalisiert, wodurch die namensgebende, weit verzweigte Struktur einer Schneeflocke entsteht.

Alles, was Sie zur Erstellung eines Diagramms benötigen

Erstellen Sie mit Lucidchart kostenlos ansprechende, professionelle Diagramme. Ganz gleich, welches Projekt Ihnen vorschwebt – wir bieten Ihnen die passenden Werkzeuge für die Umsetzung. Registrieren Sie sich noch heute und legen Sie direkt los.

Kostenlos registrieren

Vorlagen für das Datenbankdesign

Vorlage für ein Datenbank-ER-Diagramm (Krähenfuß)

Preise:

Kostenlos

Vorlage für ein Datenbank-ER-Diagramm (Krähenfuß), Preise: Kostenlos

Vorlage für ein ER-Diagramm

Preise:

Kostenpflichtiges Konto

Vorlage für ein ER-Diagramm, Preise: Kostenpflichtiges Konto

Nützliche Ressourcen

Tool für das Datenbankdesign

Importieren Sie Ihre Datenbankstruktur direkt aus Ihrem Datenbankmanagementsystem nach Lucidchart, um Ihre Datenbank optimal als Entity-Relationship-Diagramm (ERD) zu visualisieren.

Best Practices für das Datenbankdesign

Das fachgerechte Entwerfen einer Datenbank erfordert eine präzise Analyse Ihrer Daten sowie eine strukturierte Planung der gewünschten Architektur. Ihnen stehen zahlreiche verschiedene Datenbanktypen, Modelle und Anpassungsoptionen zur Verfügung, um Ihre Ziele erfolgreich zu realisieren.

Datenbankmodelle

Ein Datenbankmodell bildet die logische Struktur einer Datenbank ab, einschließlich der Beziehungen und Einschränkungen, die festlegen, wie Daten gespeichert und abgerufen werden können.

Häufig gestellte Fragen (FAQ) zum Designen einer Datenbank in Lucidchart

Verwenden Sie die Exportfunktion in der Formbibliothek für ERD, wählen Sie das von Ihnen verwendete DBMS aus, kopieren Sie die neu generierten Befehle und fügen Sie sie in das gewünschte DBMS ein.

Es gibt vielfältige Datenbankmodelle; welches das geeignetste für Sie ist, hängt davon ab, welche Regeln und Konzepte Sie präsentieren möchten. Lesen Sie unseren detaillierten Leitfaden zu häufig verwendeten Datenbankmodellen, wie dem relationalen Modell, Netzwerkmodell, objektorientierten Datenbankmodell und vielen mehr, um das für Sie beste zu finden.

Verwenden Sie die ERD-Importfunktion aus der ERD-Formenbibliothek. Wenn Sie nicht aus Salesforce importieren, wählen Sie über die reguläre Importfunktion einfach das gewünschte DBMS aus, aus dem der Import erfolgen soll.

Ein Datenbankmodell bildet die logische Struktur einer Datenbank ab, was auch die Beziehungen sowie Einschränkungen einschließt, die festlegen, wie Daten gespeichert und abgerufen werden können. Die Gestaltung einzelner Datenbankmodelle basiert auf den Regeln und Konzepten des jeweils übergeordneten Datenmodells, für das sich die Designverantwortlichen entscheiden. Weiterführende Informationen zu Datenbankmodellen finden Sie in dem unten verlinkten Tutorial.

Ja! Nutzen Sie die ERD-Formenbibliothek, um Ihre Datenbank direkt auf Ihrer Arbeitsfläche zu erstellen, oder verwenden Sie die Salesforce-Importfunktion, mit der sich Ihr Schema importieren lässt, sodass Sie beim manuellen Eingeben Ihrer Informationen wertvolle Zeit sparen.

Lucidchart ermöglicht Ihnen den Import Ihres Schemas aus verschiedenen DBMS, darunter MySQL, Oracle, PostgreSQL und SQL Server. Nutzen Sie unsere Importfunktion, um dasjenige DBMS auszuwählen, aus dem Sie importieren möchten.

Alles, was Sie zur Erstellung eines Diagramms benötigen

Neben unserem Online-Diagramm-Editor bietet Ihnen Lucidchart Support- sowie Schulungsressourcen, die Sie optimal dabei unterstützen, sich in jede gewünschte Diagrammart einzuarbeiten.

Schulungszentrum ansehen