Praktische Behandlung von Nullwerten — Realisierung im Molekül-Atom-Datenmodell [chapter]

Harald Schöning
1991 Datenbanksysteme in Büro, Technik und Wissenschaft  
Überblick Der folgende Beitrag gibt einen Überblick über den Umgang mit Nullwerten im Molekül-Atom-Datenmodell (MAD-Modell) und dessen Implementierung PRIMA. Zunächst beschreiben wir einige der Lösungen, die im Relationenmodell für die Behandlung von Nullwerten vorgeschlagen wurden, und stellen dann den Umgang mit Nullwerten im MAD-Modell vor, wie wir ihn in PRIMA realisiert haben. Ziel ist es, den Benutzer weitgehend von den komplexen Auswirkungen mehrwertiger Logik zu befreien. Dazu
more » ... ien. Dazu diskutieren wir auch den Umgang mit Nullwerten innerhalb der komplexen Objekte des MAD-Modells, insbesondere im Zusammenhang mit Quantoren. Nullwerte in Datenbanksystemen Seit vielen Jahren beschäftigt sich die Datenbank-Forschung mit der Darstellung von unvollständiger Information im Relationenmodell. Besonders gut untersucht ist in diesem Zusammenhang die Behandlung von Attributen, deren Wert nicht bekannt ist. Hier kann man unterscheiden zwischen vollständig unbekannten Werten (Nullwerten) und ungenau bekannten Werten, deren Wert man zwar nicht angeben, aber innerhalb des zulässigen Wertebereiches doch einschränken kann (die Farbe ist rot oder blau) [Li79]. Im folgenden werden wir nur den Fall des vollständig unbekannten Attributwertes betrachten. Zunächst stellt sich die Frage, wie man einen unbekannten Attributwert darstellt. Während Date [Da82] vorschlägt, einen speziellen Wert aus dem Wertebereich mit der Semantik "Nullwert" zu belegen, plädiert Codd [Co86] dafür, spezielle "Marken" zur Kennzeichnung von Nullwerten zu verwenden, die nicht zum Wertebereich des Attributes gehören. Der erste Lösungsvorschlag hat den Nachteil, daß die Darstellung von Nullwerten wertebereichsabhängig ist. Damit ist eine einheitlich Behandlung von Nullwerten durch das Datenbanksystem praktisch unmöglich, und jeder Anwendungsprogrammierer muß die Darstellung von Nullwerten für jeden Wertebereich kennen, um Nullwerte entsprechend behandeln zu können. Insbesondere kann natürlich nicht unterschieden werden, ob ein Nullwert dargestellt werden soll, oder wirklich der Wert gemeint ist, der zur Repräsentation von Nullwerten des Wertebereich ausgewählt wurde. Der zweite Ansatz erfordert einige Erweiterungen bei der Auswertung von Ausdrücken. Welches Ergebnis liefert der Vergleich eines Wertes aus einem bestimmten Wertebereich mit einem Wert, der eben nicht aus diesem Wertebereich stammt? Der erste Ansatz zur Behandlung dieser Problematik ordnet dem Vergleich mit einem Nullwert immer einen der Wahrheitswerte TRUE oder FALSE zu (vgl. [DKV89]). Abgesehen davon, daß dies die Semantik des Nullwertes nicht wiedergibt, entstehen dadurch auch Effekte, die den Umgang mit einer solchen Regelung schwierig machen. Ordnet man dem Vergleich mit einem Nullwert z.B. stets FALSE zu, so gilt nicht mehr (NOT (a=5)) ≡ (a≠5). Als Lösungsvorschlag definiert Codd [Co86] einen dritten Wahrheitswert MAYBE (quasi einen Nullwert des Wertebereichs in: Proc.
doi:10.1007/978-3-642-76530-8_36 dblp:conf/btw/Schoning91 fatcat:t67vl5pf7rcwbnfm2hi4hzbqx4