Grundlagen der Datenmodellierung

In dieser interaktiven Lerneinheit eignest du dir die Grundlagen der Datenmodellierung an und lernst, wie du Informationen strukturiert in Datenbanken abbildest. Du übst das Erstellen von Entity-Relationship-Diagrammen (ERD) und verstehst die Zusammenhänge zwischen Entitäten, Attributen und Beziehungen. Diese Fähigkeiten wendest du direkt an praktischen Beispielen an und schaffst damit die Basis für die professionelle Entwicklung von Datenbanken.

Einführung

Du entwickelst gerade eine Datenbank für ein Unternehmen. Alles beginnt mit ein paar Tabellen – Kunden, Produkte, Bestellungen. Doch schon bald wird es unübersichtlich:

Ohne ein strukturiertes Modell der Daten wird deine Datenbank schnell fehleranfällig und schwer wartbar.

Bevor du also Tabellen erstellst, brauchst du eine klare Vorstellung davon, welche Objekte in deinem System existieren, wie sie miteinander verknüpft sind – und welche Informationen du speichern willst.

Genau dabei hilft dir das Entity-Relationship-Modell (ER-Modell) – das zentrale Werkzeug der Datenmodellierung.

Lernziele

Nach dieser Lerneinheit kannst du:

  • erklären, was Datenmodellierung ist und welche Bedeutung sie für die Entwicklung effizienter, wartbarer Datenbanksysteme hat. (Verstehen)

  • die zentralen Elemente des Entity-Relationship-Modells benennen und grafisch darstellen.

  • verschiedene Beziehungstypen, rekursive Beziehungen, Aggregation sowie Generalisierung und Spezialisierung analysieren und korrekt modellieren.

Überleitung

Bevor wir in das ER-Modell einsteigen, klären wir zunächst den Begriff selbst: Was bedeutet eigentlich Datenmodellierung – und warum ist sie so entscheidend für jede relationale Datenbank?

Was ist Datenmodellierung?

Die Datenmodellierung ist der Prozess der Erstellung eines strukturierten Modells zur Speicherung, Verwaltung und Nutzung von Daten in einer Datenbank. Sie dient dazu, die Anforderungen an die Datenbank zu analysieren und eine effiziente Struktur zu entwerfen, die den Zugriff auf die Daten erleichtert und deren Verwaltung optimiert.

Bedeutung der Datenmodellierung

Die Datenmodellierung ist ein zentraler Bestandteil der Datenbankentwicklung und hat folgende Vorteile:

  • Strukturierung von Daten: Ermöglicht eine logische und effiziente Organisation der Daten.
  • Datenintegrität: Stellt die Konsistenz und Korrektheit der Daten sicher.
  • Effiziente Abfragen: Erlaubt schnelle und präzise Datenabfragen.
  • Kommunikation: Bietet eine klare Darstellung der Datenanforderungen für Entwickler und Stakeholder.
  • Wartbarkeit: Erleichtert die Pflege und Erweiterung der Datenbank im Laufe der Zeit.

Der Datenbank-Lebenszyklus

Der Entwurf und die Implementierung einer Datenbank folgen typischerweise einem 3-Ebenen-Modell und durchlaufen mehrere Phasen:

  1. Anforderungsanalyse: Identifikation der Datenanforderungen und der verschiedenen Benutzergruppen.
  2. Konzeptioneller Entwurf: Erstellung eines konzeptionellen Schemas, oft mithilfe des Entity-Relationship-Modells (ERM).
  3. Logischer Entwurf: Transformation des konzeptionellen Schemas in ein logisches Datenmodell, wie das relationale Modell.
  4. Physischer Entwurf und Implementierung: Definition des internen Schemas und Umsetzung der Datenbank im Datenbankmanagementsystem (DBMS).
  5. Testen und Validierung: Überprüfung der Datenbank auf Korrektheit, Effizienz und Erfüllung der Anforderungen.
  6. Wartung: Laufende Pflege und Anpassung der Datenbank an neue Anforderungen oder Änderungen.

Zusammenfassung

Die Datenmodellierung ist essenziell für die Entwicklung effizienter und wartbarer Datenbanken. Sie stellt sicher, dass Daten korrekt strukturiert sind, die Integrität gewahrt bleibt und die Datenbank den Bedürfnissen der Benutzer entspricht.

Das Entity-Relationship-Modell (ER) nach Chen-Notation

Das Entity-Relationship-Modell (ER) ist ein grafisches Werkzeug zur Darstellung der strukturellen Beziehungen zwischen Daten in einer Datenbank. Die Chen-Notation, benannt nach Peter Chen, ist eine spezifische Darstellungsweise des ER-Modells und weit verbreitet in der Datenbankplanung.

