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
Search WWH ::




Custom Search