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