Informatik

Datenbankmodellierung: ER-Modell und Tabellen

Datenbankmodellierung: ER-Modell und Tabellen
Datenbankmodellierung: ER-Modell und Tabellen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Datenbankmodellierung bedeutet: Du übersetzt einen Ausschnitt der Wirklichkeit in eine klare Struktur aus Entitäten, Attributen, Beziehungen und Schlüsseln. Daraus entstehen Tabellen, die Daten möglichst eindeutig, widerspruchsfrei und ohne unnötige Wiederholungen speichern.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Realitätsausschnitt zum Datenmodell

Stell dir vor, eine Schule möchte Beiträge und Kommentare in einem sozialen Netzwerk speichern. Bevor Tabellen angelegt werden, muss geklärt werden:

  • Welche Dinge und Ereignisse sind wichtig?
  • Welche Eigenschaften sollen gespeichert werden?
  • Wie hängen die Dinge zusammen?
  • Welche fachlichen Regeln gelten?

Ein Datenmodell beantwortet diese Fragen in einer vereinfachten, geordneten Form. Es dient als Entwurf für die spätere Datenbank.

Ein sinnvoller Modellierungsprozess verläuft in vier Schritten:

  1. Anforderungen untersuchen: Welche Daten werden benötigt und wofür?
  2. Konzeptuelles Modell entwerfen: Entitäten, Attribute und Beziehungen beschreiben.
  3. Logisches Modell bilden: Tabellen, Primärschlüssel und Fremdschlüssel festlegen.
  4. Physisches Modell planen: Den Entwurf an ein konkretes Datenbankmanagementsystem anpassen.
Merke

Beispieldaten zeigen nur, was bereits vorkommt. Fachliche Regeln können zusätzliche Informationen enthalten. Deshalb muss ein Modell mit Personen abgestimmt werden, die den Anwendungsbereich kennen.

Bei Kontodaten könnte eine Beispieltabelle so wirken, als gehöre jedes Konto genau einem Kunden. Eine Fachperson kann jedoch erklären, dass ein Gemeinschaftskonto mehrere Inhaber haben darf. Dadurch ändert sich das Modell.

Teste dich
Frage 1 von 1LeichtWarum reichen vorhandene Datenzeilen nicht immer für ein vollständiges Datenmodell aus?
Lösung: Weil Regeln und benötigte Informationen in den Daten fehlen können. — Ein Modell entsteht aus Daten und fachlichen Anforderungen. Nicht sichtbare Regeln müssen geklärt werden.
Entitäten, Attribute und Schlüssel bestimmen
Definition

Entität

Eine Entität ist ein einzelnes, eindeutig unterscheidbares Informationsobjekt. Das kann ein Gegenstand, eine Person, eine Rolle oder ein Ereignis sein, zum Beispiel ein bestimmter Benutzer oder eine bestimmte Bestellung.

Gleichartig aufgebaute Entitäten werden zu einem Entitätstyp zusammengefasst. Der Entitätstyp Benutzer beschreibt beispielsweise alle Benutzer. In einer relationalen Datenbank wird daraus meist eine Tabelle; jede einzelne Entität entspricht einer Zeile.

Definition

Attribut

Ein Attribut ist eine Eigenschaft eines Entitätstyps. Zu Benutzer können die Attribute BenutzerID, Name und E-Mail gehören. Ein konkreter Name in einer Tabellenzelle ist ein Attributwert.

Definition

Primärschlüssel

Ein Primärschlüssel ist ein Attribut oder eine minimale Kombination von Attributen, deren Werte jede Tabellenzeile eindeutig identifizieren.

Ein Name ist meist kein verlässlicher Primärschlüssel: Mehrere Personen können gleich heißen und ein Name kann sich ändern. Eine künstlich vergebene BenutzerID eignet sich besser.

Ein Schlüssel kann auch aus mehreren Attributen bestehen. Bei täglichen Kontoständen identifiziert der Tag allein keinen Datensatz. Erst die Kombination aus Konto und Tag ist eindeutig.

Beispiel

Für ein soziales Netzwerk lassen sich zunächst drei Entitätstypen bilden:

