Schritt für Schritt: Sachattribute zu Klassen verwalten

Alle einer Klasse zuordenbaren und relevanten Informationen, die nicht als Standardfelder definiert werden können oder sollen, sind als Sachattribute zu definieren.

In Datenbank-Logik ausgedrückt ist ein Objekt einer Klasse eine Zeile in der Datenbank und jedes Sachattribut fügt eine Spalte dieser Zeile hinzu.

Folgende Schritte sind für die Definition einer Klasse zu erledigen:

  1. Die Information in den Daten identifizieren und einem Objekt bzw. einer Klasse zuordnen.
  2. Das Sachattribut einem der Datentypen zuordnen (S, G, R, M).
  3. Das Attribut beschreiben und benennen.

Start

Ausgangspunkt ist die Liste der Sachattribute zu einer Klasse. Diese Liste ist in der im vorherigen Tutorial neu definierten Klasse naturgemäß leer:

Mittels des Knopfes "Neues Attribut erstellen" öffnet sich ein Fenster:

1. Objektspezifische Informationen identifizieren

Im vorhergehenden Tutorial zur Objektkonvertierung wurde die Klasse "Gemeinden" aus der Quelltabelle der Destatis-Daten (q_00000000900008) befüllt, inklusive einiger Standardfelder. Die Quelltabelle enthält noch eine Reihe von Spalten, die nicht durch die Standardfelder der Klassendefinition abgedeckt sind, unter anderem:

  • Eine Zahl, welche die Fläche der Gemeinde in km² angibt,
  • Angaben zur Bevölkerung Gemeinde,
  • Angaben zur Postleitzahl der Gemeinde,
  • Geographische Mittelpunktskoordinate der Gemeinde.

Diese Informationen beziehen sich ebenfalls auf die Klasse "Gemeinde" und sollen hier ergänzt werden.

2. Information einem Datentypen zuordnen

Simplex4Data bietet eine Reihe von Datentypen für Sachattribute an. Hier muss eine Auswahl getroffen werden:

Eine Erläuterung dieser Typen findet sich im Artikel zu Sachattributen im Simplex4Data.

Der Typ muss nicht dem aktuellen Typ der Daten in der Quelltabelle entsprechen. Vielmehr geht es darum, den für die Daten angemessensten Typ auszuwählen. Im Lauf der Konversion des Attributs kann der Typ gecastet werden.

Der Typ "ax" ist eine gute Wahl, wenn wenig über das Sachattribut bekannt ist, weil er beliebig lange Zeichenfolgen speichern kann, und die meisten in den Quelldaten zu erwartenden Datentypen sich mehr oder weniger verlustfrei in Zeichenketten übersetzen lassen.

Designentscheidungen

Die Spalte "Fläche" wird als "ar" typisiert:

  • Es handelt sich um Fließkommazahlen.
  • Es kann sinnvoll sein, mit diesen Zahlen zu rechnen.

Die Spalte "Bevölkerung" wird als "ai" typisiert:

  • Aus inhaltlichen Gründen kann hier garantiert von einer Ganzzahl ausgegangen werden.
  • Auch hier kann es sinnvoll sein, numerische Operationen durchzuführen.

Die Spalte "Postleitzahl" wird als "ac" typisiert:

  • Es handelt sich um einen Schlüssel, der immer fünfstellig ist und bei dem die einzelnen Stellen in ihrer Position eine Bedeutung haben (vgl. z.B. Wikipedia dazu).
  • Für die Feststellung der Positionen innerhalb des Schlüssels sind zeichenbasierte Funktionen besser geeignet als Rechenoperationen.
  • Ein Rechnen mit der Postleitzahl ist inhaltlich nicht sinnvoll.

Die geographische Mittelpunktskoordinaten werden zusammen als ein "geo" typisiert:

  • Die beiden Angaben lassen sich zu einer Geometrie (einem Punkt) verbinden. Dazu ist eine komplexere Transformation nötig (s. Tutorial zur Konvertierung der Attribute.).
  • Für Geometrien gibt es eine eigene Datentypen, eigene geometrische Operationen etc.

// Im Artikel zum Importer sind genauere Angaben zu diesem komplexen Datentypen enthalten //srid, crs, Dimensionen,...

3. Das Attribut beschreiben und benennen

Neben dem Typen existieren vier weitere Felder für das Attribut. Wie für Klassen ist es auch für Sachattribute wichtig, eine Dokumentation anzulegen, indem diese vier Felder befüllt werden. Insbesondere die Felder "dsc" und "cmt" sind hierfür gedacht. Folgende Tabelle zeigt die Bedeutung und Funktion der Felder.

Name Funktion verpflichtend? Kommentar
key Schlüssel des Sachattributs, Name der Spalte. ja Wird durch einen Postprozess u.U. verändert, um die Datenbanktabellen konsistent zu halten und ihre Bearbeitung zu vereinfachen.
nam Name des Sachattributs ja Kurzer und prägnanter Name des Sachattributs.
dsc Beschreibung des Sachattributs nein Kurze Beschreibung zum Sachattribut.
cmt Kommentar zum Sachattribut nein Beliebig lange Informationen, die dokumentiert werden sollen.

Für die besprochenen vier Sachattribute werden folgende Einträge in diesen vier Feldern vorgenommen:

key nam dsc cmt
flaeche_km2 Fläche Fläche der Gemeinde in km2. Fläche im Land Rheinland-Pfalz: Einschließlich des Gebietes "Gemeinsames deutsch-luxemburgisches Hoheitsgebiet" von 6,20 km2.  Abweichungen bei den Flächenangaben sind durch Runden der Zahlen möglich. ABWEICHUNGEN sind bei den Gemeinden möglich, deren Fläche und/oder Bevölkerung im Zuge einer Gebietsänderung verändert wurde(n).
bevoelkerung Bevölkerung Menschliche Population innerhalb Gemeinde Hinweis aus der Quelle: Die Ergebnisse ab Berichtsjahr 2016 sind aufgrund methodischer Änderungen und technischer Weiterentwicklung nur bedingt mit den Vorjahreswerten vergleichbar. Erläuterungen dazu finden Sie unter www.destatis.de beim Bevölkerungsstand.
postleitzahl Postleitzahl Zeichenkombination für Postadressen, die den Zustellort eingrenzt Eine Gemeinde kann mehrere Postleitzahlen haben; im Gemeindeverzeichnis wird nur die PLZ des Verwaltungssitzes der Gemeinde geführt.
mittelpunkt Mittelpunkt Geographischer Mittelpunkt der Gemeinde Quelle: Bundesamt für Kartographie und Geodäsie (BKG), Frankfurt am Main. CRS: World Geodetic System 1984 (WGS 84)

Diese Definitionen sehen im interface folgendermaßen aus (hier für das Sachattribut "Fläche"):

Ergebnis

Nachdem alle verfügbaren und relevanten Informationen zu den Gemeinden als Sachattribute definiert wurden, sieht dessen Übersichtsseite folgendermaßen aus:

Sachattributsdefinitionen können betrachtet und mittels des Buttons "Bearbeiten" auch aktualisiert werden. Wie sichtbar ist, können alle Angaben außer dem festgelegten Datentyp beliebig verändert werden. Passt der Datentyp nicht, muss das Attribut gelöscht und neu angelegt werden.