Nullmarken und Dreiwertige Logik

Aus Informatik
Wechseln zu: Navigation, Suche

Nullmarken wurden in Datenbanksysteme eingeführt, um das Fehlen von Informationen darzustellen. Es handelt sich hierbei also um keinen konkreten Wert und der Eintrag NULL darf nicht mit dem numerischen Wert 0 verwechselt werden.


A- und I-Marken

Man unterscheidet zwischen A- und I-Marken, jedoch wird diese Unterscheidung von MySQL nicht vorgenommen.


A-Marken

Die A-Marke (applicable; englisch für anwendbar, zutreffend) steht für einen Wert, der in der Realität vorhanden, jedoch nicht bekannt ist.

Beispiel: Die Körpergröße in der Relation

 Person(Vorname, Nachname, Haarfarbe, Augenfarbe, Körpergröße)


I-Marken

Die I-Marke (inapplicable; englisch für unanwendbar, nicht zutreffend) steht für einen Wert, der in der Realität (noch) nicht vorhanden ist.

Beispiele:

 Abfahrtszeit eines Zuges in einem Bahnhof, in welchem der Zug gar nicht hält.
 Telefonnummer für Personen ohne Telefon.

I-Marken treten auch auf, wenn ein Attribut noch keinen Wert hat. Diese Tatsache kann eine Interpretation zulassen!

Beispiele:

 Fehlendes Lieferdatum 
     -> Der Auftrag wurde noch nicht erfüllt.
 Fehlendes Todesdatum
     -> Die Person lebt noch.


Nullmarken in Tabellen

In der Tabellform werden Nullmarken wie folgt dargestellt:

  • * - - -> I-Marke
  •  ? - - -> A-Marke
  • *? - - -> "Es ist nicht bekannt, ob..."


Beispiel:

Nullmarken Beispieltabelle.jpg

  • Heinz Dieter hat kein Telefon.
  • Die Telefonnummer von Heinz Dieter ist nicht bekannt.
  • Es ist nicht bekannt, ob Wolfgang A. Mozart ein Telefon / einen Telefonanschluss besitzt.


Beispiel für I-Marken in Relationen(1) :

Nullmarken Beispieltabelle I Marken1a.jpg

Beispieltabelle I Marken1b.jpg

  • Lieferdatum und Rechnungsbetrag können I-Marken enthalten.


Beispiel für I-Marken in Relationen(2) :

Nullmarken Beispieltabelle I Marken2b.jpg

  • Da das Lieferdatum nicht angegeben ist, kann angenommen werden, dass die Lieferung noch nicht erfolgt ist.
  • Der Betrag wurde noch nicht berechnet.


IsNull(X) Funktion

In einigen Datenbanksprachen gibt es das Prädikat IsNull(X). Es stellt fest, ob das Attribut X eine Nullmarke enthält. Es ist bei Nullmarken „true“ und bei echten Werten „false“.


Verarbeitung von Nullmarken

Arithmetische Ausdrücke

Ist (mindestens) ein Operand in einem arithmetischen Ausdruck NULL so wird das gesamte Ergebnis NULL.

Beispiel:

 3 + 4 + NULL = NULL

Vergleichsoperatoren

Ist (mindestens) ein Argument NULL so wird der gesamte Ausdruck NULL.

Beispiel:

 6 = 10       ---> False
 5 < 10       ---> True  
 10 > NULL    ---> NULL

Aggregatfunktionen

Bei den Aggregatfunktionen (Summe, Maximum, Minimum, Durchschnitt) ist das Ergebnis NULL, wenn (mindestens) ein Teil der zu untersuchenden Daten NULL ist.

Beispiel:

 Summe(10,3,8,23) = 44
 Maximum(10,3,8,23) = 23
 Summe(10,NULL,8,23) = NULL
 Maximum(NULL,3,8,23) = NULL


Dreiwertige Logik

Da nun auch Nullwerte für boolsche Felder möglich werden, müssen wir die bisher 2-wertige Logik (True - False) auf eine 3-wertige Logik erweitern(True - Unknown - False).

Diese dritte Option in einer Verknüpfungstafel kann auf verschiedene Weisen dargestellt werden:

  • "unknown"
  • "?"
  • "1/2"

Dabei ist die letzte Variante "1/2" am leichtesten zu verstehen:

Da der unbekannte Wert weder wahr (1) noch falsch (0) ist, muss er in einem Bereich dazwischen liegen (1/2).


Die Verknüpfungstafeln für die logischen Grundfunktionen

Nullmarken Dreiwertige Logik AND.jpg

Nullmarken Dreiwertige Logik OR.jpg

Nullmarken Dreiwertige Logik NOT.jpg