Databases Reference
In-Depth Information
<bedingung> := (<bedingung>)
op:=
<
|
<=
|
>
|
>=
|
=
|
<>
Die Regeln besagen, dass sich einfache Bedingungen aus einem
Spaltennamen und einem Wertevergleich zusammensetzen.
Dabei steht „
<>
“ z. B. für „ungleich“, wobei meist auch „
!=
“
genutzt werden kann. Komplexere Bedingungen werden aus
anderen Bedingungen zusammengesetzt, indem sie mit
AND
oder
OR
verknüpft werden. Einzelne Bedingungen können mit
NOT
negiert werden. Um bei komplexeren Bedingungen, die
sich aus mehr als zwei Bedingungen zusammensetzen, zu re-
geln, in welcher Reigenfolge die Auswertung stattfindet, kann
man Bedingungen in Klammern setzen. Dabei wird die innerste
Bedingung, die keine Klammern enthält, zuerst ausgewertet.
[*] Experten wissen, dass es neben der Klammerregel weitere
Auswertungsregeln gibt, z. B. dass
AND
vor
OR
ausgewertet
wird. Weiterhin findet die Auswertung von links nach
rechts statt. Da man sich beim Wechsel des Datenbank-
Managementsystems nicht sicher sein kann, dass diese Re-
geln genau so umgesetzt werden, sollte man auf Klammern,
mit denen man die Auswertungsreihenfolge bestimmt, nicht
unbedingt verzichten.
X
Y
NOT X
X AND Y
X OR Y
w w
f
w
w
Zwei-wertige
Logik
w f
f
f
w
f
w
w
f
w
f
f
w
f
f
Abb. 6-2:
Wahrheitstafel der zwei-wertigen Logik
Zur Erklärung der so genannten Booleschen Verknüpfungen
werden typischerweise Wahrheitstafeln wie in Abb. 6-2 ge-
nutzt, dabei steht „w“ für „wahr“ und „f“ für falsch.
Bei einer kritischen Betrachtung des vorhergehenden Textes
fällt auf, dass von der „eigentlich einfachen Auswertung“ ge-
schrieben wird. Ein Problem tritt auf, wenn ein Attribut den
Wert NULL hat. Wie soll
Gehalt>=2000
ausgewertet werden,
wenn Gehalt den Wert NULL hat?
Zur Lösung dieses Problems wird die bisher vorgestellte zwei-
wertige Logik mit „wahr“ und „falsch“ durch eine drei-wertige
Logik ersetzt. Alle bisherigen Überlegungen sind übertragbar,
Auswertungs-
probleme mit
NULL-Werten
132