Lektion 3.1

Datenmodellierung und relationales Modell

16 min Lesezeit

Eine Musikschule verwaltet ihre Anmeldungen in einer einzigen Tabelle: Schüler, Kurs, Lehrkraft und Raum in jeder Zeile. Zieht eine Lehrkraft um, muss die Sekretärin jede Zeile ändern, in der sie vorkommt. Eine neue Lehrkraft ohne Kurs lässt sich gar nicht eintragen.

Die Tabelle ist falsch entworfen. Du lernst, aus einer Beschreibung ein Datenbankschema zu entwickeln: erst ein Modell aus Entitäten und Beziehungen, dann Tabellen, dann die Prüfung auf Redundanz.

Definition

Entität, Entitätstyp und Attribut

Eine Entität ist ein einzelnes, unterscheidbares Objekt der Wirklichkeit, etwa die Schülerin Mara oder der Kurs Klavier. Gleichartige Entitäten bilden einen Entitätstyp (Schueler, Kurs). Ein Attribut ist eine Eigenschaft, die alle Entitäten des Typs haben (name, geburtsjahr), mit einem Wertebereich wie Text oder ganze Zahl. Ein Attribut, das jede Entität eindeutig kennzeichnet, ist ein Schlüsselattribut. Fehlt ein natürlicher Schlüssel, führt man eine Nummer ein: sid, kid, lid.

Definition

Beziehungstyp, Kardinalität, Optionalität und ER-Diagramm

Ein Beziehungstyp verbindet Entitätstypen, etwa "Lehrkraft leitet Kurs". Die Kardinalität nennt, mit wie vielen Entitäten des anderen Typs eine Entität verbunden sein kann:

  • 1:1: höchstens ein Partner auf jeder Seite (Person und Personalausweis).
  • 1:n: Eine Entität des ersten Typs hat viele Partner, jede des zweiten nur einen (eine Lehrkraft, viele Kurse).
  • m:n: Auf beiden Seiten gibt es viele Partner (Schüler und Kurse).

Die Optionalität sagt, ob eine Entität an der Beziehung teilnehmen muss oder auch ohne Partner vorkommen kann. Jeder Kurs hat eine Lehrkraft (Kurs: muss), eine neue Lehrkraft leitet vielleicht noch keinen Kurs (Lehrkraft: kann). Ein ER-Diagramm (Entity-Relationship) zeichnet das mit Rechtecken für Entitätstypen, Ellipsen für Attribute (Schlüssel unterstrichen) und Rauten für Beziehungstypen. Wir beschreiben es als Tabelle.

Beispiel

Von der Beschreibung zum ER-Diagramm

Lehrkräfte haben Namen und Raum, Schüler Namen und Geburtsjahr, Kurse Titel und Gebühr. Jeder Kurs hat genau eine Lehrkraft, eine Lehrkraft leitet beliebig viele Kurse, auch keinen. Schüler belegen beliebig viele Kurse, ein Kurs hat beliebig viele Schüler. Zu jeder Belegung gehört der Monat des Beginns.

Die Hauptwörter ergeben die Entitätstypen Lehrkraft, Schueler und Kurs mit den Schlüsseln lid, sid und kid, die Verben die Beziehungstypen leitet und belegt. Der Monat gehört weder zum Schüler noch zum Kurs, sondern zur einzelnen Belegung: Er ist ein Attribut des Beziehungstyps belegt.

BeziehungstypTyp ATyp BKardinalitätOptionalität
leitetLehrkraftKurs1:nLehrkraft kann, Kurs muss
belegtSchuelerKursm:nSchueler kann, Kurs kann

1:n liest man: eine Lehrkraft, viele Kurse. "Kurs muss" heißt: Es gibt keinen Kurs ohne Lehrkraft.

Definition

Relationenmodell, Schlüssel, Fremdschlüssel und Relationenschema

Im Relationenmodell besteht eine Datenbank aus Relationen, das sind Tabellen. Jede Zeile ist ein Tupel, jede Spalte ein Attribut. Eine Relation ist eine Menge von Tupeln: Die Reihenfolge ist unwichtig, kein Tupel steht doppelt. Ein Relationenschema nennt Namen und Attribute. Den Primärschlüssel unterstreicht man, einen Fremdschlüssel kennzeichnet man hier mit FK.

Ein Schlüsselkandidat ist eine minimale Attributmenge, die jedes Tupel eindeutig bestimmt: Lässt man ein Attribut weg, ist sie nicht mehr eindeutig. Aus den Kandidaten wählt man den Primärschlüssel, bei mehreren Attributen heißt er zusammengesetzt. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Relation. Zu jedem seiner Werte muss es dort ein Tupel geben, oder er ist leer (NULL). Das ist die referenzielle Integrität.

