Databases Reference
In-Depth Information
die Logik wird im Fall solcher Vergleiche wie
NULL>=2000
um
den dritten Wahrheitswert „unbekannt“ ergänzt.
X
Y
NOT X
X AND Y
X OR Y
Drei-wertige Lo-
gik
w w
f
w
w
w f
f
f
w
w u
f
u
w
f
w
w
f
w
f
f
w
f
f
f
u
w
f
u
u
w
u
u
w
u
f
u
f
u
u
u
u
u
u
Abb. 6-3:
Wahrheitstafel der drei-wertigen Logik
Diese sinnvolle Erweiterung hat weitreichende Konsequenzen.
Zunächst müssen die aus Abb. 6-2 bekannten Fälle um den
Wert „unbekannt“ ergänzt werden. Das Resultat ist in Abb. 6-3
beschrieben, „u“ steht für „unbekannt“. Weiterhin gilt, dass ein
AND
nur nach „wahr“ ausgewertet wird, wenn beide Teilbedin-
gungen „wahr“ sind, ist eine „falsch“, so ist auch das Ergebnis
„falsch“. In den restlichen Fällen kommt unbekannt heraus.
Ähnlich konsequent ist die Umsetzung beim
OR
, das „wahr“
wird, wenn eine Teilbedingung „wahr“ ist, und „falsch“ wird,
wenn beide Teilbedingungen nach „falsch“ ausgewertet wer-
den.
Für die vorgestellten SQL-Befehle hat die drei-wertige Logik
die Auswirkung, dass man klar formulieren muss, ob man den
Fall der Auswertung nach „wahr“ oder nach „nicht falsch“
meint, da letzteres auch „unbekannt“ einschließt. Für die bisher
vorgestellten Befehle
UPDATE
und
DELETE
gilt, dass sie nur
ausgeführt werden, wenn die
WHERE
-Bedingung nach „wahr“
ausgewertet wird. Dies soll durch folgendes kleines Spielbei-
spiel verdeutlicht werden.
Die Liste der Verkäufer wird wie folgt ergänzt und ausgegeben:
INSERT INTO Verkaeufer
VALUES(1006,'Uta',NULL,1500);
SELECT * FROM Verkaeufer
Unterscheidung
„wahr“ und
„nicht falsch“
133