Entitäten (Entities)

Definition: Eine Entität ist ein eindeutig identifizierbares Objekt oder Konzept aus der realen Welt, wie beispielsweise ein Kunde, ein Produkt oder eine Bestellung.

  • Grafische Darstellung: Rechtecke mit dem Namen der Entität.
Entitäten (Bildrechte: Ausbildung in der IT)

Attribute

Definition: Attribute sind Eigenschaften oder Merkmale, die eine Entität beschreiben, wie z. B. Name, Adresse oder Preis.

Grafische Darstellung: Ellipsen, die mit der zugehörigen Entität verbunden sind.

Typen von Attributen:

  • Einfache Attribute: Besitzen einen einzelnen Wert (z. B. Preis).
  • Zusammengesetzte Attribute: Bestehen aus mehreren Unterattributen (z. B. Adresse mit Straße, Stadt, Postleitzahl).
  • Schlüsselattribute: Dienen zur eindeutigen Identifizierung einer Entität (z. B. KundenID).

Primärschlüssel (Primary Key)

Ein Primärschlüssel ist ein Attribut oder eine Kombination von Attributen, die eine Entität eindeutig identifizieren.

  • Eigenschaften:
    • Eindeutig: Jeder Wert kommt nur einmal vor.
    • Nicht-NULL: Darf keinen NULL-Wert enthalten.
    • Minimal: Enthält nur die notwendigen Attribute.
  • Zusammengesetzte Primärschlüssel: Bestehen aus mehreren Attributen, wenn ein einzelnes Attribut nicht ausreicht.

Beziehungen (Relationships)

Definition: Beziehungen beschreiben die Verknüpfung zwischen zwei oder mehr Entitäten und wie diese miteinander interagieren.

  • Grafische Darstellung: Rauten, die mit den beteiligten Entitäten verbunden sind.
  • Beziehungstyp: Gibt die Art der Beziehung an und kann zusätzliche Attribute enthalten.

Beispiel: Kurs-Anmeldung für Schüler:

Stellen wir uns vor, wir modellieren eine Schulverwaltung, in der Schüler sich für Kurse anmelden können.

  • Beziehungstyp ohne Attribut:
    • Schüler melden sich für Kurse an. Hier brauchen wir nur die einfache Beziehung „meldet sich an“ zwischen Schüler und Kurs, um festzuhalten, wer in welchem Kurs ist.
Beispiel: Kursanmeldung ohne Attribut (Bildrechte: Ausbildung in der IT)
  • Beziehungstyp mit Attributen:
    • Um detailliertere Informationen zu erfassen, können wir Attribute hinzufügen, die angeben, in welchem Jahr sich der Schüler für den Kurs anmeldet.
Beispiel: Kursanmeldung mit Attributen (Bildrechte: Ausbildung in der IT)

Kardinalitäten

Definition: Kardinalitäten geben an, wie viele Entitäten einer Entitätsmenge mit wie vielen Entitäten einer anderen Menge in Beziehung stehen können.

1:1 (Eins-zu-Eins): Jede Entität der ersten Menge ist mit genau einer Entität der zweiten Menge verbunden.

  • Beispiel: 1:1-Beziehung: Ein Kunde besitzt genau eine Kundenkarte, und jede Kundenkarte gehört zu genau einem Kunden.
1:1-Beziehung (Bildrechte: Ausbildung in der IT)

1:n (Eins-zu-Viele): Eine Entität der ersten Menge kann mit vielen Entitäten der zweiten Menge verbunden sein, aber jede Entität der zweiten Menge nur mit einer der ersten.

  • Beispiel: 1:n-Beziehung: Ein Kunde kann mehrere Bestellungen aufgeben, aber jede Bestellung gehört zu genau einem Kunden.
1:n-Beziehung (Bildrechte: Ausbildung in der IT)

n:m (Viele-zu-Viele): Entitäten beider Mengen können mit vielen Entitäten der jeweils anderen Menge verbunden sein.

  • Beispiel: n:m-Beziehung: Ein Mitarbeiter kann an mehreren Projekten arbeiten, und ein Projekt wird von mehreren Mitarbeitern bearbeitet.
n:m-Beziehung (Bildrechte: Ausbildung in der IT)
⏳ Lädt Dataview-Inhalt...

Was sind rekursive Beziehungen

Definition: Eine rekursive Beziehung tritt auf, wenn eine Entität eine Beziehung zu sich selbst hat. Dies modelliert Situationen, in denen Entitäten innerhalb derselben Menge miteinander in Beziehung stehen.

Beispiel: Dateisystem

