Datenmodellierung und relationales Modell
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.
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.
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.
Von der Beschreibung zum ER-Diagramm
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.
| Beziehungstyp | Typ A | Typ B | Kardinalität | Optionalität |
|---|---|---|---|---|
| leitet | Lehrkraft | Kurs | 1:n | Lehrkraft kann, Kurs muss |
| belegt | Schueler | Kurs | m:n | Schueler kann, Kurs kann |
1:n liest man: eine Lehrkraft, viele Kurse. "Kurs muss" heißt: Es gibt keinen Kurs ohne Lehrkraft.
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.
Ü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.
Das Schema der Musikschule
Das Schema der Musikschule
Überführe das ER-Diagramm der Musikschule in ein relationales Schema.
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.
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: gilt, wenn jeder Wert von A genau einen Wert von B festlegt, etwa . Kommt ein Wert von A mehrmals vor, steht der zugehörige Wert von B jedes Mal erneut da.
Eine Tabelle mit Anomalien
Eine Tabelle mit Anomalien
Die Musikschule speichert alles in einer Tabelle mit dem Primärschlüssel (sid, kid).
| sid | kid | sname | titel | lid | lname | raum | seit |
|---|---|---|---|---|---|---|---|
| 1 | 10 | Mara | Klavier | 7 | Weiss | 12 | 2025-09 |
| 1 | 11 | Mara | Gitarre | 8 | Roth | 14 | 2025-10 |
| 2 | 10 | Jonas | Klavier | 7 | Weiss | 12 | 2025-09 |
| 3 | 10 | Lea | Klavier | 7 | Weiss | 12 | 2025-11 |
| 3 | 12 | Lea | Chor | 7 | Weiss | 12 | 2025-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.
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).
Die Tabelle normalisieren
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 und , 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 und , 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.
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.
Der Fremdschlüssel auf der falschen Seite
Der Fremdschlüssel auf der falschen Seite
"Eine Lehrkraft leitet mehrere Kurse, also bekommt Lehrkraft einen Fremdschlüssel kid."
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
Jeder Kurs hat genau eine Lehrkraft, eine Lehrkraft leitet mehrere Kurse. Wohin kommt der Fremdschlüssel?
Ein ER-Modell hat 4 Entitätstypen, zwei 1:n-Beziehungen und eine m:n-Beziehung. Wie viele Relationen hat das relationale Schema?
Die Relation Mitarbeiter(mnr, name, abtnr, abtname) hat den Schlüssel mnr, und abtnr bestimmt abtname. Welche Aussage stimmt?
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.