¿Qué es Oracle Spatial?
Oracle Spatial es una extensión del sistema de administración de bases de datos (DBMS) de Oracle que agrega un tipo espacial y funciones de consulta espacial a Oracle. Oracle lo ofrece con dos opciones primarias.
- Oracle Spatial es un componente opcional de Oracle Database Enterprise Edition. Además de proporcionar el tipo SDO_Geometry, Oracle Spatial brinda una cantidad de capacidades geoespaciales adicionales.
- Oracle Locator brinda un subconjunto de capacidades de Oracle Spatial. Se incluye como un componente estándar de las ediciones Oracle Database Standard y Enterprise. Entre otras capacidades, proporciona el tipo de geometría de Oracle Spatial (al que se denomina SDO_Geometry) y una API de SQL a este contenido.
Oracle Spatial comparte una funcionalidad duplicada con muchos sistemas de información geográfica incluido ArcGIS. La manera principal en la que la mayoría de los usuarios de ArcGIS aplican Oracle Spatial es como un mecanismo opcional para el acceso y almacenamiento de geodatabase en un DBMS de Oracle. Esencialmente, una de las opciones que los usuarios de ArcGIS pueden elegir cada vez que crean una nueva clase de entidad o dataset ráster en una geodatabase en Oracle es cómo almacenar geometría ráster o de entidad; pueden utilizar la geodatabase o las opciones de almacenamiento de datos de Oracle Spatial.
ArcSDE admite el modelo de objeto relacional de Oracle Spatial como un método opcional para almacenar datos espaciales. Específicamente, la geometría de Oracle Spatial o Locator se puede utilizar para almacenar y administrar el contenido de entidad y ráster de datasets dentro de las geodatabases de ArcSDE.
Una vista general del almacenamiento de datos de Oracle Spatial
Oracle Spatial brinda un tipo de geometría espacial (MDSYS.SDO_GEOMETRY), un esquema de metadatos espaciales, métodos de indexación, funciones y reglas de implementación, que se describen a continuación.
Oracle Locator es un subconjunto de Oracle Spatial. Oracle Locator incluye el tipo de datos SDO_GEOMETRY junto con algunas de las funcionalidades proporcionadas con Oracle Spatial. Oracle Locator se puede utilizar con ArcSDE. Consulte la documentación de Oracle para obtener una explicación sobre la diferencia entre Oracle Spatial y Oracle Locator. En este tema, "Oracle Locator" se puede utilizar en lugar de las referencias a "Oracle Spatial".
-
SDO_GEOMETRY
El tipo de geometría de Oracle Spatial SDO_GEOMETRY se implementa mediante el sistema de tipo de objeto relacional extensible de Oracle. El tipo SDO_GEOMETRY almacena información acerca de una geometría que incluye el tipo de geometría, el ID de referencia espacial, el tipo de interpolación (recto frente a curvado) y los valores de coordenadas. El tipo SDO_GEOMETRY en geodatabases de ArcSDE es compatible con la geometría de punto, línea y área única o multiparte. Las geometrías se pueden describir como con una interpolación lineal entre coordenadas según se define en OpenGIS Simple Feature Specification. Las geometrías también se pueden crear a partir de curvas circulares o una combinación de ambos métodos de interpolación. Los programas de aplicaciones son responsables de insertar, actualizar y recuperar correctamente el contenido del tipo SDO_GEOMETRY mediante la interfaz de SQL de objeto relacional de Oracle. Las aplicaciones también son responsables de asegurar que el contenido de cada geometría se ajuste a las reglas definidas en la documentación de Oracle Spatial. Oracle brinda rutinas de validación de geometría que se pueden ejecutar después de insertar las geometrías. Además, a partir de Oracle 11.1.0.7, la geometría se valida en inserciones de índices.
Nota:Las rutinas de validación de geometría de Oracle no implementan precisamente el mismo conjunto de reglas que la validación de geometría de ArcSDE. Sin embargo, ArcSDE está diseñado para escribir SDO_GEOMETRY que cumple con las reglas de validación de Oracle.
-
Esquema de metadatos
Se debe registrar la información acerca de cada columna SDO_GEOMETRY en el esquema de metadatos de Oracle Spatial, aunque Oracle Spatial no hace esto automáticamente. (El esquema de metadatos de Oracle Spatial se expone para cada esquema como la vista USER_SDO_GEOM_METADATA). El software que crea las columnas SDO_GEOMETRY debe insertar los metadatos para esas columnas. ArcSDE hace esto para cualquier clase de entidad SDO_GEOMETRY que crea. Los metadatos contienen el nombre de columna espacial, el nombre de la tabla en la que reside y del propietario, el identificador de referencia espacial (SRID) de Oracle, el número de dimensiones, el rango de cada dimensión y la tolerancia de coordenadas.
-
Índices espaciales
Los índices espaciales brindan un acceso rápido a entidades basado en la ubicación de la geometría. Para SDO_GEOMETRY, los índices espaciales de árbol R son en general los más eficientes y fáciles de crear, y Oracle recomienda su uso en la mayoría de las situaciones. Oracle Spatial brinda la utilidad Spatial Index Advisor para ayudar a determinar el mejor tipo de índice espacial para una tabla determinada. Además, consulte la referencia y la guía del usuario de Oracle Spatial para obtener información detallada acerca de los tipos de índices espaciales admitidos, cómo crearlos, y las ventajas y desventajas de los diferentes métodos de índice espacial.
-
Funciones espaciales
Oracle Spatial extiende SQL con funciones espaciales de búsqueda para el filtrado primario y secundario. Al incluir la función SDO_FILTER en una consulta SQL, se realiza una búsqueda espacial primaria con el índice espacial. Los predicados espaciales, como SDO_RELATE y SDO_CONTAINS, devuelven relaciones secundarias entre pares de objetos SDO_GEOMETRY. Oracle Spatial tiene funciones espaciales de transformación que cambian la forma de un valor SDO_GEOMETRY. Por ejemplo, la función SDO_BUFFER calcula las coordenadas de un nuevo objeto SDO_GEOMETRY como un polígono de zona de influencia a una distancia determinada alrededor de la geometría original. Entre las demás funciones espaciales de transformación, se incluyen las siguientes: SDO_DIFFERENCE y SDO_INTERSECTION.
-
Referencia de coordenadas y SRID
Oracle Spatial brinda acceso a una cantidad de sistemas de referencia de coordenadas predefinidos mediante un valor SRID. El valor SRID, almacenado en el objeto SDO_GEOMETRY, especifica la referencia de coordenadas para la geometría almacenada en ese objeto. Si no es NULL, el SRID en el objeto SDO_GEOMETRY es una clave externa en una tabla que contiene detalles acerca de cada SRID. Esta tabla es MDSYS.CS_SRS. La función SDO_TRANSFORM utiliza el ID de referencia espacial para establecer las transformaciones de referencia de coordenadas. ArcSDE también utiliza esta información para crear referencias espaciales de ArcSDE.