Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

Kurs

Beziehungen in Datenbanken

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:

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:

Sportlerdatenbank mit Lieblingshosen

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.

Sportlerdatenbank mit Lieblingshosen

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:

Referenz auf die Lieblingshose

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!

Beispielausprägung Rekorde falsch

1:n-Beziehungen bildet man ab, indem man einen Fremdschlüssel als neues Attribut in der Relation ergänzt, in der es nur genau einen Eintrag aus der anderen Relation geben kann.

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.

Sportlerdatenbank mit Lieblingshosen

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.

Beispielausprägung der Sportlerdatenbank

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.


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?