Nullwert



Wenn Nullwert (Kurz NULL , NIL oder () ) bezeichnet man in der Informatik einen Zustand, der das Fehlt eines Wertes anzeigen soll. Nach Edgar F. Codd unterscheidet eine Zwei Arten von NULL: die Abwesenheit Eines Wert, Weil keiner existiert ( “ Eigenschaft nicht anwendbar „), oder sterben Abwesenheit, dann eine der Wert (noch) nicht kennt (“ Wert derzeit unbekannt „). [1] Ein Nullwert STAND für stirbt Abwesenheit Einen Wert, ein Nullwert ist aber gleichzeitig einen Wert.

Der Nullwert ist von von Zahl 0, der einen Wert, auch eine Information reprasiert. Sprachlich Wird gelegentlich wo Nullwert von der algebraischen Zahl 0 Durch Aussprache Unterschieden, INDEMAR (Wie im sterben Englischen ) [ ‚nʌl ] gesprochen Wird, um Missverständnisse zu vermeiden.

Beispiel 1

Folgender Beispieltext: Die Bedeutung von NULLPatientendaten und Programmer: In einer Database können Sie festlegen, dass ein Patient eine Diagnose stellen muss. Wurde nach einer Nonne gefragt, wenn in dieser Diagnose keine Diagnose gestellt wird? Ist es nicht einfach?

In Papierlisten ist es deshalb Übliches, Leer Felder durchzustreichen, um zu verdeutlichen, that das Feld Bewusst Fütterung und es Wurde tragen tatsächlich leer sein soll. In Datenbanken ist Felder, der weder warnt noch warnt (oder andere, keinen Wert enthalten), den Wert NULL. Sobald ein Gezielt EIN Wert einträgt, verschwinden NULLund die Eingetragene Wert, der Auch leer (keine Diagnose auch gesund) sein Kann, Wird Gespeichert.

Beispiel 2

Du denkst ja, in deiner Datenbank oder in der langen Liste. Es wurde auch definiert, dass die Spalte von Tabelle nur Zahlen enthalten muss. Trifft eine Nonne Auf einen Schüler, kein Telefon gibt Besitzt, so Würde man anstelle es Telefon im späten Telefonnummernfeld wahrscheinlich EINEN Strich setzen, oder das Zeichen Vielleicht „n / a“ oder ein Fragezeichen. All this Zeichen save beden times: Wert nicht bekannt oder nicht vorhanden. Genau ist das Beste der elektronischen Sicherung der Nullwert.

Darstellung im Computer

Triff den Mann in einer Computerliste wie „Strich“, setzt diese „Strich“ eine digitale Darstellungsform. Es gibt hier zwei Herangehensweisen:

Gleichsetzung vereinbarter gelb Werte mit Undefiniertheit

Hierbei erwählt ein EIN gelber Wert des Feld willkürlich als Nullwert formalisieren. Welche wo Nullwert ist, Wird Entweder aus dem Kontext ersichtlich oder Durcheinander Explizit Dokumentiert Werden.

Sind in Einer Tabelle Zitate von Aposteln Informationen angegeben, so Könnte man in letzte Lücke sterben Zahlenwerte von 1 bis 12 schreiben, sterben Angeb, Welcher der Apostel Jesus hier zitiert Wird. Ist es unbekannt, Könnte man den Wert 13 oder Nonne -1 hinschreiben, und DAMIT mein that nicht bekannt ist, Welcher es war, oder ob es überhaupt ein junger Jesus Krieg, oder that mit Sicherheit kein Jünger Jesus zitiert Wird.

Der Vorteil dieser Methode ist was man Grundsätzliches Dazu Speicherplatz Spart. Es nachteil ist, Dass ein ursprünglich als Nullwert definierter Wert in Konflikt mit Einem tatsächlichen Wert kommen Kann. Denke man bei Obiger einen EINER Liste Nullwert 13, So kann es ja passiert that Einen Tag, wo Apostels Paulus zitiert Wird, und ER Zahl sterben 13 zugewiesen Wird, Nonne Vielleicht unbemerkt im Konflikt mit Steht Ein Zitat Goethe sterben.

