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