Hi,
Zitat: "Regel zu fehlenden Werten
Indikatoren für fehlende Werte dürfen nicht aus leeren
Zeichenketten, Leerzeichen oder Nullen bestehen. Stattdessen
müssen auf der logischen Ebene ‚Nullwerte‘ vom Datenbanksystem
definiert werden. Diese speziellen Indikatoren müssen auch
bearbeitet werden können." (Kosch, Client/Server
Datenbankentwicklung mit Delphi, Software &
Supportverlag,1999)
Kann mir das irgendwer mal mit seinen Worten erklären?
Vielleicht versteh ich dann was Codd da will.
Bevor NULL erfunden wurde, hatte man sich angewöhnt, irgendwelche Werte für unbekannte Angaben in die Datenbank zu schreiben. Wenn z.B. ein neuer Kunde angelegt wurde, aber dessen Telefonnummer zum Zeitpunkt der Eingabe nicht bekannt war, gab man stattdessen ein Leerzeichen (" ") ein. Bei numerischen Daten war das häufig eine 0 o.Ä.
Die Schwierigkeit ist, zwischen einer echten 0 und einem Platzhalter zu unterscheiden. Hat der Kunde dieses Jahr nun 0 € Umsatz gemacht, oder ist uns sein Umsatz unbekannt?
Codd regt an, einen speziellen Indikator einzuführen - den Wert NULL. NULL besagt schlicht und einfach, daß man über den tatsächlichen Wert nicht verfügt und somit keine Angabe machen kann.
Daß der Indikator bearbeitet werden kann, bedeutet, daß man ihn in der Abfragemethodik berücksichtigt, z.B. kann man ihn unter SQL explizit abfragen (WHERE wert IS NULL). Außerdem ergeben Berechnungen mit NULL immer NULL: 5 * NULL ist NULL (lies: der fünffache Wert einer unbekannten Größe ist auch unbekannt).
Für die Logik gilt analog:
A > NULL
A