Of this Problem ist in der Vergangenheit Wiederholt aufgetreten, unter Anderem als Jahr-2000-Problem .

Nullwert als Chefredakteur Wert

Um obiges Problem zu vermeiden, Kann man den Nullwert unmissverständlich von gelb Wert Trenner, INDEMAR man ein besonderes Zeichen einführt, das in alle Kontext immer nur einen Nullwert ist Höhle.

Eine technische umsetzung bietet sich bei Programmiersprachen an, sterben die Variable als Zeiger erlaub, auch als Verweis auf den eigentlich Wert. Nun Kann man Eine Stelle im Bestimmt Arbeitsspeicher bestimmen, stirbt als Nullwert – und nur als Nullwert – schlechtesten Kandidat Wird. Nun enthielte obige Liste in der Tabelle Spalte keine Zahlen mehr, Sondern nur noch Zeiger auf sterben gesucht Zahlen. Sie sind möglicherweise nicht in der Lage, Ihre Bedürfnisse zu erfüllen.

In der Programmiersprache C existiert für diesen Zweck des sogenannten Nullzeiger (engl. Null – Zeiger ). Im Programm Text Kann Einen Nullzeiger Konstante (Null – Zeiger – Konstante) Durch Einen (belieber) Integer – Konstante Ausdruck (einen Konstanten ganzzahliger Ausdruck , wo Gewiss bedingungen Sie GENUG) Mit Wert 0, optional mit Einem Guss nach void*Versehen, ausgedrückt Werden ( ISO / IEC 9899 : 1999 6.3.2.3 Abs. 3). Die C Standard-Bibliothek Stellt einen Makro NULLzur verfügung, Welches zu Einem Sölch Ausdruck expandiert. [2]

In C ++ Kann Ein Nullzeiger Konstante Keinen Guss nach void*Enthalten (ISO / IEC 14882:. 1998 4.10 Abs 1), stirbt vergoldet in C ++ infolge Auch für die Standard – Makro NULL, Welches DAHER in C ++ meist nur zum Integer-Wert 0expandiert. Wenn stirbt zu other Problemen Führt – so ist this Konstante vom Typ intund kein Zeigertyp – Wurde in C ++ 11 ein neues schlüsselwort für sterben Nullzeigerkonstante in Hollywood: nullptr. This Konstante ist von Einem Eigenen Datentyp ( std::nullptr_t), wo in EINEM belieber Zeigertyp (Daten-, Funktionszeiger), nicht jedoch in EINEM Ganzzahlausdruck Konvertiert Werden Kann.

In C # ist nullder Standardwert für Referenz-Typ Wie Object, String oder Liste. Es ist DAHER bei der verwendung of this Typ von Wichtigkeit, this vor der verwendung zu initialisieren, der Beziehungsweise vor verwendung zu Prufer, sterben ob Variable DERZEIT der Wert nullBesitzt. [3] Einfache Art Wie int can hingegen nicht mit nullbelegt Werden und Müssen DAHER Mit Einem Echten Wert Wie 0 belegt Werden. Seit C # 2.0 ist also jedoch Auch sterben möglichkeit der verwendung von sogenannter Null – Able – Typ, stirbt es erlaub, Auch einfache Art Wie int oder Bool mit nullzu Beschichtung. [4]

Andere Programmierpraktiken, Java und Java , widmen sich dem Schlüsselwort für den Nullwert zur Verfügung. In dynastischen misch Mancha getypten Sprachen Wie Smalltalk Es Gibt ein vordefiniertes Spezielles Null – Objekt, das sterben Funktion Eines kanonischen Nullwertes Wechsel verkraften.

NULL in SQL-Datenbanken [ Bearbeiten |. | Quelltextverarbeitung ]

Relationale Datenbanksysteme setzen Eine Dreiwertige Logik ein, sterben in der Abfrage- und Aktualisierungssprache SQL Realisiert Wird: Hier vergoldet Unbekannt als dritter Wahrheitswert NEBEN Falsch und Richtig . Die üblichen logischen Verknüpfungen und Und waren Angst, aus Mann Falsch = 0, Wahr = 1 und Unbekannt = ½ Setzt. Dann vergoldet zwischen zwei Wahrheitswerten a, b:{\ displaystyle a \ operatorname {UND} b = \ min (a, b)}Sowie {\ displaystyle a \ Operatorname {ODER} b = \ max (a, b)}.