In einem Dateisystem kann ein Verzeichnis mehrere andere Verzeichnisse enthalten. Diese anderen Verzeichnisse gelten als Unterverzeichnisse des übergeordneten Verzeichnisses. Gleichzeitig kann jedes Unterverzeichnis selbst auch ein übergeordnetes Verzeichnis haben, wodurch eine rekursive Struktur entsteht.

Kardinalität 1:n:

  • n bedeutet, dass ein Verzeichnis mehrere Unterverzeichnisse enthalten kann.
  • 1 bedeutet, dass jedes Unterverzeichnis nur zu einem übergeordneten Verzeichnis gehört.
Beispiel: Dateisystem (Bildrechte: Ausbildung in der IT)

In diesem Diagramm zeigt die rekursive Beziehung „enthält“ an, dass ein Verzeichnis weitere Verzeichnisse enthalten kann. Die 1:n-Kardinalität beschreibt, dass ein einzelnes Verzeichnis mehrere Unterverzeichnisse haben kann, aber jedes Unterverzeichnis nur zu einem übergeordneten Verzeichnis gehört.

Aggregation

Definition: Die Aggregation stellt eine Teil-von-Beziehung (part-of) dar und zeigt, dass eine Entität Teil einer übergeordneten Entität ist.

Beispiel: Fahrzeug

Ein Fahrzeug besteht aus mehreren Komponenten wie Motor, Getriebe und Räder. Diese Komponenten sind notwendige Bestandteile, die das Fahrzeug vollständig machen.

Beispiel: Fahrzeug (Bildrechte: Ausbildung in der IT)

Diese Darstellung zeigt, dass das Fahrzeug aus verschiedenen Komponenten besteht, die miteinander verbunden sind, um das gesamte Objekt zu bilden.

Spezialisierung und Generalisierung (Is-a-Beziehungen)

Diese Beziehungen beschreiben eine Ist-ein-Beziehung zwischen einer Oberklasse und ihren Unterklassen.

  • Generalisierung: Mehrere spezialisierte Entitäten werden zu einer allgemeinen Oberklasse zusammengefasst.
  • Spezialisierung: Eine allgemeine Entität wird in spezifischere Unterklassen unterteilt.

Eigenschaften von Is-a-Beziehungen

  • Disjunkt vs. Nicht-disjunkt:
    • Disjunkt: Entitäten können nur zu einer Unterklasse gehören.
    • Nicht-disjunkt: Entitäten können zu mehreren Unterklassen gehören.
  • Total vs. Partiell:
    • Total: Alle Unterklassen sind vollständig spezifiziert.
    • Partiell: Es gibt zusätzliche Unterklassen, die nicht spezifiziert sind.

Beispiele

Hinweis: Die grafische Darstellung bleibt gleich – entscheidend sind die zugrunde liegende Logik und Semantik der Beziehung (z. B. disjunkt vs. nicht-disjunkt, total vs. partiell), nicht das Aussehen des Diagramms.

Beispiel: Disjunkt und Partiell

Oberklasse: Buch

Unterklassen: Roman, Sachbuch

  • Disjunkt: Ein Buch kann entweder ein Roman oder ein Sachbuch sein, aber niemals beides gleichzeitig.
  • Partiell: Nicht alle Bücher fallen unter Roman oder Sachbuch, da es auch andere Arten von Büchern geben kann, wie z.B. Kochbücher oder Comics, die nicht in diese Kategorien passen.
Disjunkt und partiell (Bildrechte: Ausbildung in der IT)

Diese Darstellung zeigt, dass ein Buch entweder ein Roman oder ein Sachbuch sein kann, aber auch Bücher existieren, die in keine dieser Kategorien fallen.

Beispiel: Disjunkte und Total

Oberklasse: Schulfach

Unterklassen: Mathematik, Deutsch

  • Disjunkt: Ein Schulfach ist entweder Mathematik oder Deutsch, aber nicht beides gleichzeitig.
  • Total: Jedes Fach in dieser Schule muss entweder Mathematik oder Deutsch sein, da das Beispiel nur diese beiden Fächer enthält.
Disjunkt und total (Bildrechte: Ausbildung in der IT)

Diese Darstellung zeigt, dass alle Schulfächer entweder Mathematik oder Deutsch sind, und es keine weiteren Fächer in diesem Modell gibt.

Beispiel: Nicht Disjunkt und Partiell

Oberklasse: Mitarbeiter

Unterklassen: Projektleiter, Entwickler

  • Nicht disjunkt: Ein Mitarbeiter kann sowohl Projektleiter als auch Entwickler sein.
  • Partiell: Es gibt Mitarbeiter, die weder Projektleiter noch Entwickler sind, wie z.B. HR-Mitarbeiter oder Administratoren.
