NULL-Werte in GeoMedia-Sachdaten

Werbung
NULL-WERTE IN GEOMEDIASACHDATEN
TIPPS & TRICKS
22.02.2016
NULL-Werte in GeoMedia-Sachdaten
INHALT
NULL-Werte in GeoMedia-Sachdaten ...................................................................................... 3
Grundlage ........................................................................................................................ 3
Die Beispiel-Daten ........................................................................................................... 3
NULL-Werte sind grundsätzlich sinnvoll ........................................................................... 4
Fallbeispiele ..................................................................................................................... 6
nicht vorhanden oder keine Information?........................................................ 6
vorhanden oder nicht vorhanden, gibt es da noch eine dritte Möglichkeit? ..... 7
Thematische Karte – fehlt da was? ................................................................ 8
nicht vorhanden oder nicht vorhanden? – die NULL-Falle … ......................... 9
Kreise und Balken ........................................................................................ 10
Fazit ............................................................................................................................... 12
2
NULL-Werte in GeoMedia-Sachdaten
NULL-WERTE IN GEOMEDIA-SACHDATEN
GRUNDLAGE
Wenn Informationen fehlen, wird in Datenbanken zur Kennzeichnung dieser Tatsache ein
spezieller NULL-Wert verwendet. Dieser Wert ist nicht identisch mit einem leeren Textfeld
(Zeichenkette der Länge 0) oder einem Textfeld, das nur Leerzeichen enthält oder dem
numerischen Wert 0.
NULL-Werte sind grundsätzlich nützlich, der Umgang mit ihnen beinhaltet aber Fallstricke,
die zu (scheinbar) falschen Abfrageergebnissen führen können.
Dies soll an Hand einiger praktischer Beispiele näher erläutert werden:
DIE BEISPIEL-DATEN
Nehmen wir an, Sie haben Punktobjekte, die Recycling-Standorte (bestehend aus Altglas-,
Altpapier- usw. -Containern) repräsentieren.
Die Information, welche Entsorgungsmöglichkeiten mit welcher Kapazität (Anzahl
Container) an dem jeweiligen Standort bestehen, ist in den Sachdaten enthalten.
3
NULL-Werte in GeoMedia-Sachdaten
Dies ist die Datenstruktur (sichtbar gemacht mit dem GeoMedia-Befehl Daten verwalten Schemata - Schemaauszug [kennen Sie nicht? – wir bieten GeoMedia Update-Trainings an …]):
Objektklasse: RECYCLING (Punkt)
Attributname
-------------ID
ADRESSE
ZUGANG
CONTAINER_ALTGLASS_WEISS
CONTAINER_ALTGLASS_BRAUN
CONTAINER_ALTGLASS_GRUEN
CONTAINER_ALTPAPIER
CONTAINER_ALTTEXTIL
CONTAINER_ELEKTRO_KLEIN
CONTAINER_WERTSTOFF
GEOMETRY
Typ
---Long
Text
Text
Integer
Integer
Integer
Integer
Integer
Integer
Integer
SpatialPoint
Erforderlich
--------
Schlüssel
--Ja
Außer für das Primärschlüsselfeld ID sind nach dem Anlegen der Objektklasse mit
GeoMedia für alle anderen Sachdaten-Felder NULL-Werte erlaubt.
NULL-WERTE SIND GRUNDSÄTZLICH SINNVOLL
Auf Ebene der Datenbank (MS Access, MS SQL-Server, Oracle) kann für eine Spalte die
Verwendung von NULL-Werten verboten werden; dies ist aber oftmals nicht sinnvoll: Wenn
dem Erfasser dann eine Information (zum Beispiel für die Anzahl der Altpapier-Container an
dem Standort) fehlt, kann er
 die Erfassung abbrechen und später wieder aufnehmen (erhöhter Aufwand)
 eine (numerische) 0 eintragen – dann weiß später niemand mehr, ob die Information fehlte
oder tatsächlich kein entsprechender Container vorhanden ist …
 eine spezielle Kennung (zum Beispiel -999) eintragen – wenn Sie dann später die
