Databases Reference
In-Depth Information
Der folgende Verbund ergibt die Relation aller Abteilungen mit demselben Abtei-
lungsleiter. Das Ergebnis enthält nicht die Abteilungen C und E, obwohl in der
Tabelle diese beiden Abteilungen als Abteilungsleiter denselben Eintrag (nämlich
keinen!) haben.
Sel[abt1
≠
abt2] (
Proj[abt1 ::= abtNr, leiter] (Abteilung)
Join[leiter]
Proj[abt2 ::= abtNr, leiter] (Abteilung)
)
Abt1
Leiter
Abt2
D
Hansen, Hannes
A
A
Hansen, Hannes
D
In den Aggregatfunktionen
SUM
,
MAX
,
MIN
,
AVG
werden Tupel mit einer I-Marke bei
der Berechnung nicht berücksichtigt.
Prädikat isUnknown
Das Auftreten einer A-Marke bezeichnen wir im Text durch
UNKNOWN
oder in Tabel-
len kürzer durch ein Fragezeichen. Entsprechend gibt es ein Prädikat
isUnknown(attr)
, um abzufragen, ob ein Attribut einen unbekannten Wert hat.
In arithmetischen Ausdrücken, in denen mindestens eine A-Marke als Argument
auftritt, ist das Ergebnis eine A-Marke. Wenn wir im folgenden
A
für eine A-Marke
setzen, gilt also
8+A=A
, ebenso
0*A=A
(obwohl hier mit einem gewissen Recht
0
als
Ergebnis angenommen werden könnte). Vergleichsoperationen mit einer A-Marke
liefern die logische Konstante
UNKNOWN
. Das gilt auch für Vergleiche wie etwa
A<A+1
oder
A=A
. Dasselbe gilt für die Aggregatfunktionen
SUM
,
MAX
,
MIN
,
AVG
, d.h. beim Vor-
handensein mindestens einer A-Marke ist das Ergebnis
UNKNOWN
.
2.5.3 Dreiwertige Logik
Bei logischen Verknüpfungen von Werten mit
UNKNOWN
kommen wir zu einer drei-
wertigen Logik mit folgenden Verknüpfungstafeln. (Es bezeichnet hier
1=TRUE
,
?=UNKNOWN
und
0=FALSE
).
AND
0
?
1
OR
0
?
1
NOT
0
0
0
0
?
1
1
0
0
0
0
?
?
?
?
1
?
?
?
?
0
?
1
1
1
1
0
1
1
1