Relationales Modell
Das relationale Modell
Das relationale Datenmodell
Werkzeuge und Sprachen um Daten zu beschreiben und zu verarbeiten
Das Relationale Schema
Relation / Tabelle
Attributwerte (Spalten) haben eigene Domänen (Datentypen)
Tupel / Zeile
Schema
Ausprägung
Menge an Tupeln: keine Ordnung, keine Duplikate
ER → Relationales Schema
Konzeptuelles Schema Implementations Schema
Das relationale Modell hat keine Entities wie im ER Modell sondern nur Relationen.
N:M
Alle Schlüssel nehmen.
1:1:N
Bei Funkionalität alle Schlüssel nehmen.
Bei der (min,max)-Notation nur den Schlüssel von der 1-Seite nehmen.
Generalisierung
Schlüssel von Parent speichern.
Schwache Entitäten
Schwache Entitäten können von anderen schwachen Entitäten abhängen.
Deshalb überall zur ID von schwachen Entiät auch ID von starken Entität mitnehmen.
Relationales Schema optimieren
Entities und Relationships können eigene Tabellen bekommen oder zusammengefasst werden.
Ziel
Wenige Redudanzen
Wenige Null Werte
(Über Performance und geringe Anzahl an notwendigen Queries machen wir uns erstmal keine Gedanken)
Falsches zusammenführen
Wir wollen die lesen-Relation auslassen.
Richtig:
Wir speichern die ID von Prof in Vorlesung.
Falsch:
Wir speichern die Id von Vorlesung in Prof.
- Mehrfacheinträge wo nur die ID von Vorlesung anders ist.
- Profs ohne Vorlesung haben null
- Beim updaten von einem Prof müsste man alle Zeilen suchen und unabhängig voneinander updaten.
- Löschen von Prof, löscht auch Vorlesung
Anzahl berücksichtigen
Es gibt 100.000 studierende und nur 200 Räume.
Nicht Raum in Student zusammenführen, sonst zu viele null
Minimum bei min-max berücksichtigen
Hier sollte man Professor-ID in Raum speichern.