07.03.2014 Aufrufe

Grundlagen der Logik - Technologie der Informationssysteme ...

Grundlagen der Logik - Technologie der Informationssysteme ...

Grundlagen der Logik - Technologie der Informationssysteme ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!