Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:spezielle_beziehungen

Dies ist eine alte Version des Dokuments!


Spezielle Beziehungen

Rekursive Beziehungen

Eine Beziehung zwischen Entitäten, die demselben Entitätstyp angehören, wird als rekursiver Beziehungstyp bezeichnet. Beispielsweise ist die Beziehung ist-Vorgesetzter-von zwischen den Mitarbeitern eines Betriebs rekursiv.


Rekursive Beziehung ist-Vorgesetzter-von

Zur Abbildung der rekursiven ER-Beziehung in das Relationenmodell benutzen wir die Regel für 1:n-Beziehungen. Demnach wird auf der n-Seite der Primärschlüssel der 1-Seite als Fremdschlüssel hinzugenommen, d. h. bei einem Mitarbeiter wird die Personalnummer des Vorgesetzten ergänzt.

Mitarbeiter(Personalnummer, Name, Vorname, ↑Personalnummer)

In dieser Relation kommt die Personalnummer zweimal als Attribut vor, es liegt also ein Namenskonflikt vor. Das geht natürlich nicht, weil nie klar ist, ob die Personalnummer des Mitarbeiters gemeint ist oder die des Vorgesetzten. Der Fremdschlüssel Personalnummer braucht also eine andere Bezeichnung. Würde man wie unter Namenskonflikte vorgehen, also den Entitätsnamen voranstellen, so müsste Personalnummer in MitarbeiterPersonalnummer umbenannt werden. Dies passt aber nicht, weil bei einer rekursiven Beziehung die beiden in Beziehung stehenen Entitätstypen identisch sind. Man ergänzt daher sinnvollerweise den Beziehungsnamen, wodurch man eine leicht verständliche Relation erhält:

Mitarbeiter(Personalnummer, Name, Vorname, ↑VorgesetztenPersonalnummer)

Parallele Beziehungen

Zwischen zwei Entitätstypen können mehrere Beziehungen bestehen. Beispielsweise unterrichten Lehrer Klassen, sie können aber auch Klassenlehrer einer Klasse sein.


Parallele Beziehungen ist-Klassenlehrer-von und unterrichtet

Zur Abbildung paralleler Beziehungen in das Relationenmodell bildet man alle Entitätstypen und Beziehungen für sich ab.

Lehrer(Kürzel, Name)
Klasse(Name, Klassenraum)
unterrichtet(↑Kürzel, ↑Name, Fach)
ist_Klassenlehrer_von(↑Kürzel, ↑Name)

Die 1:1-Beziehung ist_Klassenlehrer_von lässt sich optimieren:

Lehrer(Kürzel, Name)
Klasse(Name, Klassenraum, ↑Kürzel)
unterrichtet(↑Kürzel, ↑Name, Fach)

Ternäre Beziehungen

Meistens kommt man mit binären Beziehungen im ER-Modell aus, manchmal sind aber drei oder mehr Entitytypen an einer Beziehung beteiligt. Muss zum Beispiel eine Fluggesellschaft darüber Buch führen, welche Piloten welche Flugzeuge auf welchen Fluglinien geflogen haben, so ist das mit binären Beziehungen zwischen Pilot, Flugzeug und Fluglinie nicht machbar, man braucht eine ternäre Beziehung.


Ternäre Beziehung Pilot-Flugzeug-Fluglinie

Bei einer ternären Beziehung kann auch mit KaMe- und Mumi-Fragen die Kardinalität und Optionalität bestimmt werden. Allerdings müssen diese Fragen etwas erweitert werden.

KaMe-Frage

Kann eine Entität des Typs A und eine Entität B des Typs B mit mehreren Entitäten des Typs C in Beziehung stehen?

Ja    →  Kardinalität ist n
Nein  →  Kardinalität ist 1

Die Kardinalitätsangabe wird an das Ende der Beziehung also an C geschrieben.

Beispiele:

  • Kann ein Pilot mit einem Flugzeug auf mehreren Fluglinien eingesetzt werden? Ja, Kardinaliät n bei Fluglinien
  • Kann ein Pilot auf einer Fluglinie mit mehreren Flugzeugen eingesetzt werden? Ja, Kardinalität n bei Flugzeug
  • Kann ein Flugzeug auf einer Fluglinie mit mehreren Piloten eingesetzt werden? Nein, Kardinalität 1 bei Pilot

MuMi-Frage

Muss eine Entität des Typs A mit mindestens einer Entität des Typs B und einer Entität des Typs C in Beziehung stehen?

Ja     →   nicht optional, obligatorisch, muss-Beziehung
Nein   →   optional, nicht obligatorisch, kann-Beziehung

Die Optionalität wird an den Anfang der Beziehung also an A geschrieben.

Beispiele:

  • Muss ein Pilot mindestens in einem Flugzeug auf einer Fluglinie eingesetzt werden? Ja, Optionalität muss an Pilot
  • Muss ein Flugzeug mindestens auf einer Fluglinie mit einem Piloten eingesetzt werden? Ja, Optionalität muss an Flugzeug
  • Muss eine Fluglinie mindestens mit einem Piloten und einem Flugzeug eingesetzt werden? Nein, Optionalität kann an Fluglinie

Zur Abbildung einer mehrstelligen Beziehung in das Relationenmodell fasst man die Primärschlüsselattribute aller beteiligten Entitätstypen zu einer Relation zusammen und ergänzt sie um die Beziehungsattribute.

eingesetzt(↑PilotenID, ↑FlugzeugID, ↑FluglinienID, Abflug, Ankunft)

Mehrstellige Beziehungen werden wie folgt bezeichnet:

Entiätstypen Bezeichnung
2 binär
3 ternär
4 quaternär
5 quinär

Aufgaben

ER-Diagramm Universität
Gegeben ist das ER-Diagramm Universität:

a) Warum muss die prüft-Beziehung als ternäre Beziehung modelliert werden?
b) Überführe das ER-Diagramm in das Relationenmodell.

Bibliothek
Gegeben ist die folgende Beziehung zwischen Büchern und ausleihbaren Buchexemplaren in einer Bibliothek. Bestimme und begründe Kardinalität und Optionalität der Beziehung. Wie sieht die Abbildung in das Relationenmodell aus? Erläutere die Schlüsselproblematik.

Datenbank Fluggesellschaft
In der Datenbank einer Fluggesellschaft werden von den erfassten Personen eine Identifikationsnummer, Vor- und Nachname, Geburtsdatum und die Adresse gespeichert. Bei Flugpassagieren werden zusätzlich das Geschlecht und Raucher/Nichtraucher gespeichert. Für die Angestellten der Fluggesellschaft müssen zusätzlich der Beruf, die Religionszugehörigkeit und die Gehaltsgruppe gespeichert werden.

Die Beziehung Person – Flugpassagier bzw. Person – Angestellter nennt man eine is-a (engl., ist ein) Beziehung. Jeder Flugpassagier ist eine Person und jeder Angestellter ist eine Person.

a) Modelliere ein ER-Diagramm mit Kardinalitäten und Optionalitäten.

b) Bilde die drei Entitätstypen und zwei is-a-Beziehungen in das Relationenmodell ab.

db/spezielle_beziehungen.1556827179.txt.gz · Zuletzt geändert: 2019/05/02 21:59 von roehner