¿Qué ocurre cuando se crean clases de entidad con el almacenamiento de geometría SDO_GEOMETRY?

Al crear una clase de entidad con el almacenamiento SDO_GEOMETRY en una geodatabase, ocurre lo siguiente:

Se crea una tabla con una columna SDO_GEOMETRY.

Si especifica una palabra clave de configuración de DBTUNE que tenga el parámetro GEOMETRY_STORAGE definido en SDO_GEOMETRY al crear una clase de entidad en una geodatabase de Oracle, ArcGIS usa una columna SDO_GEOMETRY para el campo de forma.

La siguiente clase de entidad de ejemplo tiene un campo identificador único (ObjectID), atributos de población y nombre y una columna de forma SDO_GEOMETRY.

Nombre

Tipo de datos

¿Nulo?

NOMBRE

VARCHAR2(32)*

POPULATION

NÚMERO(11)

FORMA

MDSYS.SDO_GEOMETRY

OBJECTID

NÚMERO(38)

NO NULO

NotaNota:

*Se usa NVARCHAR2(32) en lugar de VARCHAR2(32) si utiliza cadenas Unicode.

Se crea un índice espacial en la columna SDO_GEOMETRY.

De forma predeterminada, ArcGIS crea un índice espacial de árbol R en la columna SDO_GEOMETRY de una clase de entidad. ArcGIS utiliza la función SDO_FILTER de Oracle para realizar consultas espaciales en la clase de entidad; por tanto, se requiere un índice espacial para consultas espaciales.

ArcGIS descarta y vuelve a crear automáticamente índices de Oracle Spatial creados por ArcGIS cada vez que la clase de entidad se alterna entre los modos LOAD_ONLY_IO y NORMAL_IO. Los índices espaciales definidos por la aplicación Oracle Spatial Index Advisor o creados mediante SQL no se descartan cuando ArcGIS cambia la clase de entidad al modo LOAD_ONLY_IO.

Se agrega un registro a la vista de metadatos de Oracle Spatial.

Cuando ArcGIS crea la clase de entidad que contiene una columna SDO_GEOMETRY, agrega el registro de metadatos de Oracle Spatial requerido a la vista USER_SDO_GEOM_METADATA. Estos metadatos incluyen la información del nombre de tabla, del nombre de la columna SDO_GEOMETRY, del ID de referencia espacial y de la dimensión de coordenadas.

Cuando se usa ArcGIS para eliminar la clase de entidad, también se eliminan los metadatos de Oracle Spatial.

Se especifica una dimensión de coordenadas.

Puede crear una geometría de ArcGIS como 2D (x,y), 2D con medidas (x,y,m), 3D (x,y,z) o 3D con medidas (x,y,z,m). Al crear nuevas clases de entidad con una columna SDO_GEOMETRY, ArcGIS coloca la información de dimensión de Oracle Spatial en la columna DIMINFO de la vista de metadatos.

Se rellena la columna SDO_GEOMETRY.

Al almacenar geometría en la geodatabase, ArcGIS rellena el valor SDO_GEOMETRY de un objeto de API denominado SE_SHAPE. El objeto SE_SHAPE puede contener geometría simple o compleja que puede incluir elevaciones, medidas, datos CAD, anotación y parches de superficie. El tipo de datos SDO_GEOMETRY admite un subconjunto de estas propiedades geométricas. Dado que no hay ninguna asignación uno a uno de los componentes en SDO_GEOMETRY y en el objeto SE_SHAPE, ArcGIS sigue un conjunto de reglas al almacenar datos tablas de Oracle Spatial:

NotaNota:

ArcGIS no admite una colección de geometría heterogénea en el objeto SDO_GEOMETRY y ArcGIS no codifica elementos SDO_ETYPE 0 en el objeto SDO_GEOMETRY. Los elementos SDO_ETYPE 0 son elementos específicos de aplicación.

Se agrega una columna adicional a la tabla de negocios si se almacenan propiedades de CAD y anotación.

El tipo SDO_GEOMETRY no puede almacenar todos los tipos de elementos geométricos que el almacenamiento de ArcGIS debe admitir. Cuando se requiere el almacenamiento de estos elementos (como se determina en los marcadores de tipo de geometría especificados cuando se crea la clase de entidad), ArcGIS agrega una columna denominada SE_ANNO_CAD_DATA a la tabla de negocios. Con el ejemplo de clase de entidad de la primera sección en este tema, la tabla de negocios contiene lo siguiente:

Nombre

Tipo de datos

¿Nulo?

NOMBRE

VARCHAR2(32)*

POPULATION

NÚMERO(11)

FORMA

MDSYS.SDO_GEOMETRY

SE_ANNO_CAD_DATA

BLOB

OBJECTID

NÚMERO(38)

NO NULO

NotaNota:

*Se usa NVARCHAR2(32) en lugar de VARCHAR2(32) si utiliza cadenas Unicode.

Cada vez que ArcGIS detecta que la fuente de datos tiene datos CAD, ArcGIS escribe una representación geométrica simple de los datos CAD en el valor SDO_GEOMETRY y escribe los datos CAD no modificados en el valor SE_ANNO_CAD_DATA. Si la fuente de datos no tiene datos CAD, ArcGIS establece el valor SE_ANNO_CAD_DATA en NULL. La propiedad SE_ANNO_CAD_DATA contiene datos de una gran cantidad de componentes de ArcGIS:

Las consultas espaciales en la clase de entidad se realizan con las funciones de filtro de Oracle Spatial.

ArcGIS utiliza la función SDO_FILTER de Oracle Spatial para realizar la primera consulta espacial. ArcGIS realiza el filtrado secundario de SDO_GEOMETRY según la relación espacial solicitada por la aplicación.

Las aplicaciones también pueden incluir funciones de filtro primarias y secundarias de Oracle Spatial en la cláusula WHERE de SQL suministrada a ArcGIS. Con los filtros espaciales en la cláusula WHERE, las aplicaciones pueden distribuir la consulta espacial al servidor de base de datos, el servidor de aplicación de ArcSDE y la aplicación misma.

5/10/2014