i

Exkurs - Nullwerte und Wertebereich

Undefinierte Werte

In den Übungen war eine Aufgabe zu finden, bei denen nach den Orten am Rhein in Rheinland-Pfalz gesucht werden sollte. Die Sortierung erfolgte nach dem Rheinkilometer. Vielleicht ist dir bei der Ausführung des folgenden SQL-Befehls ein Problem aufgefallen:

SELECT ort.Name, stadtfluss.Km
  FROM ort, stadtfluss, fluss
 WHERE fluss.Name = 'Rhein'
   AND fluss.FNR = stadtfluss.FNR
   AND stadtfluss.ONR = ort.ONR
   AND ort.Landesteil = 'Rheinland-Pfalz'
 ORDER BY stadtfluss.Km 

Nullwerte

In vielen Datensätzen steht für das Attribut Km der Wert NULL. Dieses ist aber ein Attribut mit dem Datentyp "Zahl", so dass keine Texte dort erlaubt sind?!

Wenn für ein Attribut kein Wert definiert ist, dann wird der vordefinierte Wert NULL angenommen. Dieser stellt keinen Text dar, sondern ist ein Platzhalter für den undefinierten Wert.

In Bedingungen kann der Wert NULL explizit abgefragt werden,
z.B. WHERE Km IS NULL bzw. WHERE Km IS NOT NULL (für alle Werte, die kein NULL enthalten).

Aufgabe 1

Mache dir klar, warum man nicht den Wert 0 für den Rheinkilometer abspeichern sollte.

Jetzt kannst du den SQL-Befehl oben sicher so verbessern, dass nur noch Orte ausgegeben werden, bei denen der Rheinkilometer angegeben wurde.

Wertebereiche

Warum speichert man eigentlich nicht alles in der Datenbank in Attributen mit dem Datentyp "Text"?

In einem Versuch wurden die Kilometerangaben der stadtfluss-Tabelle einmal als Zahl und einmal als Text in zwei Attributen gespeichert.

Ein SQL-Befehl gibt die Orte an der Mosel aus - einmal nach dem Zahl-Attribut sortiert, einmal nach dem Text-Attribut. Kannst du die seltsame Sortierung im zweiten Bild erklären?

Sortierung nach KMZahl Sortierung nach KMText

Der Wertebereich eines Attributes hat gravierende Auswirkungen vor allem auf die Sortierung von Datensätzen. So werden Zahlen als "Texte" auch wie diese sortiert (also ist 52 größer als 107, da 5 nach 1 kommt). Eine große Rolle spielt das bei Datumsfeldern. Für Textfelder kann sogar die Art der Sortierung angegeben werden, die sich von Land zu Land unterscheiden kann.

... und nicht zuletzt benötigt die Speicherung als Zahl weniger Speicherplatz als die Speicherung als Text.

Aufgabe 2

Recherchiere doch einmal, welche Unterschiede allein die deutschsprechenden Staaten in Bezug auf die alphabetische Sortierung machen!

Suche

v
3.1.4.4
dev.inf-schule.de/datenbanksysteme/terra/beziehungstabelle/exkurs_nullwerte
dev.inf-schule.de/3.1.4.4
dev.inf-schule.de/@/page/vtHpNOdI9rFDyvZg

Rückmeldung geben