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)

Die Ist-Beziehung (is-a)

Die aus der objektorientierten Modellierung bekannten Spezialisierungs- bzw. Generalisierungsbeziehungen zwischen Ober- und Unterklasse gibt es in der ER-Modellierung als sogenannte Ist-Beziehung (is-a-Beziehung).

Als Beispiel betrachten wir Mitarbeiter/innen einer Universität, welche durch ihre Personalnummer identifiziert werden und einem Institut angehören. Einige dieser Mitarbeiter sind Prüfer für ein bestimmtes Fach.

Jeder Prüfer ist genau ein Mitarbeiter, aber nicht jeder Mitarbeiter ist ein Prüfer. Die Kardinaliät dieser Beziehung ist also 1:1 und die Optionalität kann:muss. Zudem ist Prüfer ein schwacher Entitätstyp, weil er nur durch Hinzunahme des Fremdschlüssels Personalnummer identifiziert werden kann.

Die Abbildung in das Relationenmodell ergibt die beiden Relationen:

Mitarbeiter(Personalnummer, Institut)
Prüfer(↑Personalnummer, Fach)

Aufgabe

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.1645267548.txt.gz · Zuletzt geändert: 2022/02/19 11:45 von roehner