EntitätstypWichtige AttributePrimärschlüssel
BenutzerBenutzerID, Name, E-MailBenutzerID
BeitragBeitragID, Inhalt, DatumBeitragID
KommentarKommentarID, Inhalt, DatumKommentarID

Die Inhalte und Datumsangaben beschreiben die Entitäten. Die IDs unterscheiden ihre einzelnen Ausprägungen eindeutig.

Teste dich
Frage 1 von 1MittelWelches Attribut eignet sich am besten als Primärschlüssel für Benutzer?
Lösung: Eine dauerhaft eindeutige BenutzerID — Ein Primärschlüssel muss jede Zeile eindeutig und zuverlässig identifizieren. Eine vergebene ID erfüllt diese Aufgabe besser als veränderliche Sachdaten.
Beziehungen und Kardinalitäten lesen

Eine Beziehung beschreibt einen fachlichen Zusammenhang zwischen Entitäten. Beispielsweise verfasst ein Benutzer einen Beitrag.

Die Kardinalität gibt an, wie viele Entitäten auf beiden Seiten beteiligt sein dürfen oder müssen.

KardinalitätBedeutungBeispiel
1:1Jeder Entität ist auf der Gegenseite höchstens eine Entität zugeordnet. Ob die Zuordnung verpflichtend ist, bestimmt die Optionalität.Mitarbeiter und zugehöriger Gehaltsdatensatz
1:nEine Entität der ersten Seite kann mit mehreren der zweiten Seite verbunden sein; jede Entität der zweiten Seite gehört zu einer der ersten.Benutzer und Beiträge
n:mAuf beiden Seiten sind mehrere Zuordnungen möglich.Konten und Kontoinhaber

Zusätzlich ist die Optionalität wichtig. Sie beantwortet, ob eine Beziehung bestehen muss. Ein Beitrag muss beispielsweise einem Benutzer gehören. Ein neu angelegter Benutzer kann dagegen noch keinen Beitrag verfasst haben.

Beispiel

Im sozialen Netzwerk gelten folgende Regeln:

  • Ein Benutzer kann mehrere Beiträge verfassen.
  • Jeder Beitrag gehört genau einem Benutzer.
  • Ein Beitrag kann mehrere Kommentare erhalten.
  • Jeder Kommentar gehört genau einem Beitrag.
  • Ein Benutzer kann mehrere Kommentare schreiben.
  • Jeder Kommentar stammt genau von einem Benutzer.

Damit entstehen drei 1:n-Beziehungen: von Benutzer zu Beitrag, von Beitrag zu Kommentar und von Benutzer zu Kommentar.

Teste dich
Frage 1 von 1MittelEin Kunde kann mehrere Konten besitzen. Ein Konto kann mehreren Kunden gehören. Welche Kardinalität liegt vor?
Lösung: n:m — Da auf beiden Seiten mehrere Zuordnungen möglich sind, handelt es sich um eine n:m-Beziehung.
Beziehungen in Tabellen überführen

Im relationalen Modell werden Entitätstypen zu Tabellen. Beziehungen entstehen durch Fremdschlüssel.

Definition

Fremdschlüssel

Ein Fremdschlüssel ist ein Attribut, das auf den Primärschlüssel einer anderen Tabelle verweist. Dadurch verbindet er die Zeilen beider Tabellen.

Bei einer 1:n-Beziehung wird der Primärschlüssel der 1-Seite als Fremdschlüssel in die Tabelle der n-Seite übernommen.

Für das soziale Netzwerk ergibt sich:

  • Benutzer(BenutzerID PK, Name, E-Mail)
  • Beitrag(BeitragID PK, Inhalt, Datum, BenutzerID FK)
  • Kommentar(KommentarID PK, Inhalt, Datum, BenutzerID FK, BeitragID FK)

PK kennzeichnet einen Primärschlüssel, FK einen Fremdschlüssel. In Beitrag zeigt BenutzerID auf den Verfasser. In Kommentar zeigen zwei Fremdschlüssel auf den Verfasser und den kommentierten Beitrag.

Merke

Bei 1:n wandert der Schlüssel der 1-Seite als Fremdschlüssel auf die n-Seite.

