Beitragsseiten

7 Entwurf eines objektorientierten Datenmodells

Im folgenden Kapitel soll die entwickelte Konzeption in ein objektorientiertes Daten­modell zur Verwaltung räumlich-temporaler Daten übertragen werden. Entwurfsziel ist hierbei nicht die Entwicklung applikationsspezifischer Strukturen, wie z.B. für ein Kataster-GIS oder ein historisches GIS, sondern die Formulierung eines objektorientierten GIS-Kerns, der die anwendungsunabhängigen Basiskonstrukte liefert, aus dem dann pro­blemorientierte Klassen abgeleitet werden können.

Abbildung 42: Architektur des Datenmodells



Quelle: Eigener Entwurf

Das Datenmodell ist in einzelne, hierarchisch abgestufte Schichten aufgeteilt, wobei jede Schicht spezielle Dienste für die übergeordnete Schicht anbietet (vgl. Abbildung 42). Als Ausgangsbasis dient das ODMG-Objektmodell, das für die datenbankspezifischen Opera­tionen zuständig ist. Darauf aufbauend folgen die GIS-spezifischen Klassen:

  1. Die unterste Schicht verwaltet die Geometriedaten und stellt die im vorhergehenden Kapitel vorgestellte Zerlegung zur Verfügung. Einzelne Geometrie-Objekte werden zu Layern zusammengefaßt und über ein Koordinatensystem und zusätzlichen Metadaten beschrieben.

  2. Die Zerlegung wird in der nächsten Schicht dazu verwendet, räumlich-temporale Objekte darzustellen. Ein Referenzsystem definiert temporale Elemente, die Zeit­punkte und -intervalle repräsentieren. Diese werden dazu verwendet, den zeitlichen Bezug von einfach strukturierten räumlichen Objekten der Spaghetti-Ebene sowie von topologisch strukturierten räumlichen Objekten herzustellen.

  3. Die oberste Schicht repräsentiert die thematische Ebene, die die Geo-Objekte mit einem Anwendungskontext verknüpft.

Entsprechend dieser Gliederung erhalten alle Klassennamen eine Kennung vorangestellt, um sie einfacher zuordnen zu können: “G” steht für “geometry”, “C” für “coordinate system”, “T” für “temporal” und “ST” für “spatiotemporal”. Einer allgemeinen Konven­tion im Software-Engineering folgend sind alle Bezeichner in englischer Sprache benannt. Das vollständige Datenmodell in einer OMT-ähnlichen Notation (vgl. RUMBOUGH u.a. 1993) befindet sich im Anhang. In den einzelnen Abschnitten sind jeweils nur Ausschnitte dieses Gesamtmodells dargestellt. Dabei zeigen grau hinterlegte Klassensymbole an, daß hier noch weitere Subklassen definiert sind, die aber der Übersichtlichkeit wegen in der Darstellung ausgespart wurden. Da nicht in allen Fällen die Assoziationen graphisch dar­zustellen sind, wurden diese teilweise mit einem Bezeichner in das Klassensymbol mit aufgenommen.

Die Verknüpfung zwischen zwei Objekten erfolgt über Objektreferenzen. Programmier­sprachen wie C++ unterterscheiden Referenzen von Pointern bzw. Zeigern. Diese Dif­ferenzierung beruht auf technischen Aspekten der Speicherverwaltung und ist für die vor­liegende Arbeit nicht von Relevanz. Deshalb werden im Folgenden die Begriffe “Referenz”, “Pointer”, “Verweis” und “Zeiger” synonym verwendet.

7.1 Das persistente Objektmodell

Das persistente Objektmodell liefert die Basisdienste zur dauerhaften Verwaltung der Objekte in einem objektorientierten Datenbankmanagementsystem. Hier wird auf das in Kapitel 4.3 erläuterte ODMG-Objektmodell zurückgegriffen. Über dieser Basis ist die datenbanktechnische Infrastruktur zur Verfügung gestellt, auf der die im Folgenden beschriebenen GIS-spezifischen Klassen aufbauen. Konkret bedeutet dies, daß die vorge­stellten Klassen alle von der Superklasse d_Object abgeleitet sind, und damit über die Fähigkeit der Objektpersistenz verfügen. Aus Gründen der Übersichtlichkeit ist diese Ab­leitung aber nicht ausdrücklich in die Klassendiagramme aufgenommen. Es wird voraus­gesetzt, daß jede Wurzel eines Vererbungsbaumes ihren Ursprung in d_Object hat und daß damit die Instanzen aller abgeleiteten Klassen in einem objektorientierten Datenbank­system gespeichert werden können.