Databases Reference
In-Depth Information
1) Wir erklären eine der beiden Relationen zur Vater-Relation und setzen den
Fremdschlüssel entsprechend dem oben Gesagten in die Sohn-Relation ein. In
dem ER-Diagramm in Abbildung 3.8 haben wir bei der Relation zwischen Giro-
konto und Kunde die Relation Kunde zur Vater-Relation erklärt. Dieses geschieht
dort durch die Angabe »dominant role« für den Entitätentyp Kunde bei der Be-
arbeitung des Beziehungstyps zwischen den beiden Entitätentypen Kunde und
Girokonto .
2) Wir verzichten darauf, eine der beiden Relationen zur Vater-Relation zu erklä-
ren, und setzen in jede der zwei Relationen einen Fremdschlüssel, der auf die
jeweils andere Relation zeigt. Diese Lösung hat den Vorteil, dass ggf. schnellere
Datenzugriffe in beiden Richtungen möglich sind, aber den gravierenden
Nachteil, dass sichergestellt werden muss, dass bei Änderung eines der beiden
Fremdschlüssel der jeweils andere Fremdschlüssel auch mit aktualisiert wer-
den muss. Dieses kann ggf. durch Einführung eines Triggers erfolgen (vgl. Ka-
pitel 7.3.3).
3) Eine weitere Möglichkeit ergibt sich daraus, dass grundsätzlich zu überlegen
ist, beide Entitätentypen durch eine gemeinsame Relation zu realisieren. Diese
Relation erhält die Attribute von beiden Entitätenmengen (bei Namensgleich-
heit ist vorher ein Attribut umzubenennen), die für den nicht obligatorischen
Entitätentyp in jedem Fall Nullmarken zulassen müssen. Dies ist allerdings bei
einer 0..1:0..1-Beziehung in der Regel problematisch, da für Schlüsselattribute
keine Nullmarken zulässig sind. Die Beziehung zwischen Girokonto und Kunde
könnte dagegen ohne Probleme durch Übernahme der Attribute von Girokonto
in Kunde realisiert werden.
Motor
Fahrzeug
motor_nr = motor_nr
motor_n r
hubraum
anzahl_zylinder
letzte_wartung
integer
integer
integer
date
<pk>
fahrzeug_nr
motor_nr
typ
anzahl_zylinder
intege r
integer
varchar(64)
integer
<pk>
<fk>
Abbildung 3.13: 1:1-Beziehung, realisiert durch einen Fremdschlüssel
Motor
Fahrzeug
motor_nr
fahrzeug_nr
hubraum
anzahl_zylinder
letzte_wartung
intege r
integer
integer
integer
date
<pk>
<fk>
motor_nr = motor_nr
fahrzeug_n r
motor_nr
typ
anzahl_zylinder
integer
integer
varchar(64)
integer
<pk>
<fk>
fahrzeug_nr = fahrzeug_nr
Abbildung 3.14: 1:1-Beziehung, realisiert durch zwei Fremdschlüssel
Behandlung von abhängigen Entitäten
Eine Sonderbehandlung erfahren n:1- oder 1:1-Beziehungen, bei denen die Sohn-
Relation von der Vater-Relation abhängig ist. Da abhängige Entitäten nur im Rah-
 
Search WWH ::




Custom Search