Relationen zur Vermeidung von Redundanzen

Wir optimieren die Bücher-Datenbank, indem wir die Informationen in die Tabellen Buch, Verlag und Ausleiher aufteilen. Damit die Information, welcher Ausleiher welches Buch entliehen hat und welches Buch in welchem Verlag erschienen ist, erhalten bleibt, führen wir die Fremdschlüsselspalten VerlagId und AusleiherId in der Tabelle Buch ein.
Die Zusammenhänge "Verlag gibt Buch heraus" und "Ausleiher leiht Buch aus" nennt man Relationen.

1:n - Relationen im Klassendiagramm

Relationen werden im Klassendiagramm als gerade Verbindung zweier Klassen dargestellt. Auf/neben die Verbindung schreiben wir ein Verb, das die Relation kennzeichnet sowie einen ausgefüllten "Dreieckspfeil", der die Leserichtung des Verbs angibt.

Unter die Verbindung schreiben wir die Kardinalität der Relation. Dadurch machen wir beispielsweise kenntlich, dass

  • Ein Verlag beliebig viele ("n") Bücher herausgibt und
    ein Buch von genau einem ("1") Verlag herausgegeben wird.
  • Ein Ausleiher beliebig viele ("n") Bücher ausleihen kann und
    ein Buch gerade von einem oder keinem ("0..1") Ausleiher entliehen sein kann.

Steht ein Objekt der Klasse A zu vielen Objekten der Klasse B in Beziehung, ein Objekt der Klasse B aber zu höchstens einem der Klasse A, so spricht man von einer 1:n-Beziehung.

Aufgabe 1

Zeichne zu folgenden Relationen das Klassendiagramm (jede Klasse mit mindestens zwei Attributen) und schreibe das Tabellenschema auf:

  • a) Schülerin besucht Klasse
  • b) Fahrzeug ist zugelassen auf Halterin
  • c) Smartphone hat Port



Beispiel: Relation "Fahrradmodell hat Gangschaltung"

Klassendiagramm: Relationales Schema:
Fahrradmodell [id: integer, bezeichnung: varchar(50), farbe: varchar(20), gangschaltung_id: integer]
Gangschaltung [id: integer, bezeichnung: varchar(50), anzahlGänge: integer]

Lösung