¿Cómo utilizan las geodatabases Oracle Spatial?

ArcGIS admite Oracle Spatial u Oracle Locator para el almacenamiento y la administración de geometría en una geodatabase en Oracle. Para utilizarlo en una geodatabase, debe tener SDO_GEOMETRY especificado para el parámetro GEOMETRY_STORAGE de una de las palabras clave de configuración. Si desea utilizar el almacenamiento de geometría de Oracle Spatial la mayor parte del tiempo, especifique SDO_GEOMETRY para el parámetro GEOMETRY_STORAGE en la palabra clave de configuración DEFAULTS. Si desea utilizarlo sólo para algunos datasets, utilice la palabra clave SDO_GEOMETRY al crear cada dataset individual.

Utilizar Oracle Spatial en una geodatabase

Cuando crea por primera vez una geodatabase en Oracle, ST_Geometry es el tipo de almacenamiento de geometría predeterminado. La configuración predeterminada para el almacenamiento se define en la tabla DBTUNE con los parámetros GEOMETRY_STORAGE.

Si desea almacenar solo algunas de las clases de entidad con el almacenamiento de SDE_GEOMETRY, puede especificar la palabra clave SDO_GEOMETRY al crear la clase de entidad. Al hacer esto, se crea esa clase de entidad en particular con una columna SDO_GEOMETRY. En el archivo dbtune, aparece la palabra clave SDO_GEOMETRY de la siguiente manera:

##SDO_GEOMETRY GEOMETRY_STORAGE    "SDO_GEOMETRY" ATTRIBUTE_BINARY    "BLOB" RASTER_STORAGE	    "SDO_GEORASTER" SDO_COMMIT_INTERVAL  1000 UI_TEXT          "User Interface text description for SDO_GEOMETRY"  COMMENT        "Any general comment for SDO_GEOMETRY keyword"  END

Si planea utilizar el tipo de almacenamiento SDO_GEOMETRY para la mayoría de clases de entidad, puede establecer GEOMETRY_STORAGE bajo la palabra clave DEFAULTS en la tabla DBTUNE para SDO_GEOMETRY.

Para cambiar el almacenamiento de geometría predeterminado, utilice el comando de administración sdedbtune con la operación modificar para configurar el parámetro GEOMETRY_STORAGE de SDO_GEOMETRY bajo la palabra clave DEFAULTS. Después de que se cambia la configuración de GEOMETRY_STORAGE predeterminada a SDO_GEOMETRY, se crean clases de entidad con columnas SDO_GEOMETRY por defecto. Por ejemplo

sdedbtune -o alter -k DEFAULTS -P GEOMETRY_STORAGE  -v "SDO_GEOMETRY" -u sde
NotaNota:

Para obtener detalles sobre el uso del comando sdedbtune, consulte la Referencia de comandos de administración de ArcSDE instalada con el servidor de aplicaciones ArcSDE.

Las geodatabases en Oracle son compatibles con una cantidad de tipos de almacenamiento de geometría diferentes; estos tipos diferentes se pueden utilizar todos juntos en la misma base de datos. Mientras que solo puede haber un tipo de geometría predeterminado, las tablas individuales se pueden crear mediante diferentes tipos de geometría.

Requisitos previos para el uso de tablas de Oracle Spatial existentes con una geodatabase

ArcGIS puede utilizar correctamente las tablas que contienen columnas SDO_GEOMETRY creadas externamente mediante otras aplicaciones o con SQL (algunas veces denominadas tablas de terceros) siempre que las tablas cumplan con ciertos requisitos previos:

Consideraciones de interoperabilidad

Una equivocación común es que las aplicaciones pueden interoperar simplemente porque admiten el mismo tipo de geometría subyacente. Sin embargo, el tipo de geometría es sólo un aspecto de la geodatabase así como también otros esquemas de base de datos SIG. También es necesario comprender las reglas, las restricciones, el esquema y la implementación. Algunas cosas que debe tener en cuenta al utilizar Oracle Spatial con una geodatabase y ArcGIS son las siguientes:

ArcGIS no admite varias columnas de geometría en una tabla.

Se debe obtener acceso a las tablas con varias columnas SDO_GEOMETRY mediante las vistas que contienen sólo una columna SDO_GEOMETRY.

Para utilizar datos en una tabla de Oracle Spatial que contiene varias columnas espaciales, cree una vista espacial con SQL. Esta vista debe contener sólo una columna espacial. Consulte Crear una vista de base de datos en ArcGIS for Desktop

ArcGIS solo admite un único tipo de geometría en una columna SDO_GEOMETRY.