Kurs(kid‾,titel,gebuehr,lidFK)\text{Kurs}(\underline{\text{kid}}, \text{titel}, \text{gebuehr}, \text{lid}^{\text{FK}})
Definition

Überführung des ER-Modells in ein relationales Schema

  • Jeder Entitätstyp wird eine Relation, das Schlüsselattribut der Primärschlüssel.
  • 1:n: Die Relation der n-Seite bekommt einen Fremdschlüssel auf die 1-Seite, ebenso die Beziehungsattribute. Muss die n-Seite einen Partner haben, ist der Fremdschlüssel NOT NULL, sonst darf er NULL sein.
  • m:n: Es entsteht eine eigene Relation mit je einem Fremdschlüssel pro Seite und den Beziehungsattributen. Die Fremdschlüssel bilden zusammen den Primärschlüssel, wenn ein Paar nur einmal vorkommen darf (sonst gehört ein weiteres Attribut dazu).
  • 1:1: Eine der beiden Relationen bekommt einen Fremdschlüssel, der dort eindeutig ist (UNIQUE). Müssen beide Seiten einen Partner haben, kann man beide Typen in einer Relation vereinen.
Beispiel

Das Schema der Musikschule

Überführe das ER-Diagramm der Musikschule in ein relationales Schema.

Lehrkraft(lid‾,name,raum)Kurs(kid‾,titel,gebuehr,lidFK)Schueler(sid‾,name,geburtsjahr)Belegung(sidFK,kidFK‾,seit)\begin{aligned} &\text{Lehrkraft}(\underline{\text{lid}}, \text{name}, \text{raum}) \\ &\text{Kurs}(\underline{\text{kid}}, \text{titel}, \text{gebuehr}, \text{lid}^{\text{FK}}) \\ &\text{Schueler}(\underline{\text{sid}}, \text{name}, \text{geburtsjahr}) \\ &\text{Belegung}(\underline{\text{sid}^{\text{FK}}, \text{kid}^{\text{FK}}}, \text{seit}) \end{aligned}

Leitet ist 1:n, also bekommt Kurs (die n-Seite) den Fremdschlüssel lid. Jeder Kurs muss eine Lehrkraft haben, darum ist lid NOT NULL. Belegt ist m:n und ergibt die Relation Belegung mit sid und kid als zusammengesetztem Primärschlüssel. Das Beziehungsattribut seit steht dort.

Definition

Redundanz, Anomalien und funktionale Abhängigkeit

Redundanz heißt: Dieselbe Tatsache steht mehrfach in der Datenbank. Sie führt zu Anomalien:

  • Änderungsanomalie: Eine Kopie wird geändert, die anderen bleiben.
  • Einfügeanomalie: Eine Tatsache lässt sich nicht eintragen, weil eine andere fehlt.
  • Löschanomalie: Mit einer Tatsache geht eine andere verloren.

Die Ursache ist meist eine funktionale Abhängigkeit: A→BA \to B gilt, wenn jeder Wert von A genau einen Wert von B festlegt, etwa kid→titel\text{kid} \to \text{titel}. Kommt ein Wert von A mehrmals vor, steht der zugehörige Wert von B jedes Mal erneut da.

Beispiel

Eine Tabelle mit Anomalien

Die Musikschule speichert alles in einer Tabelle mit dem Primärschlüssel (sid, kid).

sidkidsnametitellidlnameraumseit
110MaraKlavier7Weiss122025-09
111MaraGitarre8Roth142025-10
210JonasKlavier7Weiss122025-09
310LeaKlavier7Weiss122025-11
312LeaChor7Weiss122025-11

Welche Anomalien treten auf?

Änderung: Weiss steht in 4 Zeilen. Zieht sie in Raum 15, sind 4 Zeilen zu ändern. Wird eine vergessen, hat Weiss zwei Räume.

Einfügen: Ein neuer Kurs Schlagzeug ohne Schüler lässt sich nicht eintragen, denn sid gehört zum Primärschlüssel und darf nicht leer sein.

Löschen: Meldet sich Mara vom Gitarrenkurs ab und wird die Zeile gelöscht, sind der Kurs Gitarre und die Lehrkraft Roth aus der Datenbank verschwunden.

Definition

Normalisierung bis zur dritten Normalform

