¿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, ocurre lo siguiente:

Se agrega una columna SDO_GEOMETRY a la tabla de negocios de la clase de entidad.

ArcGIS crea una clase de entidad al agregar una columna de geometría a la tabla de negocios especificada. Cuando el parámetro GEOMETRY_STORAGE se establece en SDO_GEOMETRY, ArcGIS agrega una columna SDO_GEOMETRY a la tabla de negocios.

En el siguiente ejemplo, la tabla de negocios tiene propiedades de nombre y población. Después de agregar una columna de geometría, también tiene una columna SDO_GEOMETRY denominada Bordes. Si es necesario, se agrega y completa una columna de identificador de entidad único (OBJECTID en este ejemplo).

Nombre

Tipo de datos

¿Nulo?

NOMBRE

VARCHAR2(32)*

POPULATION

NÚMERO(11)

BORDERS

MDSYS.SDO_GEOMETRY

OBJECTID

NÚMERO(38)

NO NULO

NotaNota:

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

Se puede agregar una columna de geometría a la tabla de negocios mediante ArcCatalog, la utilidad de administración sdelayer o las API de ArcSDE C y Java.

Se crea un índice espacial en la columna SDO_GEOMETRY.

Cuando se agrega una columna SDO_GEOMETRY a una tabla de negocios, en general se crea un índice espacial en esa columna de geometría. De forma predeterminada, ArcGIS crea un índice de árbol R en una columna SDO_GEOMETRY.

De modo alternativo, ArcGIS puede crear clases de entidad sin ningún índice espacial; sin embargo, las consultas espaciales no se pueden admitir hasta tanto se cree un índice espacial. La función SDO_FILTER de Oracle, utilizada por ArcGIS, requiere la presencia de un índice espacial.

Puede crear un índice espacial de diversas formas: en ArcCatalog, con la utilidad de administración sdelayer, con Oracle Spatial Index Advisor, con SQL o programáticamente con las API de ArcSDE C y Java.

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 agrega una columna SDO_GEOMETRY a una tabla de negocios, también 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.

Si se utiliza una aplicación de terceros o SQL para crear la tabla, la columna espacial y los metadatos y la tabla se registra después con ArcSDE, por medio de la herramienta de línea de comando sdelayer, ArcSDE no elimina los metadatos cuando se elimina el registro de la tabla con ArcSDE. Sin embargo, ArcSDE siempre elimina los metadatos cuando se elimina la tabla, como lo hace con el comando sdetable -o delete.

Se especifica una dimensión de coordenadas.

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

El SRID de cada valor SDO_GEOMETRY se establece de acuerdo con la referencia de coordenada.

Oracle Spatial proporciona referencias de coordenadas predefinidas en la tabla MDSYS.CS_SRS. Al utilizar ArcGIS para crear una nueva clase de entidad para configurar un SRID específico para la columna SDO_GEOMETRY, identifique la descripción de referencia de coordenadas de Oracle Spatial adecuada; a continuación, configure el parámetro de almacenamiento SDO_SRID DBTUNE de la clase de entidad en ese valor.

Por ejemplo:

#MY_SDO_KEYWORD GEOMETRY_STORAGE SDO_GEOMETRY SDO_SRID 8307 UI_TEXT "MY_SDO_KEYWORD" END

Si el parámetro de almacenamiento SDO_SRID no se configura, ArcGIS establece el SRID de cada valor SDO_GEOMETRY en NULO, así como también el SRID en el registro de metadatos correspondiente.

ArcGIS no requiere el Oracle spatial SRID; ArcGIS mantiene la información de referencia de coordenadas para cada clase de entidad en la tabla SPATIAL_REFERENCES propia independientemente de Oracle Spatial. Consulte la Referencia y guía del usuario de Oracle Spatial para obtener información sobre las referencias de coordenadas admitidas.

Se completa la columna SDO_GEOMETRY.

Al almacenar geometría en la geodatabase, ArcGIS completa el valor SDO_GEOMETRY de un objeto de API de ArcSDE 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)

BORDERS

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.

9/11/2013