Si una única columna SDO_GEOMETRY en una tabla contiene varios tipos de geometría (por ejemplo, algunos registros son puntos y algunos son polígonos), la tabla no se puede registrar con la geodatabase; la clase de entidad se debe registrar con un tipo de geometría.

Oracle Spatial no implementa necesariamente restricciones de tipos de geometría en una columna SDO_GEOMETRY. Sin esta implementación, una aplicación puede intentar mantener una restricción de tipo de geometría único, pero otra aplicación puede insertar diferentes tipos de geometría. A partir de Oracle9i, tiene la opción de restringir el tipo de geometría en la inserción a la tabla con un parámetro de creación de índice espacial. Para versiones de Oracle anteriores, otra opción para aplicar restricciones de tipos de geometría es crear un desencadenador de inserción-actualización que verifica la propiedad SDO_GEOMETRY GTYPE.

La validación de geometría no es la misma entre ArcGIS y SDO_GEOMETRY.

ArcGIS valida la geometría al insertar o actualizar geometrías. En Oracle 10g, Oracle Spatial no aplica automáticamente la validación de geometría en la inserción o actualización de un valor SDO_GEOMETRY si inserta o actualiza geometrías mediante métodos que no son clientes de ArcGIS, como SQL. En Oracle 11g, Oracle Spatial valida geometrías en inserciones de índice.

Los problemas pueden surgir si los valores de geometría que están mal formados o no son válidos pasaron a aplicaciones cliente de ArcGIS. Para reducir los problemas que puedan surgir, debe validar cualquier geometría creada o modificada por cualquier método que no sea una aplicación de ArcGIS.

Existen dos herramientas disponibles para la validación de geometría. VALIDATE_GEOMETRY_WITH_CONTEXT de Oracle verifica geometrías mediante las reglas de validación de formas de Oracle y sdelayer –o feature_info las verifica mediante reglas de ArcGIS. La operación feature_info incluye opcionalmente, como parte del resultado, la información acerca de si la geometría de una forma es o no válida para ArcGIS. Para obtener detalles sobre el uso de esta operación, consulte la documentación de la Referencia de comandos de administración incluida con la instalación del servidor de aplicaciones ArcSDE.

La validación de geometría de ArcGIS no es la misma que la validación de geometría de Oracle Spatial. Si bien es importante que las geometrías pasen la validación de Oracle Spatial, validar correctamente geometrías con rutinas de validación de Oracle no garantiza que ArcGIS valide las geometrías.

Puede crear un desencadenador de inserción-actualización para activar la función SDO_VALIDATE a fin de aplicar la validación de tipos SDO_GEOMETRY.

La API de ArcSDE C se puede utilizar para escribir una aplicación que recupera entidades incluso si no pasan la validación de forma de ArcGIS. Sin embargo, es tarea de la aplicación cliente determinar si la geometría es adecuada o cómo corregirla.

La mayoría de las aplicaciones que leen objetos SDO_GEOMETRY no pueden interpretar datos SDO_ETYPE 0 creados por otras aplicaciones.

Oracle Spatial permite que las aplicaciones inserten datos específicos de aplicación en un objeto SDO_GEOMETRY. Las aplicaciones hacen esto al incorporar datos mediante un valor SDO_ETYPE de 0. Esto permite una gran flexibilidad para que las aplicaciones almacenen muchos tipos de geometrías no convencionales y otros datos. Sin embargo, el significado de los datos específicos de aplicación es importante sólo para la aplicación que generó el objeto SDO_GEOMETRY especial. Tales datos específicos de aplicación no se pueden admitir con seguridad en un entorno interoperable. Las aplicaciones que leen objetos SDO_GEOMETRY probablemente no puedan interpretar datos SDO_ETYPE 0 creados por otras aplicaciones. Las aplicaciones que actualizan objetos SDO_GEOMETRY no pueden editar ni preservar los datos SDO_ETYPE 0.

Al leer objetos SDO_GEOMETRY que contienen elementos SDO_ETYPE 0, ArcGIS ignora los datos SDO_ETYPE 0 y pasa sólo los elementos de geometría de entidad simple que admite en la aplicación.

Al actualizar los objetos SDO_GEOMETRY que contienen elementos SDO_ETYPE 0, ArcGIS no preserva los datos SDO_ETYPE 0. Por lo tanto, las aplicaciones que requieren que se preserven esos datos SDO_ETYPE 0 deben evitar que los usuarios obtengan acceso UPDATE a la tabla.

ArcGIS requiere que todos los valores SDO_GEOMETRY en una columna estén en el mismo sistema de referencia de coordenadas.

