Mit IBM Informix Spatial DataBlade wird ein geographisches Informationssystem (Geographic Information System, GIS) in den Informix Dynamic Server (IDS)-Kernel eingebettet. Mit dem Informix Spatial DataBlade-Modul wird die SQL 3-Spezifikation für benutzerdefinierte Typen (User-Defined Types, UDTs) des Open Geospatial Consortium, Inc. (OGC) implementiert. Hierbei handelt es sich um Spalten, in denen räumliche Daten, wie z. B. Lage eines Orientierungspunktes, einer Straße oder eines Flurstückes gespeichert werden können.
In einer Geodatabase in einem Informix-Datenbankmanagementsystem werden die räumlichen Daten in den Informix Spatial DataBlade-Datentypen gespeichert. Daher muss Spatial DataBlade registriert werden, bevor Sie eine Geodatabase in einer Informix-Datenbank erstellen können.
Weitere Informationen zu Informix Spatial DataBlade und zur Installation finden Sie im IBM Informix Spatial DataBlade Module User's Guide. Im DataBlade Module Installation and Registration Guide wird darüber hinaus beschrieben, wie DataBlade-Module registriert werden.
Funktionsweise von IBM Spatial DataBlade
Sobald Informix Spatial DataBlade installiert ist, können Sie räumlich aktivierte Tabellen erstellen, die räumliche Spalten enthalten. Diese werden in ArcGIS als Feature-Class bezeichnet. Geographische Features können in die räumlichen Spalten eingefügt werden. Mit Informix Spatial DataBlade werden räumliche Daten von einem der folgenden drei externen Formate in sein Speicherformat konvertiert:
- Well-Known Text (WKT)-Format
- Well-Known Binary (WKB)-Format
- Esri-Shape-Darstellung
Geodatabases in Informix-Datenbanken verwenden die Esri-Shape-Darstellung.
Die Raumbezugstabelle
Das Raumbezugssystem gibt die Koordinatentransformationsmatrix für jede Geometrie an. Als "Geometrie" bezeichnet das OGC zweidimensionale räumliche Daten. Alle Raumbezugssysteme für die Datenbank werden in der Tabelle "spatial_references" gespeichert. In der Tabelle "spatial_references" wird für jeden Raumbezug in der Datenbank ein Datensatz gespeichert.
Die Parameter von Raumbezugssystemen werden von internen Funktionen verwendet, um die Gleitkommakoordinaten der Geometrie vor dem Speichern in positive Ganzzahlwerte umzuwandeln und zu skalieren. Beim Abrufen wird das externe Gleitkommaformat der Koordinaten wiederhergestellt.
Die Gleitkommakoordinaten werden durch Subtrahieren der "false x"- und "false y"-Werte in Integerwerte konvertiert und damit auf den "falschen Ursprung" umgesetzt. Anschließend wird durch Multiplikation mit den XY-Einheiten skaliert, eine halbe Einheit addiert und der Rest abgeschnitten.
Mit den optionalen Z-Koordinaten und den Messwerten wird ähnlich verfahren. Hierbei erfolgt die Umwandlung jedoch mit dem "false z"- bzw. dem "false m"-Wert und die Skalierung mit den Z-Einheiten bzw. mit den M-Einheiten.
SRID, der "spatial_references"-Primärschlüssel, enthält für jedes Raumbezugssystem eine eindeutige Nummer.
Während der Konstruktion wird das Raumbezugssystem einer Geometrie zugeordnet. Das Raumbezugssystem muss in der Tabelle "spatial_references" enthalten sein. Alle Geometrien einer Spalte müssen dasselbe Raumbezugssystem aufweisen.
Wenn Sie eine Feature-Class erstellen, wird die Tabelle "spatial_references" in ArcGIS auf ein entsprechendes Raumbezugssystem durchsucht. Wenn eines gefunden wird, wird die SRID der Feature-Class zugewiesen. Andernfalls wird in ArcGIS der Tabelle "spatial_references" ein neues Raumbezugssystem hinzugefügt und der Feature-Class zugewiesen.
Wenn Sie Daten aus einer anderen Quelle, wie z. B. einer Coverage oder Shapefile, in eine Feature-Class importieren, müssen die Koordinaten der Daten in die Ausdehnung des Raumbezugssystems passen. Features, die sich außerhalb der Ausdehnung des Raumbezugssystems befinden, werden verworfen.
Feature-Classes in einer Informix-Datenbank
Eine räumliche Tabelle in Informix kann eine oder mehrere räumliche Spalten enthalten, ArcGIS kann jedoch nur eine räumliche Spalte in einer Feature-Class verwenden. Räumliche Spalten werden mit einem benutzerdefinierten Datentyp von Informix Spatial DataBlade definiert. Eine räumliche Spalte unterstützt nur Daten des entsprechenden räumlichen Datentyps. Eine "ST_Polygon"-Spalte unterstützt beispielsweise keine Integer-Werte, Zeichen und keine anderen Geometrietypen als Polygone.
Wenn ArcGIS eine Feature-Class in Informix erstellt, wird auch eine Objekt-ID-Spalte erstellt. Die Objekt-ID ist eine eindeutige Spalte vom Typ "Integer" ohne Nullwerte (NOT NULL), die für ArcGIS-Clients zum Verfolgen von Auswahlsätzen erforderlich ist.
Bei der Erstellung einer Feature-Class in einer Geodatabase in Informix wird von ArcGIS der Tabelle "geometry_columns" außerdem ein Datensatz hinzugefügt. Anwendungen, die Informix Spatial DataBlade verwenden, sind für das Einfügen eines Datensatzes in die Tabelle "geometry_columns" zuständig, wenn sie der Datenbank eine räumliche Spalte hinzufügen.
Richtlinien zum Verwenden vorhandener Informix-Tabellen mit ArcGIS
Andere Anwendungen als ArcGIS können Tabellen mit räumlichen Spalten in Informix erstellen. ArcGIS ist für die Verwendung von Tabellen konzipiert, die räumliche Spalten enthalten, die von anderen Anwendungen erstellt wurden oder SQL (manchmal als Tabellen von Drittanbietern bezeichnet) verwenden, solange die Tabellen bestimmte Voraussetzungen wie die folgenden erfüllen:
- Die Tabelle muss eine eindeutige Spalte vom Typ "Integer" ohne Nullwerte (NOT NULL) sein, die von der Datenbank als Objekt-ID-Spalte verwaltet wird.
- Die Tabelle darf außer einer "ST_Geometry"-Spalte keine anderen benutzerdefinierten Spalten enthalten.
- Die Tabelle darf nur eine ST_Geometry-Spalte enthalten. Wenn Sie auf Daten in einer Tabelle zugreifen möchten, die mehr als eine ST_Geometry-Spalte enthält, erstellen Sie eine Ansicht der Tabelle mit nur einer ST_Geometry-Spalte.
- Die Tabelle darf nur eine Raumbezug-ID für alle Datensätze in der Tabelle aufweisen.
- Wenn Sie die Tabelle bei der Geodatabase registrieren, müssen Sie der Besitzer der Tabelle sein. Wenn die Tabelle bei der Geodatabase registriert ist, fügt ArcGIS eine eigene Objekt-ID-Spalte hinzu und verwaltet die Werte in der Spalte.