Die Normalisierung (in einigen Ländern nur im Leistungskurs) zerlegt Relationen schrittweise so, dass die Abhängigkeiten sauber sind. Die Zerlegung muss verlustfrei sein: Verbindet man die Teile wieder, entsteht das Original. Ein Nichtschlüsselattribut kommt in keinem Schlüsselkandidaten vor.

  • 1. Normalform (1NF): Alle Attributwerte sind atomar, nicht weiter zerlegbar. Eine Zelle "Klavier, Chor" verletzt sie.
  • 2. Normalform (2NF): 1NF, und jedes Nichtschlüsselattribut hängt vom ganzen Primärschlüssel ab, nicht nur von einem Teil. Das kann nur bei zusammengesetztem Schlüssel verletzt sein.
  • 3. Normalform (3NF): 2NF, und kein Nichtschlüsselattribut hängt von einem anderen Nichtschlüsselattribut ab (keine transitive Abhängigkeit).
Beispiel

Die Tabelle normalisieren

Bringe die Tabelle der Musikschule mit dem Schlüssel (sid, kid) in die dritte Normalform.

1NF: Alle Werte sind atomar.

2NF: Es gilt sid→sname\text{sid} \to \text{sname} und kid→titel,lid,lname,raum\text{kid} \to \text{titel}, \text{lid}, \text{lname}, \text{raum}, also Abhängigkeit von einem Teil des Schlüssels. Zerlege in Schueler(sid, sname), Kurs(kid, titel, lid, lname, raum) und Belegung(sid, kid, seit).

3NF: In Kurs gilt kid→lid\text{kid} \to \text{lid} und lid→lname,raum\text{lid} \to \text{lname}, \text{raum}, also transitiv. Zerlege in Kurs(kid, titel, lid) und Lehrkraft(lid, lname, raum).

Ergebnis: vier Relationen, genau das Schema der Überführung. Der Raum von Weiss steht nur noch einmal in der Datenbank.

Definition

Datenbankmanagementsystem

Ein Datenbankmanagementsystem (DBMS) ist die Software, die eine Datenbank verwaltet, zum Beispiel SQLite, PostgreSQL oder MariaDB. Es speichert Daten dauerhaft, nimmt Abfragen in SQL entgegen, prüft Schlüssel und Fremdschlüssel, bedient mehrere Nutzer gleichzeitig, setzt Zugriffsrechte durch und sichert die Daten. Anwendungen sprechen nur mit dem DBMS, nicht mit den Dateien.

Häufige Fehler

Der Fremdschlüssel auf der falschen Seite

"Eine Lehrkraft leitet mehrere Kurse, also bekommt Lehrkraft einen Fremdschlüssel kid."

Richtig ist

Der Fremdschlüssel gehört auf die n-Seite. Ein Attribut kid in Lehrkraft nähme pro Lehrkraft nur einen Kurs auf. In Kurs verweist lid für jeden Kurs auf genau eine Lehrkraft.

Zusammenfassung

  • Beziehungstypen haben eine Kardinalität (1:1, 1:n, m:n) und eine Optionalität (muss oder kann). Das ER-Diagramm zeigt beides.

  • Eine Relation ist eine Menge von Tupeln. Ein Fremdschlüssel verweist auf einen Primärschlüssel (referenzielle Integrität).

  • Überführung: Entitätstyp wird Relation, 1:n wird Fremdschlüssel auf der n-Seite, m:n wird eigene Relation mit zwei Fremdschlüsseln.

  • Redundanz führt zu Änderungs-, Einfüge- und Löschanomalien. Die 1NF verlangt atomare Werte, die 2NF volle Abhängigkeit vom Schlüssel, die 3NF keine Abhängigkeit zwischen Nichtschlüsselattributen.

  • Das DBMS speichert, prüft Integrität und regelt Mehrbenutzerbetrieb und Rechte.

Übungen

Aufgabe 1Multiple Choice

Jeder Kurs hat genau eine Lehrkraft, eine Lehrkraft leitet mehrere Kurse. Wohin kommt der Fremdschlüssel?

Aufgabe 2Numerisch

Ein ER-Modell hat 4 Entitätstypen, zwei 1:n-Beziehungen und eine m:n-Beziehung. Wie viele Relationen hat das relationale Schema?

Aufgabe 3Multiple Choice

Die Relation Mitarbeiter(mnr, name, abtnr, abtname) hat den Schlüssel mnr, und abtnr bestimmt abtname. Welche Aussage stimmt?

Aufgabe 4Freitext

Eine Bücherei verleiht Medien (Titel). Leser haben einen Namen. Ein Leser leiht mehrere Medien, ein Medium wird von mehreren Lesern geliehen. Zu jeder Ausleihe gehört ein Datum. Gib das relationale Schema an.