Container-Anzahl für den Bezirk summieren, gibt es eine Überraschung …
Außerdem gibt es Fälle, wo eine bestimmte Information nicht unbekannt, sondern einfach
nicht vorhanden ist (zum Beispiel: keine zusätzliche Zugangsinformation für das Feld
ZUGANG).
4
NULL-Werte in GeoMedia-Sachdaten
NULL-Werte können also sehr sinnvoll sein, zum Beispiel können Sie mit einer gezielten
Abfrage die Standorte identifizieren, für die noch ein bestimmter Wert zu recherchieren ist;
dafür wird bei Abfragen der spezielle Operator IS NULL verwendet (nicht nur in der
GeoMedia-Attributabfrage, sondern auch beim Datenbankzugriff per SQL (Structured
Query Language):
5
NULL-Werte in GeoMedia-Sachdaten
FALLBEISPIELE
Im Folgenden soll von diesen sechs Beispieldatensätzen ausgegangen werden (die Felder
mit NULL-Werten sind zur Verdeutlichung gelb eingefärbt):
NICHT VORHANDEN ODER KEINE INFORMATION?
Sie suchen die Standorte, an denen keine Altpapier-Container vorhanden sind, um den
Bedarf dort zu überprüfen:
Formal richtig, aber vielleicht wollen Sie auch die Standorte, an denen keine Information zu
dem Thema vorliegt, in die Untersuchung einbeziehen, dann wäre die folgende Abfrage
fachlich sinnvoller:
6
NULL-Werte in GeoMedia-Sachdaten
VORHANDEN ODER NICHT VORHANDEN, GIBT ES DA NOCH EINE DRITTE
MÖGLICHKEIT?
Sie brauchen die Information, an welchen Standorten Wertstoff-Container vorhanden sind
und an welchen nicht. Die beiden Abfragen liefern das Ergebnis:
Für einen vollständigen Bericht wäre aber vielleicht noch eine dritte Abfrage sinnvoll:
7
NULL-Werte in GeoMedia-Sachdaten
THEMATISCHE KARTE – FEHLT DA WAS?
Eine entsprechende Überlegung gilt beim Einrichten einer thematischen Karte; die NULLWerte werden hier nur bei Anwahl der „sonstigen Werte“ berücksichtigt (Option unten im
Dialog „Legendeneintragseigenschaften“).
8
NULL-Werte in GeoMedia-Sachdaten
NICHT VORHANDEN ODER NICHT VORHANDEN? – DIE NULL-FALLE …
Sie wissen, dass der Datenerfasser alle barrierefreien Standorte mit dem Wort
‚barrierefrei‘ im Feld ZUSATZ gekennzeichnet hat. Sie suchen alle nicht barrierefreien
Standorte – unter Beachtung der Tatsache, dass das Wort ggf. nicht alleine im dem Feld
vorkommt (Verwendung von NOT LIKE und „Joker-Zeichen“ [* für MS Access und MS
SQL-Server, % für Oracle]):
Dieser erste Versuch liefert nicht das fachliche korrekte Ergebnis!
Wenn sichergestellt ist, dass alle barrierefreien Standorte gekennzeichnet sind, dann sind
die Standort mit NULL-Wert im Feld ZUSATZ ebenfalls nicht barrierefrei, die korrekte
Abfrage muss also so aussehen:
(Hier liegt dann auch gleich ein Beispiel für schlechte Datenmodellierung vor, besser wäre hier ein eigenes Feld
BARRIEREFREI mit Ja/Nein-Werten; wenn Sie hier Unterstützung brauchen: wir bieten auf Nachfrage
Workshops zum Thema Datenmodellierung an …)
9
NULL-Werte in GeoMedia-Sachdaten
KREISE UND BALKEN
Besondere Vorsicht ist mit NULL-Werten in Zusammenhang mit Kreis- und
Balkendiagrammen geboten (kennen Sie nicht? – wir bieten GeoMedia Update-Trainings an …):
Hier sollte möglichst sichergestellt sein, dass die Recherche/Datenerfassung komplett ist
und alle NULL-Werte durch die ermittelten Werte gefüllt sind. Alternativ sollte numerisch 0
als Ersatz für den NULL-Wert angenommen werden.
Ein erster Versuch der Darstellung der Containertypen je Standort als Kreisdiagramm:
Hier fällt eine grob falsche Darstellung an den Standorten auf, an denen der Wert für einen
Containertyp NULL ist.
10
NULL-Werte in GeoMedia-Sachdaten
Grund hierfür ist die Voreinstellung für die Standardwerte, die als Ersatz für NULL-Werte
verwendet werden:
Wenn NULL-Werte vorkommen (können), ändern Sie hier die Vorgabewerte 20, 40, 60
unbedingt auf 0, dann werden die Kreisdiagramme auch für Standorte mit NULL-Werten
korrekt angezeigt:
11
NULL-Werte in GeoMedia-Sachdaten
Für Balkendiagramme gilt das oben Gesagte analog:
FAZIT
NULL-Werte sind grundsätzlich nützlich.
Wenn möglich, sollten stattdessen die „richtigen“ Werte gefunden und verwendet werden.
Ansonsten muss an vielen Stellen über eine Sonderbehandlung der verbleibenden NULLWerte nachgedacht werden, damit keine Probleme entstehen.
12
Herunterladen