Databases Reference
In-Depth Information
2.1.3 Tupel
Ein Tupel
t
ist gegeben durch eine Menge von
Attributen
. Ein Beispiel für ein Tupel
ist im folgenden dargestellt:
t ::= [kunden_nr = 101,
name = 'Stein',
vorname = 'Peter',
geburtstag = DATE '1967-09-13',
größe = 184 cm,
straße = 'Moordamm 24',
plz = '23863',
ort = 'Kayhude',
personenstand = ledig]
Beachte:
Die Reihenfolge der Attribute in den Klammern spielt keine Rolle.
Ein Attribut-Bezeichner darf in einem Tupel jeweils nur einmal auftreten. Falls
es für ein Attribut mehrere Werte gibt, ist dann der entsprechende Wert als
Menge zu bezeichnen, z. B.:
Hobby = {Fahrradfahren, Fremdsprachen, Lesen}.
Wir weisen allerdings hier schon darauf hin, dass in relationalen Datenbanken
die Domänen nicht strukturiert sein dürfen, also insbesondere keine Mengen
oder Folgen sein können.
4
Zwei Tupel sind dann identisch, wenn sie genau dieselben Attribute mit jeweils
denselben Werten haben.
Für ein Tupel
t
und einen Attribut-Bezeichner
r
ist
t.r
der Wert des Attributes
r
in
dem Tupel
t
. So hat in dem obigen Beispiel
t.ort
den Wert
'Kayhude'
.
Zwei Tupel
r
und
s
sind
widersprüchlich
, wenn es einen Attribut-Bezeichner
a
gibt,
der sowohl in
r
als auch in
s
vorkommt und für den
r.a
≠
s.a
ist. So sind die Tupel
r1 ::= [name='Meyer', vorname='Peter']
und
s1 ::= [name='Meyer', vorname='Hans', ort='Bremerhaven']
widersprüchlich, da
r2.vorname
s2.vorname
. Zwei Tupel, die nicht widersprüch-
lich sind, werden als
widerspruchsfrei
bezeichnet. So sind die Tupel
≠
r2 ::= [name='Meyer', vorname='Peter',
geburtstag = DATE'1966-10-16']
und
s2 ::= [vorname='Peter', name='Meyer', ort='Bremerhaven']
widerspruchsfrei.
4Auf die Möglichkeiten, strukturierte Datentypen in objektrelationalen Datenbanken zu defi-
nieren, gehen wir in Kapitel 9 ein.