Die Architektur einer Geodatabase
Das Geodatabase-Speichermodell basiert auf einer Reihe von einfachen, jedoch äußerst wichtigen relationalen Datenbankkonzepten und nutzt die Stärken des zugrunde liegenden Datenbankmanagementsystems (DBMS). Einfache Tabellen und gut definierte Attributtypen werden zum Speichern des Schemas, der Regel, der Basis und der räumlichen Attributdaten für die einzelnen geographischen Datasets verwendet. Dieser Ansatz liefert ein formales Modell zum Speichern und Arbeiten mit Daten. Über diesen Ansatz kann SQL (Structured Query Language) – eine Reihe relationaler Funktionen und Operatoren – zum Erstellen, Ändern und Abfragen von Tabellen und deren Datenelementen verwendet werden.
Sehen Sie sich an, wie dies funktioniert, indem Sie untersuchen, wie ein Feature mit Polygon-Geometrie in der Geodatabase modelliert wird. Eine Feature-Class wird als Tabelle gespeichert, die häufig als Basis- oder Business-Tabelle bezeichnet wird. Jede Zeile in der Tabelle steht für ein Feature. In der Shape-Spalte ist die Polygon-Geometrie für jedes Feature gespeichert. Auf den Inhalt dieser Tabelle, einschließlich des Shapes, wenn diese als räumlicher SQL-Typ gespeichert wird, kann über SQL zugegriffen werden.
Das Hinzufügen von räumlichen Typen und SQL-Unterstützung für räumliche Attribute in einem DBMS ist allein jedoch nicht ausreichend, um ein GIS zu unterstützen. Bei ArcGIS kommt eine mehrschichtige Anwendungsarchitektur zum Einsatz, die eine Anwendungsschicht mit erweiterter Logik und erweitertem Verhalten und darunter ein Geodatabase-Speichermodell umfasst. Diese Anwendungslogik unterstützt eine Reihe von GIS-Datenobjekten und -Verhalten, z. B. Feature-Classes, Raster-Datasets, Topologien, Netzwerke und viele mehr.
Die Geodatabase ist objektrelational
Die Geodatabase wird mit der gleichen mehrschichtigen Anwendungsarchitektur wie auch in anderen erweiterten DBMS-Anwendungen implementiert; an der Implementierung ist nichts ungewöhnliches oder unübliches zu finden. Die mehrschichtige Architektur der Geodatabase wird manchmal auch als "objektrelationales Modell" bezeichnet. Die Geodatabase-Objekte werden als Zeilen in DBMS-Tabellen gespeichert, denen eine Identität zugeordnet ist, und das Verhalten wird über die Anwendungslogik der Geodatabase bereitgestellt. Aufgrund der Trennung der Anwendungslogik vom Speicher werden die unterschiedlichen DBMS und Datenformate unterstützt.
Geodatabase-Speichermodell in relationalen Datenbanken
Ein einfaches relationales Datenbankschema (eine Reihe von Standard-Datenbanktabellen, Spaltentypen, Indizes und anderen Datenbankobjekten) bildet die Grundlage der Geodatabase. Diese Schemainformationen werden in einer Sammlung von Geodatabase-Systemtabellen im DBMS beibehalten, mit der die Integrität und das Verhalten der geographischen Informationen definiert wird. Diese Tabellen werden entweder als Dateien auf dem Datenträger oder im Inhalt eines DBMS, z. B. Oracle, IBM DB2, PostgreSQL, IBM Informix oder Microsoft SQL Server, gespeichert.
Gut definierte Spaltentypen werden zum Speichern von herkömmlichen tabellarischen Attributen verwendet. Wenn die Geodatabase innerhalb eines DBMS gespeichert wird, werden räumliche Darstellungen, die meistens durch Vektoren oder Raster dargestellt werden, im Allgemeinen mit einem erweiterten räumlichen Datentyp gespeichert.
Innerhalb der Geodatabase gibt es zwei primäre Sätze von Tabellen: Systemtabellen und Dataset-Tabellen.
- Dataset-Tabellen: Jedes Dataset in der Geodatabase wird in einer oder mehreren Tabellen gespeichert. Die Dataset-Tabellen werden zusammen mit den Systemtabellen zum Verwalten von Daten verwendet.
- Systemtabellen: Die Geodatabase-Systemtabellen protokollieren den Inhalt jeder Geodatabase. Sie beschreiben im Wesentlichen das Geodatabase-Schema, das alle Dataset-Definitionen, Regeln und Beziehungen vorgibt. Diese Systemtabellen enthalten und verwalten alle Metadaten, die erforderlich sind, um Geodatabase-Eigenschaften, Datenvalidierungsregeln und Verhalten zu implementieren.
Die interne Struktur dieser Tabellen wurde ab ArcGIS-Version 10 umstrukturiert. Die mit dem Schema in der Geodatabase verknüpften Informationen, die vor ArcGIS-Version 10 in über 35 Geodatabase-Systemtabellen gespeichert wurden, wurden in vier Haupttabellen konsolidiert:
- GDB_Items – Enthält eine Auflistung aller Elemente, die in einer Geodatabase enthalten sind, z. B. Feature-Classes, Topologien und Domänen.
- GDB_ItemTypes – Enthält eine vordefinierte Liste erkannter Feldtypen, z. B. Tabelle.
- GDB_ItemRelationships – Enthält Schemaverknüpfungen zwischen Elementen, z. B. welche Feature-Classes in einem Feature-Dataset enthalten sind.
- GDB_ItemRelationshipTypes – Enthält eine vordefinierte Liste erkannter Beziehungstypen z. B. DatasetInFeatureDataset.
Das Dataset und die Systemtabellen arbeiten zusammen, um den Inhalt einer Geodatabase darzustellen und zu verwalten. Wenn eine Feature-Class beispielsweise im zugrunde liegenden Speicherformat angezeigt wird, handelt es sich einfach um eine Tabelle mit einer räumlichen Spalte. Alle in den Systemtabellen gespeicherten Regeln werden bei Zugriff über ArcGIS jedoch mit den zugrunde liegenden Daten kombiniert, um diese als Feature-Class mit dem gesamten definierten Verhalten darzustellen.
Zusätzliche Tabellen
In Abhängigkeit von dem verwendeten Typ der Geodatabase und in welchem DBMS diese gespeichert ist, kann der Satz von Systemtabellen variieren. ArcSDE-Geodatabases haben einen anderen Satz von Systemtabellen als File-Geodatabases, die einen etwas anderen Satz als Personal-Geodatabases aufweisen. Bei ArcSDE-Geodatabases sind die unterschiedlichen Systemtabellen in den Systemtabellen eines Geodatabase-Themas für jedes spezifische DBMS definiert. Die unterschiedlichen in File- und Personal-Geodatabase gespeicherten Tabellen werden nicht aufgelistet, da Sie mit einem Großteil dieser Tabellen nicht interagieren müssen.