Eine n:m-Beziehung lässt sich nicht durch einen einzigen Fremdschlüssel korrekt darstellen. Dafür wird eine Verbindungstabelle benötigt.

Beispiel Kontoinhaber:

  • Kunde(KundenID PK, Name)
  • Konto(KontoID PK, Kontotyp)
  • Kontoinhaber(KundenID PK/FK, KontoID PK/FK)

Die Kombination aus KundenID und KontoID kann den zusammengesetzten Primärschlüssel der Verbindungstabelle bilden.

Hat die Beziehung eine eigene Eigenschaft, wird diese ebenfalls in der Verbindungstabelle gespeichert. Zwischen Küche und Möbel gehört beispielsweise die Anzahl in die Tabelle Moeblierung.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Bei einer 1:n-Beziehung steht der Fremdschlüssel auf der . Eine n:m-Beziehung wird durch eine aufgelöst. Ein Fremdschlüssel verweist auf den einer anderen Tabelle.

Lösungen: Lücke 1: n-Seite; Lücke 2: Verbindungstabelle; Lücke 3: Primärschlüssel. Prüfe zuerst die Kardinalität. Danach entscheidest du, wo Fremdschlüssel oder eine eigene Verbindungstabelle nötig sind.
Ein vollständiges Modell entwickeln

Ein Auftrag kann mehrere Produkte enthalten, und ein Produkt kann in mehreren Aufträgen vorkommen. Zwischen Auftrag und Produkt besteht deshalb eine n:m-Beziehung. Außerdem gehört jeder Auftrag genau zu einem Kunden.

Schritt 1: Entitäten und Attribute festlegen

  • Kunde: KundenID, Firma
  • Auftrag: AuftragsID, Auftragsdatum
  • Produkt: ProduktID, Bezeichnung, Lagerbestand
  • Auftragsposition: PositionsID, Positionsnummer, Menge

Schritt 2: Beziehungen bestimmen

  • Kunde zu Auftrag: 1:n
  • Auftrag zu Produkt: n:m
  • Die Verbindung Auftragsposition löst diese n:m-Beziehung in zwei 1:n-Beziehungen auf.

Schritt 3: Relationales Schema bilden

  • Kunde(KundenID PK, Firma)
  • Auftrag(AuftragsID PK, Auftragsdatum, KundenID FK)
  • Produkt(ProduktID PK, Bezeichnung, Lagerbestand)
  • Auftragsposition(PositionsID PK, Positionsnummer, Menge, AuftragsID FK, ProduktID FK)

Die Menge gehört nicht allgemein zum Auftrag und nicht allgemein zum Produkt. Sie beschreibt, wie oft ein bestimmtes Produkt in einem bestimmten Auftrag vorkommt. Deshalb steht sie in Auftragsposition.

Schritt 4: Integrität prüfen

Referentielle Integrität bedeutet: Jeder gesetzte Fremdschlüsselwert muss auf einen vorhandenen Schlüsselwert verweisen. Eine Auftragsposition darf also keine nicht vorhandene AuftragsID oder ProduktID enthalten.

Wird ein Kunde noch von Aufträgen referenziert, kann er nicht einfach gelöscht werden, sofern keine passende Löschregel festgelegt wurde.

Teste dich
Frage 1 von 1SchwerIn welcher Tabelle muss die bestellte Menge gespeichert werden?
Lösung: In der Auftragsposition — Die Menge gehört zur Verbindung eines konkreten Auftrags mit einem konkreten Produkt. Sie ist daher ein Attribut der Auftragsposition.
Vertiefung: Redundanz durch Normalisierung vermeiden

Normalisierung ordnet Attribute und Tabellen so, dass unnötige Wiederholungen und daraus entstehende Widersprüche vermieden werden.

Solche Widersprüche heißen Anomalien:

  • Änderungsanomalie: Eine mehrfach gespeicherte Information wird nur an einigen Stellen geändert.
  • Einfügeanomalie: Eine Information lässt sich erst speichern, wenn eine andere, noch nicht vorhandene Information ergänzt wird.
  • Löschanomalie: Beim Löschen einer Zeile geht unbeabsichtigt eine weitere Information verloren.

Erste Normalform

