Grundlagen der Logik - Technologie der Informationssysteme ...
Grundlagen der Logik - Technologie der Informationssysteme ...
Grundlagen der Logik - Technologie der Informationssysteme ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Concept<br />
Content<br />
.<br />
.<br />
Information<br />
Topic<br />
<strong>Grundlagen</strong> <strong>der</strong> <strong>Logik</strong><br />
Datenbanken I (Systemorientierte Informatik IV)<br />
Sommersemester 2007<br />
Gunar Fiedler (fiedler@is.informatik.uni-kiel.de)<br />
Institut für Informatik<br />
Arbeitsgruppe ”<br />
<strong>Technologie</strong> <strong>der</strong> <strong>Informationssysteme</strong>“<br />
Christian-Albrechts-Universität zu Kiel<br />
Um eine unmissverständliche Anfrage an ein Datenbanksystem zu stellen, ist eine<br />
formale Definition <strong>der</strong> Anfragesprache notwendig. Diese Definition bestimmt, welche<br />
Anfragen als gültig betrachtet werden und welche Bedeutung (Semantik) diesen<br />
Anfragen zugeordnet ist.<br />
Wir behandeln hier zwei Ansätze formaler Sprachen für die Formulierung von Anfragen<br />
an Datenbanksysteme. Die relationale Algebra definiert eine Menge von möglichen<br />
Operationen über den Relationen einer Datenbank. Diese Operationen bilden<br />
die Relationen <strong>der</strong> Datenbank auf an<strong>der</strong>e Relationen ab. Eine Anfrage <strong>der</strong> relationalen<br />
Algebra ist eine Folge von Anweisungen, die angibt, welche Operationen<br />
auf welche Relationen angewendet werden müssen, um das gewünschte Ergebnis zu<br />
erhalten.<br />
Der relationale Tupelkalkül geht einen an<strong>der</strong>en Weg: mit Hilfe einer Sprache werden<br />
die Eigenschaften des gewünschten Ergebnisses beschrieben. Das Datenbanksystem<br />
bestimmt aus den Relationen <strong>der</strong> Datenbank den Zustand, <strong>der</strong> diese Eigenschaften<br />
erfüllt.<br />
Beide Anfragesprachen benutzen die mathematischen <strong>Grundlagen</strong> <strong>der</strong> <strong>Logik</strong>. Deshalb<br />
beginnen wir in diesem Skript mit einer kurzen Einführung in die Begriffswelt<br />
<strong>der</strong> <strong>Logik</strong>. Dabei beschränken wir uns auf die Elemente, die für unsere Anfrageformulierung<br />
wichtig sind.<br />
1 Aussagenlogik<br />
1.1 Formeln, Interpretationen und Modelle<br />
Die Aussagenlogik stellt einen Rahmen für die Bestimmung des Wahrheitgehalts von<br />
Aussagen bzgl. einer gegebenen Welt bereit. Eine Aussage wird dabei aus Teilaussagen<br />
zusammengesetzt, die mittels Junktoren verbunden werden. Die Basis bilden<br />
strukturlose Elementaraussagen, die nicht weiter zerlegt werden können.<br />
Betrachten wir folgende Aussagen:<br />
A 1 : ”<br />
Es regnet.“<br />
A 2 : ”<br />
Die Straße ist nass.“
1 Aussagenlogik Datenbanken I<br />
Aus beiden (Elementar-)Aussagen können weitere Aussagen zusammengesetzt werden:<br />
A 3 : ”<br />
Es regnet und die Straße ist nass.“<br />
A 4 : ”<br />
Wenn es regnet, ist die Straße nass.“<br />
A 5 : ”<br />
Die Straße ist nicht nass.“<br />
A 6 : ”<br />
Wenn die Straße nass ist, regnet es.“<br />
A 7 : ”<br />
Wenn es regnet, ist die Straße nass. Die Straße ist nicht nass. Es regnet nicht.“<br />
A 8 : ”<br />
Die Straße ist genau dann nass, wenn es regnet.“<br />
Das Verbinden von Teilaussagen zu komplexeren Aussagen geschieht mit Hilfe von<br />
Junktoren. Typische Junktoren sind ”<br />
und“ (∧), ”<br />
o<strong>der</strong>“ (∨), ”<br />
nicht“ (¬), die Implikation<br />
(⇒) und die Äquivalenz (⇔). Mit Hilfe dieser Symbole lassen sich die Aussagen<br />
A 3 bis A 8 z.B. wie folgt als Formeln schreiben:<br />
A 3 : A 1 ∧ A 2<br />
A 4 : A 1 ⇒ A 2<br />
A 5 : ¬A 2<br />
A 6 : A 2 ⇒ A 1<br />
A 7 : (A 1 ⇒ A 2 ) ∧ (¬A 2 ) ∧ (¬A 1 )<br />
A 8 : A 1 ⇔ A 2<br />
Bis jetzt ist eine Aussage nur ein syntaktischer Ausdruck, dem eine Bedeutung (Semantik)<br />
zugeordnet werden muss. Der Wahrheitswert einer Aussage bestimmt sich<br />
aus den Wahrheitswerten <strong>der</strong> Teilaussagen und <strong>der</strong> Verknüpfung dieser Wahrheitswerte<br />
durch den Junktor. Als Wahrheitswerte werden üblicherweise wahr“ (W ) und<br />
”<br />
falsch“ (F ) benutzt. Die Verknüpfungen können mit Hilfe von Wertetabellen dargestellt<br />
”<br />
werden:<br />
A ∧ B A ist falsch A ist wahr<br />
B ist falsch falsch falsch<br />
B ist wahr falsch wahr<br />
A ∨ B A ist falsch A ist wahr<br />
B ist falsch falsch wahr<br />
B ist wahr wahr wahr<br />
A ⇒ B A ist falsch A ist wahr<br />
B ist falsch wahr falsch<br />
B ist wahr wahr wahr<br />
A ⇔ B A ist falsch A ist wahr<br />
B ist falsch wahr falsch<br />
B ist wahr falsch wahr<br />
¬A A ist falsch A ist wahr<br />
wahr falsch<br />
2 SS 2007, Gunar Fiedler, ISE@CAU
Datenbanken I<br />
1 Aussagenlogik<br />
Der Wahrheitswert einer Elementaraussage ergibt sich aus <strong>der</strong> betrachteten Welt.<br />
Nehmen wir folgende Situationen an:<br />
Situation 1 Situation 2 Situation 3<br />
A 1 ist wahr A 1 ist falsch A 1 ist falsch<br />
A 2 ist wahr A 2 ist wahr A 2 ist falsch<br />
In Situation 1 sind A 1 und A 2 beide wahr. Ein Blick in die Wertetabellen <strong>der</strong> Junktoren<br />
verrät, dass demnach auch A 3 , A 4 , A 6 und A 8 wahr sind. A 5 ist falsch. Für<br />
A 7 wenden wir die Verknüpfung über mehrere Stufen an: A 1 ⇒ A 2 ist nach Wertetabelle<br />
wahr und ¬A 2 ist falsch. Demnach ist (A 1 ⇒ A 2 ) ∧ (¬A 2 ) falsch. ¬A 1 ist<br />
ebenso falsch. Deshalb folgt, dass die Gesamtaussage A 7 falsch ist.<br />
A 3 A 4 A 5 A 6 A 7 A 8<br />
Situation 1 W W F W F W<br />
Situation 2 F W F F F F<br />
Situation 3 F W W W W W<br />
Mathematisch können wir die Situationen als Funktionen auffassen, die den Aussagen<br />
jeweils einen Wahrheitswert zuweisen. Diese Funktionen nennen wir in Zukunft<br />
Interpretationen. Wenn eine Formel ϕ unter einer Interpretation I zu wahr ausgewertet<br />
wird, sagen wir: ”<br />
I ist ein Modell von ϕ.“ und schreiben I |= ϕ, beispielsweise<br />
ist die Situation 1 ein Modell <strong>der</strong> Formel A 3 :<br />
|= A 3<br />
Die Situation 2 ist dagegen kein Modell <strong>der</strong> Formel A 6 :<br />
A 6<br />
SS 2007, Gunar Fiedler, ISE@CAU 3
1 Aussagenlogik Datenbanken I<br />
Eine Formel ϕ heißt erfüllbar, wenn es eine Interpretation gibt, unter <strong>der</strong> ϕ zu wahr<br />
ausgewertet wird. In unserem Beispiel sind die Aussagen A 1 bis A 8 demnach alle<br />
erfüllbar. Eine Formel heißt allgemeingültig, wenn sie unter allen Interpretationen zu<br />
wahr ausgewertet wird. Allgemeingültige Formeln werden auch Tautologien genannt.<br />
In unserem Beispiel ist die Aussage A 4 eine Tautologie (wenn angenommen wird,<br />
dass nur die drei gegebenen Situationen existieren.) Da die konkrete Interpretation<br />
für den Wahrheitswert einer Tautologie keine Rolle spielt, lässt man sie weg und<br />
schreibt<br />
|= A 4<br />
1.2 Theorien und Ableitungen<br />
Das Wissen über Modelle von Formeln kann benutzt werden, um aus einer gegebenen<br />
Menge von Formeln diejenigen Formeln abzuleiten, die zwingend auch gelten. Wenn<br />
beispielsweise bekannt ist, dass die Aussagen A 1 und A 2 beide wahr sind, dann wissen<br />
wir auch (aufgrund <strong>der</strong> Definition <strong>der</strong> Junktoren), dass u.a. auch die Formel A 1 ∨ A 2<br />
wahr ist. An<strong>der</strong>s gesprochen: alle Interpretationen, die Modell von A 1 und Modell<br />
von A 2 sind, sind auch Modell von A 1 ∨ A 2 . Ein zweites Beispiel: Alle Modelle<br />
<strong>der</strong> Formel A 1 ∧ A 2 sind auch Modell <strong>der</strong> Formel A 1 und Modell <strong>der</strong> Formel A 2 .<br />
An<strong>der</strong>erseits gilt dies nicht zwingend für A 1 ∨ A 2 : in unserem Beispiel sind Situation<br />
1 und Situation 2 Modelle <strong>der</strong> Formel A 1 ∨ A 2 , die Situation 2 ist aber kein Modell<br />
<strong>der</strong> Formel A 1 .<br />
Wenn jedes Modell einer Formelmenge Φ auch Modell einer Formel ψ ist, dann<br />
folgt ψ aus Φ, geschrieben Φ |= ψ. Die Formelmenge Φ nennen wir eine Theorie.<br />
Eine Interpretation I ist Modell einer Theorie, wenn sie Modell je<strong>der</strong> Formel <strong>der</strong><br />
Theorie ist. Wenn eine Theorie mindestens ein Modell hat, nennen wir sie konsistent,<br />
ansonsten inkonsistent.<br />
Wenn eine Theorie (z.B. T = {A 1 , A 2 }) gegeben ist, dann wäre es interessant zu<br />
wissen, welche Formeln auch gelten. Die Folgerungsrelation |= definiert dies zwar,<br />
gibt aber keine Möglichkeit zur Bestimmung <strong>der</strong> Menge vor. Aus diesem Grunde<br />
definieren wir eine Ableitungsrelation {ϕ 1 , ..., ϕ n } ⊢ ψ, indem wir Ableitungsregeln<br />
(Inferenzregeln) angeben. Ableitungsregeln werden folgen<strong>der</strong>maßen geschrieben:<br />
ϕ 1 , ..., ϕ n<br />
ψ<br />
Die Formelmenge ϕ 1 , ..., ϕ n stellt die Voraussetzung <strong>der</strong> Regel dar. Wenn jede <strong>der</strong><br />
Formeln <strong>der</strong> Voraussetzung abgeleitet werden kann, dann kann auch die Konsequenz<br />
<strong>der</strong> Regel, die Formel ψ unterhalb des Strichs, abgeleitet werden. Wichtige Ableitungsregeln<br />
sind:<br />
Modus Ponens (Implikationsbeseitigung): Wenn es eine Implikation gibt und<br />
die Voraussetzung <strong>der</strong> Implikation abgeleitet werden kann, dann kann man auch die<br />
Konsequenz ableiten:<br />
4 SS 2007, Gunar Fiedler, ISE@CAU
Datenbanken I<br />
1 Aussagenlogik<br />
⊢ ϕ<br />
⊢ ϕ ⇒ ψ<br />
⊢ ψ<br />
Und-Beseitigung: Wenn eine Konjunktion ableitbar ist, dann auch jede <strong>der</strong> Teilformeln:<br />
⊢ ϕ 1 ∧ ... ∧ ϕ n<br />
⊢ ϕ i<br />
Und-Einführung: Wenn eine Menge von Formeln ableitbar ist, dann auch ihre<br />
Konjunktion:<br />
⊢ ϕ 1 , ..., ⊢ ϕ n<br />
⊢ ϕ 1 ∧ ... ∧ ϕ n<br />
Unit-Resolution: Wenn eine Disjunktion zusammen mit <strong>der</strong> Negation einer <strong>der</strong><br />
beiden Teilformeln ableitbar ist, dann ist die an<strong>der</strong>e Teilformel ableitbar:<br />
⊢ ϕ 1 ∨ ϕ 2 , ⊢ ¬ϕ 2<br />
⊢ ϕ 1<br />
Es gibt noch weitere Ableitungsregeln. In unserem Beispiel lässt sich folgende Ableitung<br />
bilden: wir gehen davon aus, dass Aussage A 4 allgemeingültig ist ( ”<br />
Wenn es<br />
regnet, ist die Straße nass.“). Wir sehen aus dem Fenster und stellen fest, dass es<br />
regnet.<br />
∅ ⊢ A 1 (Elementaraussage <strong>der</strong> Welt)<br />
∅ ⊢ A 1 ⇒ A 2 (als Tautologie akzeptiert, ”<br />
Wissen“)<br />
nach Modus Ponens folgt nun<br />
{A 1 , (A 1 ⇒ A 2 )} ⊢ A 2<br />
o<strong>der</strong> an<strong>der</strong>s ausgedrückt: die Straße ist nass.<br />
1.3 Anwendungen <strong>der</strong> Aussagenlogik in relationalen Datenbanken<br />
Wir werden die Erkenntnisse über die Aussagenlogik sowohl in <strong>der</strong> relationalen Algebra<br />
als auch im relationalen Tupelkalkül benutzen, um Bedingungen über Tupeln<br />
auszudrücken. Jedes Tupel ist vergleichbar mit einer Situation im obigen Beispiel.<br />
Für unsere Tupel können wir Elementaraussagen definieren, indem wir die Prädikate<br />
<strong>der</strong> den Attributen zugeordneten Datentypen benutzen. Sei z.B. ein Relationenschema<br />
ANGEST ELLT ER(Name, W ohnort, Nie<strong>der</strong>lassung, Gehalt) gegeben.<br />
Den Attributen Name, W ohnort und Nie<strong>der</strong>lassung sei <strong>der</strong> Datentyp ”<br />
Zeichenkette“<br />
zugeordnet. Der Datentyp ”<br />
Zeichenkette“ verfüge über ein Gleichheitsprädikat<br />
=, dass auf lexikalische Gleichheit prüft. Dem Attribut ”<br />
Gehalt“ seien neben<br />
einem Gleichheitsprädikat auch Ordnungsprädikate zugeordnet. Dann<br />
können wir folgende Elementaraussagen formulieren:<br />
A 9 : W ohnort = ′ Kiel ′<br />
SS 2007, Gunar Fiedler, ISE@CAU 5
2 Prädikatenlogik erster Stufe Datenbanken I<br />
A 10 : W ohnort = Nie<strong>der</strong>lassung<br />
A 11 : Gehalt > 4000<br />
Wir betrachten folgenden Zustand für das Relationenschema ANGEST ELLT ER<br />
(die erste Spalte enthalte Variablennamen für die einzelnen Tupel, damit wir sie<br />
referenzieren können):<br />
Name Wohnort Nie<strong>der</strong>lassung Gehalt<br />
t 1 Müller Kiel Kiel 3500<br />
t 2 Meyer Kiel Rendsburg 4000<br />
t 3 Petersen Flensburg Flensburg 4300<br />
t 4 Schmidt Lübeck Hamburg 4400<br />
Die vier Tupel entsprechen den vier möglichen Situationen ( mögliche Welten“, engl.<br />
”<br />
possible worlds“.) Wir erhalten folgende Wahrheitswerte:<br />
”<br />
A 9 A 10 A 11 A 10 ∧ A 11<br />
t 1 W W F F<br />
t 2 W F F F<br />
t 3 F W W W<br />
t 4 F F W F<br />
Demnach ist t 1 ein Modell <strong>der</strong> Aussagen A 9 und A 10 (t 1 |= A 9 , t 1 |= A 10 ). Das Tupel<br />
t 3 ist z.B. ein Modell <strong>der</strong> Aussagen A 10 , A 11 und A 10 ∧ A 11 (t 3 |= A 10 , t 3 |= A 11 ,<br />
t 3 |= (A 10 ∧ A 11 ).)<br />
2 Prädikatenlogik erster Stufe<br />
Die Aussagenlogik erlaubt es nicht, Aussagen über Mengen von möglichen Welten zu<br />
treffen. Wenn wir unser Angestellten-Relationenschema aus dem letzten Abschnitt<br />
als Beispiel nehmen, dann kann die Aussage ”<br />
Alle Angestellten <strong>der</strong> Hamburger Nie<strong>der</strong>lassung<br />
verdienen mehr als 3000 e.“ nicht mit Hilfe <strong>der</strong> Aussagenlogik formuliert<br />
werden 1 . Aus diesem Grunde erweitern wir unseren Formelbegriff um folgende Konstrukte:<br />
• Wir führen Variablen ein. 2 Wir benutzen hier getypte Variablen (analog zur<br />
Diskussion über die Attribute des relationalen Datenmodells.)<br />
1 Die Aussage kann natürlich als Elementaraussage über den Nie<strong>der</strong>lassungen formuliert werden.<br />
Allerdings ist es dann nicht mehr möglich, Zusammenhänge z.B. zum Gehalt eines einzelnen<br />
Angestellten <strong>der</strong> Nie<strong>der</strong>lassung herzustellen.<br />
2 W ohnort, Nie<strong>der</strong>lassung und Gehalt in den Formeln <strong>der</strong> Aussagenlogik sind keine Variablen in<br />
diesem Sinne, da die Formel jeweils immer für eine ganz bestimmte Welt (für ein ganz bestimmtes<br />
Tupel) ausgewertet wurde; dort sind den Attributen aber eindeutige Werte zugeordnet.<br />
6 SS 2007, Gunar Fiedler, ISE@CAU
Datenbanken I<br />
2 Prädikatenlogik erster Stufe<br />
• Es werden Prädikate definiert. Die Aussagen <strong>der</strong> Aussagenlogik entsprechen<br />
0-stelligen Prädikaten, z.B. EsRegnet(). Wir erlauben aber jetzt auch Prädikate<br />
höherer Stelligkeit, z.B. IstNass(x) o<strong>der</strong> MuendetIn(x, y), wobei <strong>der</strong><br />
Wertebereich <strong>der</strong> Variablen x und y die Menge aller Straßen ist.<br />
• Weiterhin existieren Quantoren: sei ϕ eine Formel <strong>der</strong> Prädikatenlogik erster<br />
Stufe. Dann sind auch<br />
(∃x)(ϕ)<br />
(∀x)(ϕ)<br />
es gibt“<br />
”<br />
für alle“<br />
”<br />
Formeln <strong>der</strong> Prädikatenlogik erster Stufe, wobei die Variable x in ϕ ”<br />
frei“ sein<br />
muss: sie darf in ϕ noch nicht an einen Quantor (∃ o<strong>der</strong> ∀) gebunden sein.<br />
Mit Hilfe <strong>der</strong> Quantoren lassen sich jetzt Aussagen über Mengen von Objekten<br />
machen, beispielsweise ”<br />
Es gibt eine nasse Straße“:<br />
(∃x)(IstNass(x))<br />
o<strong>der</strong> ”<br />
Jede Straße mündet in eine an<strong>der</strong>e Straße.“<br />
(∀x)((∃y)(MuendetIn(x, y)))<br />
Die üblichen Junktoren <strong>der</strong> Aussagenlogik bleiben uns erhalten: ”<br />
Wenn es regnet,<br />
sind alle nichtüberdachten Straßen nass.“:<br />
EsRegnet() ⇒ (∀x)((¬Ueberdacht(x)) ⇒ IstNass(x))<br />
Nicht alle Variablen müssen an Quantoren gebunden sein: ”<br />
Die nassen Straßen“<br />
IstNass(x)<br />
Eine Interpretation einer Formel <strong>der</strong> Prädikatenlogik erster Stufe ist eine Funktion,<br />
die allen Prädikaten eine Ausprägung (Extension) zuordnet, d.h. eine Menge von<br />
Tupeln, die das Prädikat erfüllen. 3<br />
Eine Variablenbelegung ϱ ordnet je<strong>der</strong> Variablen einen Wert ihres Wertebereichs zu.<br />
Damit können wir die |= - Relation definieren:<br />
I, ϱ |= P (x 1 , ..., x n ) gdw. (ϱ(x 1 ), ..., ϱ(x n )) ist in <strong>der</strong> durch I gegebenen Ausprägung<br />
des Prädikats P enthalten.<br />
Beispiel: Betrachten wir die Formel IstNass(x). Sei die Menge aller Straßen S =<br />
{Olshausenstr, W estring, W aitzstr, Ostring}. Die Interpretation I weise dem Prädikat<br />
IstNass die Menge {Olshausenstr, W estring, W aitzstr} zu. Die Variablenbelegung<br />
ϱ 1 weise <strong>der</strong> Variablen x den Wert W estring zu. Dann gilt I, ϱ 1 |= IstNass(x),<br />
3 Korrekterweise ist die Interpretation ein Tripel bestehend aus dem Wertebereich, <strong>der</strong> Belegung<br />
<strong>der</strong> Konstantensymbole und <strong>der</strong> Prädikatsausprägung, aber dies vernachlässigen wir hier.<br />
SS 2007, Gunar Fiedler, ISE@CAU 7
3 Mehrwertige <strong>Logik</strong>en Datenbanken I<br />
da ϱ 1 (x) = W estring und W estring ∈ {Olshausenstr, W estring, W aitzstr}. Wenn<br />
wir die Variablenbelegung ϱ 2 betrachten, die <strong>der</strong> Variablen x den Wert Ostring zuweist,<br />
dann gilt I, ϱ 2 IstNass(x), da Ostring /∈ {Olshausenstr, W estring, W aitzstr}.<br />
Wenn wir aber die Interpretation I 2 betrachten, die dem Prädikat IstNass die<br />
Menge {Olshausenstr, W estring, W aitzstr, Ostring} zuordnet, dann gilt I 2 , ϱ 2 |=<br />
IstNass(x).<br />
Für die Junktoren ist die |= - Relation entsprechend <strong>der</strong> Aussagenlogik definiert.<br />
Für die Quantoren gilt:<br />
I, ϱ |= (∀x)(ϕ) gdw. I, ϱ ′ |= ϕ für alle möglichen ϱ ′ , die sich von ϱ höchstens in <strong>der</strong><br />
Belegung von x unterscheiden.<br />
I, ϱ |= (∃x)(ϕ) gdw. es gibt eine Variablenbelegung ϱ ′ , die sich von ϱ höchstens in<br />
<strong>der</strong> Belegung von x unterscheidet, so dass gilt: I, ϱ ′ |= ϕ.<br />
Wenn I, ϱ |= ϕ für alle Belegungen ϱ gilt, dann schreiben wir auch I |= ϕ und<br />
sagen I erfüllt ϕ bzw. I ist ein Modell von ϕ. Die Definitionen <strong>der</strong> Erfüllbarkeit und<br />
Allgemeingültigkeit orientieren sich an denen <strong>der</strong> Aussagenlogik.<br />
Wir werden die Prädikatenlogik erster Stufe im Kontext des relationalen Tupelkalküls<br />
benutzen, um Anfragen an Datenbanksysteme zu formulieren.<br />
3 Mehrwertige <strong>Logik</strong>en<br />
Bisher haben wir zweiwertige <strong>Logik</strong>en betrachtet: eine Aussage war immer entwe<strong>der</strong><br />
wahr o<strong>der</strong> falsch. Es ist jedoch nicht in allen Situationen möglich, diese Entscheidung<br />
zu treffen: manchmal ist eine Aussage ”<br />
ein bisschen wahr und ein bisschen falsch“,<br />
manchmal wissen wir nicht, ob eine Aussage wahr o<strong>der</strong> falsch ist. Betrachten wir<br />
z.B. folgende Personen:<br />
Anna Kristina Joe Sandra Thomas<br />
blondes Haar rotes Haar Glatze Welche Haarfarbe? Glatze o<strong>der</strong> Haare?<br />
Anna hat offensichtlich blondes Haar. Kristina hat rotes Haar und Joe trägt eine<br />
Glatze. Sandra färbt sich öfters die Haare, deshalb weiß man es nie so genau, welche<br />
Haarfarbe sie momentan hat. Da man Thomas nur mit seinem Helm sieht, weiß man<br />
nicht, ob er eine Glatze trägt bzw. welche Farbe seine Haare haben. Wenn wir eine<br />
Relation mit den Haarfarben <strong>der</strong> Personen aufschreiben, dann kann man für Anna<br />
und Kristina eindeutig ’blond’ bzw. ’rot’ eintragen. Joe hat keine Haare und demnach<br />
auch keine Haarfarbe. Bei Sandra kennen wir die Farbe nicht und bei Thomas sind<br />
8 SS 2007, Gunar Fiedler, ISE@CAU
Datenbanken I<br />
3 Mehrwertige <strong>Logik</strong>en<br />
wir uns nicht sicher, ob er eine Haarfarbe hat. Unsere ”<br />
Unwissenheit“ können wir<br />
mit einem null-Wert im Wertebereich des Attributs Haarfarbe ausdrücken:<br />
Name<br />
Anna<br />
Kristina<br />
Joe<br />
Sandra<br />
Thomas<br />
Haarfarbe<br />
blond<br />
rot<br />
null<br />
null<br />
null<br />
Angenommen, in <strong>der</strong> ”<br />
realen Welt“ gibt es nur die Haarfarben blond, rot, braun<br />
und schwarz. Wir können eine Aussage A 12 formulieren: Haarfarbe = ′ blond ′ ∨<br />
Haarfarbe = ′ rot ′ ∨ Haarfarbe = ′ braun ′ ∨ Haarfarbe = ′ schwarz ′ . Offensichtlich<br />
gilt:<br />
Name : Anna, Haarfarbe : blond |= A 12<br />
Name : Kristina, Haarfarbe : rot |= A 12<br />
Obwohl wir alle möglichen Haarfarben aufzählen, fallen Joe, Sandra und Thomas<br />
unter den Tisch. Dies ist in <strong>der</strong> Tatsache begründet, dass <strong>der</strong> null-Wert <strong>der</strong> Haarfarbe<br />
ein künstlicher Wert ist, <strong>der</strong> keine Entsprechung in <strong>der</strong> ”<br />
realen Welt“ hat. Er<br />
vermischt das konkrete Datum Haarfarbe mit dem Wissen über die Existenz des<br />
Datums Haarfarbe.<br />
Wir können eine Aussage A 13 definieren: ¬Haarfarbe = ′ blond ′ . Für Kristina und<br />
Joe ergibt dies das gewünschte Ergebnis. Bei Sandra und Thomas wissen wir aber<br />
nicht, ob sie evtl. doch blond sind. Wenn dies <strong>der</strong> Fall ist, wäre die Antwort unseres<br />
Systems falsch.<br />
Aus diesem Grunde kann die klassische zweiwertige <strong>Logik</strong> erweitert werden. Der<br />
hier vorgestellte Ansatz wurde von Jan ̷Lukasiewicz 1920 eingeführt. Es wird ein<br />
dritter Wahrheitswert definiert, <strong>der</strong> zwischen ”<br />
wahr“ und ”<br />
falsch“ angesiedelt ist.<br />
Der Wahrheitsgehalt dieses Werts wird als ”<br />
möglich, aber nicht bewiesen“ gedeutet.<br />
Wir könnten also das Prädikat ”<br />
=“ des Datentyps Haarfarbe so verän<strong>der</strong>n:<br />
=(x,y) blond rot schwarz braun null<br />
blond W F F F M<br />
rot F W F F M<br />
schwarz F F W F M<br />
braun F F F W M<br />
null M M M M M<br />
Das Prädikat sagt jetzt folgendes aus: die Werte blond, rot, schwarz und braun werden<br />
untereinan<strong>der</strong> im üblichen Sinne verglichen. Wenn einer <strong>der</strong> Werte null ist, dann<br />
ist das Vergleichsergebnis möglicherweise wahr, möglicherweise aber auch falsch.<br />
SS 2007, Gunar Fiedler, ISE@CAU 9
3 Mehrwertige <strong>Logik</strong>en Datenbanken I<br />
Wir müssen natürlich die Wertetabellen <strong>der</strong> Junktoren anpassen:<br />
A ∧ B A ist falsch A ist möglich A ist wahr<br />
B ist falsch falsch falsch falsch<br />
B ist möglich falsch möglich möglich<br />
B ist wahr falsch möglich wahr<br />
Wenn eine <strong>der</strong> Teilaussagen falsch ist, dann kann die Gesamtaussage nicht wahr<br />
”<br />
werden. Wenn beide Teilaussagen wahr sind, ist die Gesamtaussage wahr. Wenn<br />
eine Teilaussage wahr und die zweite Teilaussage möglicherweise wahr ist, dann ist<br />
die Gesamtaussage möglicherweise wahr. Wenn beide Teilaussagen möglicherweise<br />
wahr sind, ist die Gesamtaussage möglicherweise wahr.“<br />
A ∨ B A ist falsch A ist möglich A ist wahr<br />
B ist falsch falsch möglich wahr<br />
B ist möglich möglich möglich wahr<br />
B ist wahr wahr wahr wahr<br />
Wenn eine <strong>der</strong> Teilaussagen wahr ist, wird die Gesamtaussage wahr. Wenn beide<br />
”<br />
Teilaussagen falsch sind, ist die Gesamtaussage falsch. Sonst ist die Gesamtaussage<br />
möglich.“<br />
Es gibt zwei Arten <strong>der</strong> Negation: die starke Negation ¬A und die schwache Negation<br />
∼ A:<br />
¬A A ist falsch A ist möglich A ist wahr<br />
wahr möglich falsch<br />
∼ A A ist falsch A ist möglich A ist wahr<br />
wahr wahr falsch<br />
Aufbauend auf den beiden Negationen gibt es zwei Implikationen: A ⇒ B = def<br />
¬A ∨ B, A → B = def ∼ A ∨ B. Man beachte, dass die Tautologien <strong>der</strong> klassischen<br />
<strong>Logik</strong> (z.B. A ∨ ¬A) in <strong>der</strong> dreiwertigen <strong>Logik</strong> nicht unbedingt gelten müssen.<br />
Aufbauend auf <strong>der</strong> mehrwertigen <strong>Logik</strong> lässt sich jetzt z.B. die Anfrage ”<br />
Wer hat<br />
ganz sicher keine blonden Haare?“ von <strong>der</strong> Anfrage ”<br />
Wer hat möglicherweise keine<br />
blonden Haare?“ unterscheiden.<br />
Die hier vorgestellte dreiwertige <strong>Logik</strong> hat immer noch Probleme: Auf die Anfrage<br />
Wer hat möglicherweise blonde Haare?“ qualifiziert sich Joe immer noch, obwohl er<br />
”<br />
als Glatzenträger mit Sicherheit keine blonden Haare hat. Allerdings fällt er bei <strong>der</strong><br />
Anfrage Wer hat mit Sicherheit keine blonden Haare?“ unter den Tisch. Deshalb<br />
”<br />
kann die dreiwertige <strong>Logik</strong> erweitert werden, um verschiedene Arten von null-Werten<br />
zu unterstützen. In unserem Beispiel unterscheidet sich die Bedeutung des null-Werts<br />
für Joe, Sandra und Thomas: bei Joe drückt die null aus, dass es keinen Wert für die<br />
Haarfarbe gibt, bei Sandra, dass die Haarfarbe unbekannt ist und bei Thomas, dass<br />
unbekannt ist, ob es einen Wert für die Haarfarbe gibt. Mit diesen Erweiterungen<br />
werden wir uns hier aber nicht beschäftigen.<br />
10 SS 2007, Gunar Fiedler, ISE@CAU