Kurzer Überblick über die Verwendung von SQL mit den Datentypen "ST_Geometry" und "ST_Raster"
Sie können die Structured Query Language (SQL) des Datenbankmanagementsystems, Datentypen und Tabellenformate nutzen, um mit den in einer Geodatabase gespeicherten Informationen zu arbeiten. SQL ist eine Datenbanksprache, die Befehle für die Datendefinition und die Datenbearbeitung unterstützt.
Erfolgt der Zugriff auf die Informationen in einer Geodatabase über SQL, können externe Anwendungen auf die Tabellendaten zugreifen, die von der Geodatabase verwaltet werden. Bei diesen externen Anwendungen kann es sich um nicht räumliche Datenbankanwendungen oder benutzerdefinierte räumliche Anwendungen handeln, die in einer anderen Umgebung als ArcObjects entwickelt wurden.
Sie können SELECT-Anweisungen für alle unterstützten DBMS-Typen für Geodatabases sowie für dateibasierte Datenquellen ausführen. In den Abschnitten Erstellen eines SQL-Ausdrucks und SQL-Referenz erhalten Sie Informationen zum Erstellen von SELECT-Anweisungen für verschiedene Datenquellen.
Wenn Sie über SQL auf die Geodatabase zugreifen, stehen jedoch nicht alle Geodatabase-Funktionen zur Verfügung, z. B. Versionierung, Topologie, Netzwerke, Terrains, Feature-bezogene Annotations oder andere Klassen- bzw. Workspace-Erweiterungen. DBMS-Funktionen wie Trigger und gespeicherte Prozeduren können u. U. zur Verwaltung von Beziehungen zwischen Tabellen verwendet werden, die für bestimmte Geodatabase-Funktionen erforderlich sind. Wenn Sie die SQL-Befehle für die Datenbank ausführen, ohne diese zusätzliche Funktionalität zu berücksichtigen (z. B. wenn Sie mit INSERT-Anweisungen einer Business-Tabelle Datensätze hinzufügen oder eine Spalte in eine vorhandene Feature-Class einfügen), wird die Geodatabase-Funktionalität jedoch unterlaufen, und die Beziehungen zwischen den Daten in der Geodatabase können beschädigt werden.
Grundsätzlich gelten die folgenden Richtlinien, wenn Sie SQL zum Bearbeiten von Informationen in der Geodatabase verwenden:
- Datensätze dürfen nicht mit SQL aktualisiert werden, nachdem die Daten versioniert wurden. Dies gilt allerdings nicht, wenn Sie SQL in Verbindung mit einer Multiversioned View verwenden.
- Wenn nicht versionierte Daten mit SQL aktualisiert werden, dürfen keine Attribute geändert werden, die andere Objekte in der Datenbank durch Geodatabase-Verhalten beeinflussen, wie Beziehungsklassen, Feature-bezogene Annotations oder Topologie.
- Geben Sie eine COMMIT- oder ROLLBACK-Anweisung aus, nachdem die SQL-Anweisung ausgeführt wurde, um Änderungen entweder in die Datenbank zu übernehmen oder sie zu verwerfen.
Die genannten Richtlinien gelten sowohl für räumliche als auch für nicht räumliche Attribute. In diesem Modul des Hilfesystems wird die Verwendung von SQL für räumliche Auswahlen, das Ändern von Daten und das Ändern der Eigenschaften von Daten beschrieben, die in den Datenspeichertypen "ST_Geometry" und "ST_Raster" gespeichert sind.
Der Speichertyp "ST_Geometry"
Der SQL-Datentyp "ST_Geometry" wird in Geodatabases verwendet, die in DB2, Informix, Oracle und PostgreSQL gespeichert sind. Dieser Datentyp kann in der Geodatabase verwendet werden. Außerdem ermöglicht er Anwendungen von Drittanbietern den SQL-Zugriff auf die einfache Feature-Class-Geometrie.
"ST_Geometry" implementiert die OGC- und ISO-SQL-Multimediaspezifikation für Spatial. Die OGC-Referenz ist OpenGIS Implementation Specification for Geographic information – Simple feature access – Part 2: SQL option. Die ISO-Referenz ist ISO/IEC 13249-3 SQL multimedia and application packages – Part 3: Spatial.
Informationen zur Verwenden von SQL mit dem Typ "ST_Geomery" in DB2 oder Informix finden Sie in der IBM DB2- und Informix-Dokumentation. Informationen zur Verwendung von SQL mit dem Typ "ST_Geometry" in Oracle und PostgreSQL finden Sie im folgenden Abschnitt.
Der Abschnitt "Verwenden räumlicher Datentypen mit SQL" dieser Hilfe enthält einige Beispiele für DB2 und Informix; für vollständige Informationen zur Verwendung von "ST_Geometry" mit diesen Datenbanken lesen Sie die IBM-Dokumentation.
Verwenden der SQL-Funktionen mit "ST_Geometry" in Oracle und PostgreSQL
Um mit SQL auf Daten zugreifen, sie analysieren und ändern zu können, müssen Sie die Funktionen verwenden, die mit ArcSDE installiert werden.
Diese Funktionen können nach Verwendung gruppiert werden.
-
Funktionen, die räumliche Beziehungen testen
Diese Funktionen verwenden Geometrien als Eingabe und ermitteln, ob eine bestimmte Beziehung zwischen den Geometrien besteht. Wenn die Bedingungen einer räumlichen Beziehung erfüllt sind, geben diese Funktionen den Wert "1" oder ein "t" für TRUE (Wahr) aus. Wenn die Bedingungen nicht erfüllt werden (d. h. keine Beziehung vorhanden ist), geben diese Funktionen "0" oder "f" für FALSE (Falsch) zurück. Eine Beschreibung der einzelnen Funktionen finden Sie unter Räumliche Beziehungen.
-
Funktionen, die räumliche Operationen ausführen
Diese Funktionen führen Analysen für räumliche Daten aus und geben neue räumliche Daten zurück. Eine Beschreibung dieser Funktionen finden Sie unter Räumliche Operationen.
-
Funktionen, die Eigenschaften einer Geometrie zurückgeben
Es gibt eine Vielzahl von Funktionen, die eine oder mehrere Geometrien als Eingabe verwenden und bestimmte Informationen über sie zurückgeben. Diese werden unter Geometrieeigenschaften beschrieben. Bei einigen dieser Funktion wird tatsächlich eine Überprüfung ausgeführt, um zu ermitteln, ob Features bestimmte Kriterien erfüllen. Wenn die Geometrie die Kriterien erfüllt, gibt die Funktion den Wert "1" oder "t" für TRUE (Wahr) zurück. Wenn die Geometrie die Kriterien nicht erfüllt, gibt die Funktion den Wert "0" oder "f" für FALSE (Falsch) zurück. Zu diesen Funktionen gehören die folgenden:ST_EqualSRS (nur PostgreSQL), ST_Is3d (nur Oracle), ST_IsClosed, ST_IsEmpty, ST_IsMeasured (nur Oracle), ST_IsRing, ST_IsSimple und ST_OrderingEquals.
-
Funktionen, die räumliche Daten erstellen oder räumliche Transformationen durchführen
Diese Funktionen verwenden einen Geometrietyp oder eine Geometriebeschreibung und geben eine Geometrie eines anderen Typs zurück. Bei einer dieser Funktionen, ST_Transform, wird der Raumbezug einer Geometrie in Oracle von einem Raumbezug im geographischen Datum in einen anderen Raumbezug im selben geographischen Datum geändert. Die Funktionen, mit denen eine Geometrie aus einem anderen Geometrietyp oder einer Textbeschreibung erstellt werden kann, sind in der nachfolgenden Tabelle aufgeführt:
ST_LineFromShape (nur PostgreSQL)
ST_MPolyFromShape (nur PostgreSQL)
ST_PointFromText (nur Oracle)
ST_LineFromText (nur Oracle)
ST_MPolyFromText (nur Oracle)
ST_Curve (nur Oracle)
ST_PolyFromShape (nur PostgreSQL)
ST_MultiCurve (nur Oracle)
ST_PolyFromText (nur Oracle)
ST_GeomCollFromShape (nur PostgreSQL)
ST_MLineFromShape (nur PostgreSQL)
ST_GeomCollFromWKB (nur PostgreSQL)
ST_MLineFromText (nur Oracle)
ST_Surface (nur Oracle)
ST_GeomFromShape (nur PostgreSQL)
ST_MPointFromShape (nur PostgreSQL)
ST_MultiSurface (nur Oracle)
ST_GeomFromText (nur Oracle)
ST_MPointFromText (nur Oracle)
ST_PointFromShape (nur PostgreSQL)
Der Speichertyp "ST_Raster"
Sie können den Datentyp "ST_Raster" in den ArcSDE-Geodatabases verwenden. Dieser Datentyp kann in der Geodatabase verwendet werden. Außerdem ermöglicht er Anwendungen von Drittanbietern den SQL-Zugriff auf die Raster-Daten.
Der Typ "ST_Raster" ist in ArcSDE-Geodatabases in Oracle, PostgreSQL und Microsoft SQL Server verfügbar.
Zwei verschiedene Kategorien von ST_Raster-Funktionen werden verwendet, um auf den Typ "ST_Raster" mit SQL zuzugreifen:
- ST_Raster-Methode und ST_PixelData-Methode
- Gespeicherte ST_RasterUtil-Prozeduren
ST_Raster-Funktion und ST_PixelData-Funktion
Dies sind Methoden, die das ST_Raster-Objekt instanziieren und damit arbeiten.
Dienstprogramme für gespeicherte ST_RasterUtil-Prozeduren
Die gespeicherten ST_RasterUtil-Prozeduren unterstützen die Erstellung und die Wartung des Typs ST_Raster". Die folgenden Optionen sind möglich:
ST_RasterUtil_checkLibraryVersion