Si la referencia de coordenadas no está definida, el valor de SRID debe ser NULL como se indica en la Referencia y guía del usuario de Oracle Spatial.

Antes de Oracle9i, Oracle Spatial no aplica automáticamente la validación de ID de referencia espacial en la inserción o actualización de un valor SDO_GEOMETRY. Para aplicar la validación de tipos SDO_GEOMETRY en estas instancias anteriores de Oracle, puede crear un desencadenador de inserción-actualización para activar la función SDO_VALIDATE. Oracle Spatial requiere que el SRID en cada geometría coincida uno con otro y con el SRID en los metadatos espaciales, incluso si es NULL.

Oracle Spatial y ArcGIS suponen que la primera y segunda dimensión SDO_GEOMETRY es x e y, respectivamente.

Si un objeto SDO_GEOMETRY tiene tres dimensiones, ArcGIS interpreta la tercera dimensión como una medida si el nombre de dimensión (en los metadatos espaciales) comienza con la letra "m"; de lo contrario, se asume que la tercera dimensión es una elevación. Puede controlar cómo ArcGIS interpreta la tercera dimensión al configurar el marcador de entidad de la clase de entidad para que tenga elevaciones o medidas.

Oracle permite codificar qué dimensión contiene una medida ordenada. El segundo dígito de SDO_GTYPE de cuatro dígitos puede ser 0, 3 ó 4. Si es 3 ó 4, esto indica la dimensión que contiene la ordenada de medida. ArcGIS lee esta codificación. De lo contrario, si el objeto SDO_GEOMETRY tiene cuatro dimensiones, la medida se interpreta como la última ordenada.

Oracle Spatial (pero no Oracle Locator) brinda funciones para cálculos del sistema de referencia lineal (LRS) mediante valores de medida.

Las funciones del LRS de Oracle Spatial requieren que todos los valores de medida en una geometría sean monotónicamente ascendentes o descendentes sin valores NaN. El LRS de Oracle Spatial también restringe valores de medida a cadenas de texto de líneas.

ArcGIS permite medidas y cálculos de LRS en todos los tipos geométricos, con compatibilidad para valores de medida ordenados arbitrariamente y valores NaN.

Si desea utilizar las funciones del LRS de Oracle Spatial, asegúrese de diseñar la aplicación y la base de datos para operar dentro de las restricciones del LRS de Oracle Spatial.

ArcGIS necesita un identificador de entidad único en la tabla espacial para realizar consultas espaciales, consultas de archivos de registro, operaciones de única fila y operaciones de base de datos versionadas.

Con el esquema binario comprimido de ArcSDE, la columna de geometría puede cumplir este propósito debido a que es una clave externa en la tabla de entidad y se define como un valor de entero único no nulo. SDO_GEOMETRY no incluye un valor de identificación único, de modo que cuando ArcGIS agrega la columna SDO_GEOMETRY a una tabla existente, también puede agregar una columna de identificación única. Tal columna es la columna ID de fila registrada. Esta columna en general se denomina OBJECTID, pero puede tener otro nombre. También se puede utilizar una columna existente para la columna ID de fila registrada siempre que esté indexada y sea un entero, UNIQUE y NOT NULL. Las columnas Id. de fila registradas mantenidas por ArcGIS deben ser NÚMERO(38) ÚNICA NO NULA.

Se puede agregar una columna ID de fila registrada con el comando de administración sdetable o la aplicación ArcCatalog. Muchas aplicaciones, como ArcGIS, requieren una columna ID de fila registrada en cada tabla o clase de entidad. Cada aplicación tiene sus propios requisitos y limitaciones.

La modificación de las clases de entidad de Oracle Spatial que participan en redes, topologías, relaciones o restricciones se debe restringir a aplicaciones de ArcGIS.

ArcGIS puede crear y mantener redes y clases de entidades topológicas integradas de clases de entidad simple que utilizan el tipo SDO_GEOMETRY. ArcGIS aplica relaciones y restricciones en muchas fuentes de datos diferentes. ArcGIS administra las relaciones y mantiene la integridad topológica de los datos; las modificaciones a las entidades subyacentes a través de ArcGIS se reflejan en estas redes, topologías y relaciones integradas.

La modificación de las clases de entidad de Oracle Spatial que participan en redes, topologías, relaciones y restricciones se debe restringir a aplicaciones de ArcGIS. Otras aplicaciones pueden leer libremente los datos, pero las modificaciones no se reflejan como corresponde en la geodatabase.

Temas relacionados

9/11/2013