Databases Reference
In-Depth Information
Für
i = 1..n
sind die Domänen von
ai
in
R
und in
S
jeweils widerspruchsfrei,
d.h. sie sind identisch oder es ist zumindest möglich, Werte dieser entsprechen-
den Domänen auf Gleichheit zu überprüfen;
Die übrigen Attribut-Bezeichner von
R
und
S
sind jeweils verschieden.
Die Bedingungen 2 und 4 sind gegebenenfalls durch Umbenennungen von Attri-
buten zu erzwingen. An dieser Stelle ist die Operation der Umbenennung essenzi-
ell.
7
Es ist dann
R Join[a1,…an] S
eine neue Relation, die wie folgt definiert ist:
1) Die Attribute von
R Join[a
1
,… a
n
] S
sind genau die Attribute von
R
und
S
.
2) Die Verbindungsattribute
a
1
,… a
n
werden also genau einmal gezählt.
3)
R Join[a
1
,… a
n
]S
enthält für alle Paare von Tupeln von
r
∈
R
und
s
∈
S
, die für alle
Attribute von
a
1
,… a
n definiert sind und jeweils identische Werte besitzen,
jeweils das Tupel
r+s
.
4) Da nach der Voraussetzung für zu verknüpfende
r
und
s
alle Attribute von
a
1
,…
a
n
identische Werte besitzen, sind
r
und
s
widerspruchsfrei
8
, und somit ist
r+s
definiert.
Ein Tupel
r
∈
R
kann mit einem Tupel
s
∈
S,
mit mehreren Tupeln
s
∈
S
oder mit kei-
nem Tupel
s
∈
S
verbunden werden.
Beispiel
Bestellung Join[kunden_nr] Kunde
Bestell_
Nr
Bestell-
datum
Liefer-
datum
Rechnungs-
betrag
Kunden_
Nr
Status
Name
Straße …
151
28.04.2000
02.05.2000
196,75
101
S
Stein, Peter
…
152
30.04.2000
02.05.2000
2270,86
103
S
Randers, Nis
…
153
12.05.2000
105
S
Stuff,
Werner
…
154
15.05.2000
103
S
Randers, Nis
…
7
In XBase fehlt diese Operation. Die JOIN-Anweisung enthält zwar die Möglichkeit, entspre-
chend Punkt 2 die Verbindungsbedingung zu formulieren, aber gleichnamige Feld-Bezeichner
können nicht umbenannt werden. Somit sind die Operationen der Relationenalgebra in XBase
nicht vollständig formulierbar (außer durch explizite Programmierung mit verschachtelten
Programmschleifen - das können wir aber auch in jeder »normalen« Programmiersprache).
8
Vgl. Abschnitt 2.1.3.