Was ist Oracle Spatial?
Oracle Spatial ist eine Erweiterung zum Oracle-Datenbankmanagementsystem (DBMS), das einen räumlichen Datentyp und räumliche Abfragefunktionen zu Oracle hinzufügt. Es wird von Oracle mit zwei primären Optionen angeboten.
- Oracle Spatial ist ein optionales Feature der Oracle Database Enterprise Edition. Neben dem Typ "SDO_Geometry" bietet Oracle Spatial eine Reihe von zusätzlichen räumlichen Funktionen.
- Oracle Locator stellt eine Teilmenge der Oracle Spatial-Funktionen bereit. Es ist als Standard-Feature in den Oracle-Database-Editionen Standard und Enterprise enthalten. Neben anderen Funktionen stellt es den Oracle Spatial-Geometrietyp (als SDO_Geometry bezeichnet) und eine SQL-API für diesen Inhalt bereit.
Oracle Spatial verwendet die gleiche Funktionalität wie viele geographische Informationssysteme, einschließlich ArcGIS. Der Hauptgrund, warum die meisten ArcGIS-Benutzer Oracle Spatial anwenden, ist als optionaler Mechanismus für Geodatabase-Speicherung und Zugriff in einem Oracle-DBMS. Im Grunde ist eine der Optionen, die ArcGIS-Benutzer jedes Mal treffen können, wenn sie in einer Geodatabase in Oracle eine neue Feature-Class oder ein Raster-Dataset erstellen, wie Feature- oder Raster-Geometrie gespeichert wird – sie können entweder die Geodatabase- oder die Oracle Spatial-Datenspeicherungsoptionen verwenden.
ArcSDE unterstützt das objektrelationale Modell von Oracle Spatial als optionale Methode, um räumliche Daten zu speichern. Genau genommen kann Oracle Spatial- oder Locator-Geometrie verwendet werden, um die Feature- und Raster-Inhalte von Datasets in den ArcSDE-Geodatabases zu speichern und zu verwalten.
Überblick über die Oracle Spatial-Datenspeicherung
Oracle Spatial stellt einen räumlichen Geometrietyp (MDSYS.SDO_GEOMETRY), ein räumliches Metadatenschema, Indizierungsmethoden, Funktionen und Implementierungsregeln bereit, die unten beschrieben sind.
Oracle Locator ist eine Teilmenge von Oracle Spatial. Oracle Locator schließt den SDO_GEOMETRY-Datentyp mit einigen Funktionen ein, die mit Oracle Spatial bereitgestellt werden. Oracle Locator kann mit ArcSDE verwendet werden. Eine Erklärung des Unterschiedes zwischen Oracle Spatial und Oracle Locator finden Sie in der Dokumentation von Oracle. Überall in diesem Thema kann "Oracle Locator" anstelle der Verweise auf "Oracle Spatial" verwendet werden.
-
SDO_GEOMETRY
Der Oracle Spatial-Geometrietyp SDO_GEOMETRY wird mit dem erweiterbaren objektrelationalen Typsystem von Oracle implementiert. Der Typ SDO_GEOMETRY speichert Informationen zu einer Geometrie einschließlich seines Geometrietyps, Raumbezugs-ID, Interpolationstyp (gerade oder gekrümmt) und Koordinatenwerte. Der Typ SDO_GEOMETRY in ArcSDE-Geodatabases unterstützt Single- und Multipart-Punkte, Linien- und Flächengeometrie. Geometrien können als eine lineare Interpolation zwischen Koordinaten beschrieben werden, wie durch die OpenGIS Simple Feature Specification definiert ist. Geometrien können auch aus kreisförmigen Kurven oder einer Kombination beider Interpolationsmethoden erstellt werden. Anwendungen sind für das ordnungsgemäße Einfügen, Aktualisieren und das Abrufen des Inhalts des Typs SDO_GEOMETRY mit der objektrelationalen SQL-Schnittstelle von Oracle zuständig. Anwendungen müssen auch sicherstellen, dass der Inhalt jeder Geometrie den in der Oracle Spatial-Dokumentation definierten Regeln entspricht. Oracle stellt Geometrieprüfroutinen bereit, die nach dem Einfügen von Geometrien ausgeführt werden können. Darüber hinaus wird, beginnend mit Oracle 11.1.0.7, Geometrie auf Indexeinfügungen überprüft.
Hinweis:Die Geometrieprüfroutinen von Oracle implementieren nicht genau den gleichen Satz von Regeln wie die ArcSDE-Geometrieüberprüfung. ArcSDE ist jedoch zum Schreiben von SDO_GEOMETRY konzipiert, die den Validierungsregeln von Oracle entspricht.
-
Metadaten-Schema
Informationen zu jeder SDO_GEOMETRY-Spalte sollten im Oracle Spatial-Metadatenschema aufgezeichnet werden, obwohl Oracle Spatial dies nicht automatisch macht. (Das Oracle Spatial-Metadatenschema wird für jedes Schema als die Sicht USER_SDO_GEOM_METADATA zur Verfügung gestellt.) Die Software, die SDO_GEOMETRY-Spalten erstellt, muss die Metadaten für diese Spalten einfügen. ArcSDE führt dies für alle SDO_GEOMETRY-Feature-Classes aus, die es erstellt. Die Metadaten enthalten den Namen der räumlichen Spalte, den Namen und den Besitzer der Tabelle, in der sie sich befinden, die Oracle Spatial-Bezugskennung (SRID), die Anzahl der Dimensionen, den Bereich jeder Dimension und die Koordinatentoleranz.
-
Räumliche Indizes
Räumliche Indizes bieten schnellen Zugriff auf Features auf Grundlage der Position ihrer Geometrie. Für SDO_GEOMETRY sind räumliche R-Baum-Indizes im Allgemeinen die effizientesten und am einfachsten zu erstellenden, und Oracle empfiehlt ihre Verwendung in den meisten Situationen. Oracle Spatial stellt das Dienstprogramm Spatial Index Advisor bereit, um dabei zu helfen, den besten räumlichen Indextyp für eine vorhandene Tabelle zu bestimmen. Schlagen Sie außerdem im Handbuch "Oracle Spatial User's Guide and Reference" für ausführliche Informationen zu unterstützten räumlichen Indextypen, wie sie erstellt werden und die Kompromisse zu anderen räumlichen Indexmethoden nach.
-
Spatial-Funktionen
Oracle Spatial erweitert SQL durch räumliche Suchfunktionen für primäre und sekundäre Filterung. Einschließlich der Funktion SDO_FILTER in einer SQL-Abfrage führt sie eine primäre räumliche Suche durch, die den räumlichen Index verwendet. Räumliche Prädikate, wie z. B. SDO_RELATE und SDO_CONTAINS, geben sekundäre Beziehungen zwischen Paaren von SDO_GEOMETRY-Objekten zurück. Oracle Spatial hat räumliche Transformationsfunktionen, die die Form eines SDO_GEOMETRY-Werts ändern. Die Funktion SDO_BUFFER berechnet beispielsweise die Koordinaten eines neuen SDO_GEOMETRY-Objekts als ein Pufferpolygon bei einer gegebenen Entfernung, die die ursprüngliche Geometrie umgibt. Andere räumliche Transformationsfunktionen schließen SDO_DIFFERENCE und SDO_INTERSECTION ein.
-
Koordinatenbezug und SRID
Oracle Spatial bietet Zugriff auf eine Reihe von vordefinierten Koordinatenbezugssystemen mit einem SRID-Wert. Der im SDO_GEOMETRY-Objekt gespeicherte SRID-Wert gibt den Koordinatenbezug für die in diesem Objekt gespeicherte Geometrie an. Wenn er nicht NULL ist, ist die SRID im SDO_GEOMETRY-Objekt ein Fremdschlüssel für eine Tabelle, die Details zu jeder SRID enthält. Diese Tabelle ist MDSYS.CS_SRS. Die Funktion SDO_TRANSFORM legt Koordinatenbezugstransformationen mithilfe der Raumbezugs-ID fest. ArcSDE verwendet diese Informationen ebenfalls zum Erstellen von ArcSDE-Raumbezügen.