In SQL ist NULL kein Wert, dann Grund Legende Eigenschaft von Wert, nämlich sie mit other Wert des Gleichen sterben Datentyps Vergleich zu can, nicht das Plan Ergebnis gewünscht liefert. ZB das Prädikat Spalte = NULLimmer unbekannt , auch wenn ein Wert in der Spalte NULList. Statdessen müssen die Prädikate IS NULLund IS NOT NULLverwenden, um einen Wert auf NULLzu prüfen .

Einerseits spricht man von der sogenannten Einmaligen Know-Unbestimmtheit und meinen DAMIT sterben BEREITS beschrieben Unkenntnis des Werts, andererseits ist also sogenanntes sterben Einmalige Pflege -Unbestimmtheit , stirbt in Datum Bank Auftritt, Wenn Ein Datensatz EINER Bestimmt Wert ganz einfach nicht benötigt. Ein leicht einsehbares beispiel ist der Fall Eine Dokument Datenbank, in der Eine Tabelle mit Verschiedener Multimedia – Dokumenten Verwalter Wird – zum beispiel Bücher und CDs . Die Tabelle Kann next to Allgemeinen Angaben Wie Namen , Der Meister , Regalstandort Auch medienspezifische Lücke Wie ISBN oder InterpreterHABEN. In diesem Fall werden alle CDs in dieser Spalte als ISBN gelöscht NULL, wie in den Regeln der Referenz zur ISBN. Dementsprechend Habe sterben meisten Bücher (ausnahme Hörbücher) in der Lücke Interpretieren Eine NULLStehen, wenn Bücher eher von Autoren als von Interpreter Erstellt Werden.

Die Zeiten Lehrmeinung besagte Nonne aber that das Auftreten von unbeacht Unbestimmtheiten auf Fehler im Entwurf der Datenbank hinweist. Kurzum soll die Datenbank von vornherein gepflanzt und umgesetzt werden, Dass Don’t-Care-NULL nicht aufgegeben hat.

Christopher J. Datum und Hugh Darwen Weisen im The Third Manifest Auf die Problematik von NULLin Relational Datenbanksystemen hin und kritisieren that der NULL-Wert in Selb nicht Eindeutig ist, dann Entweder auf Unbekanntheit oder Nichtexistenz Hinweis Kann. Sie erläutern im Dritten Manifest Wie man Eine relationale Datenbank ohne sterben verwendung von NULLstrukturieren Kann, INDEMAR eine Werte, sterben NULLEnthalten can, in eigene Beziehungstabellen normalisiert. [5]

Nicht Null

Das aus der Datenbanksprache SQL entlehntes Sprachkonstrukt nicht Null (engl. Für auf jeden Fall eines Wertes) beschreibt sterben requirements that NULLin Einem Ausgezeichneten zusammenhang unzulässig ist. In SQL ist NOT NULLein sehr gebräuchlicher Constraint , auch Eine Integritätsbedingung, Derens einhaltung von der Software Grundsätzlich erzwungen Wird.

So Wird in der Beschreibung von Bedienoberflächen Durch den Hinweis not nullDarauf hingewiesen, that eines Datenfeldes in der Ausgabe Grundsätzlich befüllt und / oder beim Erfassen Grundsätzlich nicht leer gelassen Werden Darf. Im Regel Fall Wird sterben bedeutung von nicht leer in Letzterem Fall etwas Großzügiger ausgelegt that in Jedem Fall ein zulässiger Wert eingetragen Werden Muss, war beispielsweise Leerzeichen-Folgen ausschließen Kann.

Verschiedene Replikationen des Nullwertes

NIL

