Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:ternaere_beziehungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Letzte Überarbeitung Beide Seiten der Revision
db:ternaere_beziehungen [2019/05/03 09:54]
roehner angelegt
db:ternaere_beziehungen [2019/05/03 09:56]
roehner
Zeile 1: Zeile 1:
-=====Ternäre Beziehungen=====+==== Ternäre Beziehungen ==== 
 +Meistens kommt man mit binären Beziehungen im ER-Modell aus, manchmal sind aber drei oder mehr Entitätstypen 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. Pro Flug wird nur ein Pilot eingesetzt und nicht jede Fluglinie wird bedient. 
 + 
 +{{TernaereBeziehung.gif}}\\ 
 +Ternäre Beziehung //​Pilot-Flugzeug-Fluglinie//​ 
 + 
 +Bei einer ternären Beziehung kann auch mit [[beziehungen#​kardinalitaet_von_beziehungen|KaMe-]] und [[beziehungen#​optionalitaet_von_beziehungen|MuMi-Fragen]] die Kardinalität und Optionalität bestimmt werden. Allerdings müssen diese Fragen etwas erweitert werden. 
 + 
 +==KaMe-Frage== 
 +<WRAP box round> 
 +**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 
 +</​WRAP>​ 
 + 
 +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** 
 + 
 +<WRAP box round> 
 +**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 
 +</​WRAP>​ 
 + 
 +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 
 + 
 +{{pilot.png}}\\ 
 + 
 +=== Übertragung einer ternären Beziehung in das Relationenmodell === 
 +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. Handelt es sich um eine n:​m:​p-Beziehung,​ so bilden alle drei Primärschlüssel zusammen den Primärschlüssel der Beziehungsrelation. In unserem Beispiel liegt aber nur eine n:​m:​1-Beziehung vor. Zu einem Flugzeug und einer Fluglinie gibt es nur einen Piloten, weswegen Flugzeug und Fluglinie den Piloten bestimmen. Die beiden Primärschlüssel //​FlugzeugID//​ und //​FluglinienID//​ bilden daher zusammen den Primärschlüssel der eingesetzt-Relation. 
 + 
 +<WRAP pre> 
 +eingesetzt(↑PilotenID,​ ↑__FlugzeugID__,​ ↑__FluglinienID__,​ Abflug, Ankunft) 
 +</​WRAP>​ 
 + 
 +====Aufgaben==== 
 +**ER-Diagramm Universität**\\ 
 +Gegeben ist das ER-Diagramm Universität:​ 
 + 
 +{{ERUniversitaet.png}} 
 + 
 +a) Warum muss die //​prüft//​-Beziehung als ternäre Beziehung modelliert werden?\\ 
 +b) Überführe das ER-Diagramm in das Relationenmodell. 
 + 
db/ternaere_beziehungen.txt · Zuletzt geändert: 2019/05/03 09:58 von roehner