Eine Tabelle erfüllt die erste Normalform, wenn jedes Feld genau einen einzelnen Wert enthält. Eine Liste mehrerer Songs in einer Zelle verletzt diese Regel. Jeder Song benötigt eine eigene Zeile.

Zweite Normalform

Eine Tabelle erfüllt die zweite Normalform, wenn sie in der ersten Normalform ist und jedes Nichtschlüsselattribut vom gesamten zusammengesetzten Primärschlüssel abhängt.

Angenommen, Pruefungsergebnis hat den Schlüssel aus SchuelerID und KursID. Der Schülername hängt nur von SchuelerID ab, der Kursname nur von KursID. Beide gehören deshalb in eigene Tabellen.

Dritte Normalform

Eine Tabelle erfüllt die dritte Normalform, wenn sie in der zweiten Normalform ist und kein Nichtschlüsselattribut ein anderes Nichtschlüsselattribut bestimmt.

Stehen Schule und Schulleitung beide in einer Schülertabelle, wird die Schulleitung bei jedem Schüler derselben Schule wiederholt. Besser ist:

  • Schueler(SchuelerID PK, Name, SchulID FK)
  • Schule(SchulID PK, Schulname, Schulleitung)
Gut zu wissen

Normalisierung verbessert Klarheit und Konsistenz. Bei der späteren technischen Umsetzung kann ein Modell bewusst teilweise denormalisiert werden, wenn dafür ein begründeter Leistungs- oder Verwaltungsbedarf besteht. Das ist eine Implementierungsentscheidung, kein Ersatz für ein sauberes konzeptionelles Modell.

Teste dich
Frage 1 von 1SchwerEine Tabelle enthält SchuelerID, Schuelername, SchulID, Schulname und Schulleitung. Schulname und Schulleitung wiederholen sich bei jedem Schüler. Welche Verbesserung ist passend?
Lösung: Eine eigene Tabelle für Schulen anlegen und in der Schülertabelle nur SchulID als Fremdschlüssel speichern. — Die Schule ist eine eigene Entität. Ihre Daten werden einmal gespeichert und über den Fremdschlüssel SchulID mit Schülern verbunden.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Datenbankmodellierung
    • Anforderungen und fachliche Regeln klären
    • Entitäten und Attribute bestimmen
    • Primärschlüssel zur eindeutigen Identifikation wählen
    • Beziehungen mit Kardinalität und Optionalität beschreiben
    • Tabellen durch Fremdschlüssel oder Verbindungstabellen verknüpfen
    • Integrität und Normalformen prüfen

Der Weg führt vom fachlichen Problem zum relationalen Schema: Du untersuchst Anforderungen, bestimmst Entitäten und Schlüssel, modellierst Beziehungen, überführst sie in Tabellen und prüfst anschließend Redundanz sowie Integrität.

Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Aufgabe hat ein Primärschlüssel?
Lösung: Er identifiziert jede Zeile einer Tabelle eindeutig. — Ein Primärschlüssel liefert für jede Zeile eine eindeutige Identität.
Frage 2 von 3MittelEine Abteilung beschäftigt mehrere Mitarbeiter; jeder Mitarbeiter gehört genau einer Abteilung an. Wo steht der Fremdschlüssel?
Lösung: In der Mitarbeitertabelle — Es ist eine 1:n-Beziehung. Die AbteilungsID der 1-Seite wird als Fremdschlüssel in die Mitarbeitertabelle auf der n-Seite übernommen.
Frage 3 von 3SchwerSchüler können mehrere Kurse belegen, und jeder Kurs hat mehrere Schüler. Zu jeder Belegung wird gespeichert, ob bereits bezahlt wurde. Welches Modell ist passend?
Lösung: Eine Verbindungstabelle Belegung mit SchülerID, KursID und Bezahlt — Zwischen Schüler und Kurs besteht eine n:m-Beziehung. Die Verbindungstabelle löst sie auf; Bezahlt beschreibt die einzelne Belegung und gehört deshalb dorthin.

Wenn du alle drei Entscheidungen begründen kannst, beherrschst du den Kern der Datenbankmodellierung: Du kannst einen Realitätsausschnitt in ein nachvollziehbares, relationales Schema übersetzen.

Passend dazu