Nicht disjunkt und partiell (Bildrechte: Ausbildung in der IT)

Diese Darstellung zeigt, dass ein Mitarbeiter sowohl Projektleiter als auch Entwickler sein kann. Es gibt aber auch Mitarbeiter, die in keine dieser beiden Kategorien fallen.

Überblick über die Grafische Darstellung (Chen-Notation)

Überblick (Bildrechte: Ausbildung in der IT)
⏳ Lädt Dataview-Inhalt...

Zusammenfassung

In dieser Lerneinheit hast du die Grundlagen der Datenmodellierung kennengelernt – also den Prozess, bei dem reale Informationsstrukturen systematisch in ein formales Modell überführt werden. Du verstehst jetzt, dass Datenmodellierung die Grundlage für den Entwurf funktionaler, konsistenter und wartbarer Datenbanksysteme ist.

Du kennst das Drei-Ebenen-Modell der Datenbankentwicklung:

  • die Anforderungsanalyse als Ausgangspunkt,
  • den konzeptionellen Entwurf mit dem Entity-Relationship-Modell (ERM),
  • den logischen Entwurf auf Basis des relationalen Modells sowie
  • die physische Umsetzung und spätere Wartung.

Im Fokus stand das Entity-Relationship-Modell (ER-Modell) mit der Chen-Notation. Du kannst jetzt:

  • Entitäten als Objekte der realen Welt identifizieren,
  • Attribute als beschreibende Merkmale zuordnen,
  • Primärschlüssel festlegen, die Entitäten eindeutig identifizieren,
  • Beziehungen zwischen Entitäten grafisch darstellen und ihre Kardinalitäten (1:1, 1:n, n:m) korrekt zuweisen.

Darüber hinaus hast du spezielle Beziehungstypen kennengelernt:

  • rekursive Beziehungen (z. B. Verzeichnisse im Dateisystem),
  • Aggregation als Teil-von-Beziehung (z. B. Fahrzeug-Komponenten),
  • sowie Spezialisierung und Generalisierung, mit Varianten wie disjunkt/total oder nicht disjunkt/partiell.

Diese Konzepte ermöglichen dir, auch komplexe Anwendungsdomänen strukturiert zu modellieren – als Grundlage für die spätere Umsetzung in einer relationalen Datenbank.

Umsetzung von n:m-Beziehungen mit Zwischentabellen

Das Problem bei n:m-Beziehungen

Während 1:1- und 1:n-Beziehungen direkt in relationalen Datenbanken abgebildet werden können, gibt es bei n:m-Beziehungen ein Problem:

Relationale Datenbanken können Viele-zu-Viele-Beziehungen nicht direkt speichern.


Die Lösung: Zwischentabelle

Um eine n:m-Beziehung umzusetzen, benötigen wir eine Zwischentabelle (auch: Verbindungstabelle oder Junction Table). Diese löst die n:m-Beziehung in zwei 1:n-Beziehungen auf.


Beispiel: Mitarbeiter und Projekte

Ausgangssituation:

  • Ein Mitarbeiter kann an mehreren Projekten arbeiten
  • Ein Projekt wird von mehreren Mitarbeitern bearbeitet
  • Dies ist eine klassische n:m-Beziehung

Umsetzung mit drei Tabellen:

1. Tabelle: Mitarbeiter

MitarbeiterIDName
1Anna Schmidt
2Max Müller
3Lisa Wagner

2. Tabelle: Projekt

ProjektIDProjektname
101Website-Relaunch
102Marketing-Kampagne

3. Zwischentabelle: Mitarbeiter_Projekt

MitarbeiterIDProjektID
1101
1102
2102
3101

Lesart:

  • Anna (ID 1) arbeitet an Projekt 101 und 102
  • Max (ID 2) arbeitet nur an Projekt 102
  • Lisa (ID 3) arbeitet nur an Projekt 101

Wie die Zwischentabelle funktioniert

Die Zwischentabelle enthält Fremdschlüssel zu beiden ursprünglichen Tabellen:

  • MitarbeiterID verweist auf die Tabelle Mitarbeiter
  • ProjektID verweist auf die Tabelle Projekt

Der Primärschlüssel der Zwischentabelle besteht aus der Kombination beider Fremdschlüssel: (MitarbeiterID, ProjektID)


Zusätzliche Attribute in der Zwischentabelle

Die Zwischentabelle kann weitere Informationen über die Beziehung speichern:

MitarbeiterIDProjektIDRolleStartdatum
1101Lead Developer2024-01-15
1102Berater2024-03-01
2102Projektleiter2024-02-20

Diese Attribute beschreiben die Beziehung selbst - z.B. welche Rolle ein Mitarbeiter in einem spezifischen Projekt hat.