Einige Programmiersprachen (beispielsweise Pascal , Lisp , Smalltalk , Rubin , Objective-C , Lua , Scala ) Verwenden sterben Bezeichnung nil, Anstätt Nulloder nullNil steht für englisch not in list, auch nicht in der Liste . gründlich Dies hat historische, es entstammt , wo Programmiersprache Lisp , als Einziges Datum Struktur in Blatt RICHTUNG Arbeit Vordergrund stirbt Binärbaum kennt, wo aber Gewöhnlich nur zur Darstellung verketteter Liste einfachwird verwendet. Die Bezeichnung wurde auch für Anderes Programmingsprachen Übernehmen, dann sagte das Latein Wort nil soviel vorher, wer nichts .

NIL ist beim Computersystem Amiga von Commodore auch ein Gerät. Lenkt man zum beispiel Eine Datei nach >NIL:um, so verschiebt man sterben Ausgabe praktisch ins Nichts . Stirbt Hundertjahrfeier / dev / null unter Unix.

Keine

Weiterhin ist teil die Bezeichnung Keine für einen Nullwert gebräuchlich, wie z. B. in der Programmiersprache Python .

Nichts

In der Programmiersprache ist nichts eingestellt Visual Basic wird nicht initialisiert oder unterliegt Variablen für die Instanz einer Klasse. Prüfung auf Null oder Nichts Mein Folgen: Wenn IsNull (var_Myvar) Dann … Wenn Obj_MyClass Nichts ist Dann …

null / null / nullptr

In Java wurden Objekte als Referenz gefunden. Eine Objektreferenz, stirbt kein Objekt referenziert, bekommt den Wert nullzugewiesen. Stirbt Hundertjahrfeier im Gefolge des Nullzeigers in C und C ++, was wohl bei Macro NULLoder C ++ 11 der Fall ist – also Schlüsselwort nullptrrepräsentiert wird.

NaN

Nach der Norm IEEE 754 Wird für Gleitkommazahlen mit undefinierten oder nicht darstellbaren Wert Bezeichnung sterben NaN (engl. Keine Zahl ) used. NaN sind reserved Bitmuster, who depenses sind seininl einlle einlleufen. NaN ist beispielsweises Ergebnis der Division „0 durch 0“.

Sentinel oder Wächterwert

→ Hauptartikel : Sentinel (Programmierung)

Ein Sentinel mag ( NULLwer auch immer ) gerne „Wert“ Cousin. In Suchschleifen gibt es so etwas wie den Dokumentarfilm nicht, so dass die Programmlogik in jedem Fall auf das Thema „gefunden“ wird. Eine Abfrage auf der Ende der Liste ist identisch simultan. Nach der Schleife wird was getan; und wenn das über das Sentinel geschehe, wird das Gesamtergebnis auf »nicht gefunden« abgeändert.

Abgrenzung

Ein Nullwert kann nicht mit der Zahl Null identifiziert werden, wenn eine Nullwert Nichte als Zahl zu verstehen ist. Ein Nullwert ist ebenso von der Leeren Menge zu unterscheiden, dann nicht als Menge zu verstehen ist.

Null

NUL ist eine gewöhnliche Abkürzung für das Nullzeichen .

Unter dem Namen Nul wird auch von der Betriebssysteme (z. B. MS-DOS und Windows ) ein virtuelles Ausgabegerät definiert, das die aufgenommenen Daten einfach verwunden. Durch Umleitung nach NUL kann eine unerwartete Ausgabe eines Befehls unterdrückt werden. Stirbt Hundertjahrfeier / dev / null unter UNIX.

Siehe auch

  • nichts
  • nichtig
  • Nullzeichen
  • Datentyp
  • zeiger
  • / dev / null (Unix-Gerätedatei)

Einzelstunden

  1. Hochspringen↑ EF Codd: Erweiterung des relationalen Datenbankmodells auf mehr Bedeutung 1979, Abschnitt 2.3. S. 7
  2. Hochspringen↑ Kernhigh/ Ritchie: Programm Mäusein C (Zweite Ausgabe) 1990, S. 99
  3. Hochspringen↑ MSDN null(C # -Referenz ) (Englisch), abgelaufen am 6. Mai 2011
  4. Hochspringen↑ MSDN Nurlable-Typen (C # -Programmierhandbuch) (Englisch), abgelaufen am 6. Mai 2011
  5. Hochspringen↑ Das Dritte Manifest – Date & Darwen (Englisch), abgelaufen am 6. Mai 2011