1 Übersicht
In diesem Kurs lernst du, wie du die Beziehungen zwischen den Klassen im objektorientierten Datenmodell richtig in ein relationelles Datenbankschema überträgst.
Diese Arbeit ist Teil des Modellierungsprozesses und sollte erfolgen, bevor du die Datenbank im Datenbankverwaltungssystem aufsetzt.
Vorwissen:
Entwickeln und Lesen eines objektorientierten Datenmodells
Das Konzept und die Eigenschaften von Schlüsseln
Nach dem Kurs kannst du:
Entscheiden, wie eine Beziehung des Klassendiagramms am besten im Datenbankschema abgebildet wird.
Kursdauer: 20 Minuten
2 Wichtiges im Leben eines Sportlers
Hochleistungssportler haben ja gar nicht so selten besondere Marotten und Rituale. Der Basketball-Star Michael Jordan soll zum Beispiel lange Zeit die Shorts seiner Uni-Mannschaft zusätzlich zu seinen aktuellen Shorts angehabt haben.
Der SC Informatika ist für etwas Ähnliches bekannt: Jede Sportlerin und jeder Sportler hat hier eine Lieblingshose!
Die darf beim Eintrag in der Mitgliederdatenbank natürlich nicht fehlen! Deshalb hat der Systemadministrator folgendes Datenmodell entworfen:

Doch wie wird die Beziehung zur Hose (und die beiden anderen Beziehungen) nun in der Datenbank am besten abgebildet?
3 Die 1:1 Beziehung und Fremdschlüssel
Ein Lieblingsstück gibt es nur einmal und da man seine Hosen selten teilt, hat eine Hose auch nur einen Besitzer. Diese Art von Beziehung nennt man 1:1-Beziehung.
Möchte man eine solche 1:1-Beziehung abbilden, so kann man sich die identifizierende Eigenschaft des Schlüssels zunutze machen:
Da jede Hose eindeutig über ihre HosenID bestimmt werden kann, reicht es, in der Relation SPORTLER die HosenID zu vermerken. Umgekehrt könnte man natürlich auch in der Relation LIEBLINGSHOSE die TeilnehmerNr vermerken.

1:1-Beziehungen kann man abbilden, indem man in einer der beiden Relationen ein zusätzliches Attribut, ein Referenzattribut, ergänzt, das auf den Schlüssel der anderen Relation verweist. Dieses Referenzattribut nennt man Fremdschlüssel.
Im Datenbankschema kann das so aussehen:

Das Schlüsselattribut ist normal unterstrichen, der Fremdschlüssel gestrichelt.
4 Ein Sportler, viele Rekorde
Neben der Lieblingshose geht es bei den Sportlerinnen und Sportlern natürlich um den Sport!
Der SC Informatika möchte deshalb für die verschiedenen Sportarten speichern, wer den aktuellen Vereinsrekord hält.
Laden
5 Die 1:n-Beziehung
Im Unterschied zu den 1:1-Beziehungen kannst du dir bei der 1:n-Beziehung also nicht aussuchen, in welcher Relation du den Fremdschlüssel anlegst.
Da das n für 0 oder jede natürliche Zahl stehen kann, kannst du keine Aussage darüber treffen, wie viele Spalten du anlegen sollst. Im Beispiel siehst du, dass es bei mehreren Spalten zu vielen NULL-Werten kommen kann und Vivi Vierfachchampion kann ihren vierten Rekord gar nicht eintragen!

6 Übungen zu 1:1 und 1:n-Beziehungen
Laden
Laden
7 Die m:n-Beziehung
Natürlich ist ein Rekord nichts wert, wenn kein anderer die gleiche Sportart macht und versucht, ihn zu brechen. Außerdem steht es jedem Mitglied des SC Informatika frei, mehr als eine Sportart zu machen.
Deshalb ist die betreibt-Beziehung eine m:n-Beziehung: Sowohl für das m als auch für das n kann man 0 oder jede natürliche Zahl einsetzen.

Der Trick, Fremdschlüssel in einer der beiden Relationen hinzuzufügen, funktioniert hier nicht mehr, da das Problem aus der 1:n-Beziehung hier für beide Seiten zutrifft.
8 neue Relationen entstehen
Die Lösung: eine neue Relation betreibt, die lediglich die Schlüssel aus beiden Relationen als Referenzattribute enthält!
Denn wie schon zuvor sind alle Sportler und alle Sportarten ja über die TeilnehmerNr und die KursNr identifiziert.
Möchte man jetzt also sagen, dass der Sportler "Kai Kanu" mit der TeilnehmerNr 7 die Sportart "Rudern" mit der ID 12 betreibt, so genügt es, die 7 und die 12 in der Relation betreibt einzutragen.

Eine n:m-Beziehung bildet man in der Datenbank ab, indem man eine neue Relation einfügt, die lediglich zwei Attribute haben: je eines pro Referenz auf die jeweilige Relation. Diese beiden Attribute sind erneut Fremdschlüssel der Relationen.
9 Übungen zu Beziehungen
Laden
10 Zusammenfassung
Essenziell für Beziehungen in Datenbanken sind Schlüssel und ihre Eindeutigkeit. Da in einer Relation jeder Attributwert eines Schlüssels nur maximal einmal angenommen werden kann, kann man einen Datensatz eindeutig über diesen identifizieren.
Ein Referenzattribut in Form eines Fremdschlüssels in einer anderen Relation kann dann dazu verwendet werden, die Beziehung darzustellen.
1:1-Beziehung
In einer beliebigen der beiden Relationen wird mithilfe eines Fremdschlüssels auf die andere Relation verwiesen.
1:n-Beziehung
Es wird ein Fremdschlüssel in derjenigen Relation angelegt, die nur genau einen Wert aus der anderen Relation aufnehmen muss.
m:n-Beziehung
Es wird eine neue Relation (zum Beispiel mit dem Bezeichner der Beziehung) eingeführt, die je einen Fremdschlüssel zu den beiden Relationen enthält.