Clases de entidad en una geodatabase en Oracle
Una clase de entidad es un conjunto de entidades geográficas, todas del mismo tipo de geometría (punto, línea, polígono, multipunto, anotación, dimensión o multiparche). Por ejemplo, puede almacenar los puntos que representan todos los depósitos de trenes de una línea de ferrocarril en una sola clase de entidad. En otra clase de entidad, puede almacenar líneas que representen todos las pistas del ferrocarril.
Este tema contiene descripciones del modo en que aparece una clase de entidad en una ventana de catálogo, tanto en el sistema de administración de bases de datos (DBMS) como en un documento XML.
Clases de entidad en ArcGIS Desktop
Existen siete tipos de clases de entidad que puede crear en ArcGIS Desktop: punto, multipunto, línea, poligonal, anotación, dimensión o multiparche.
Dentro del árbol de catálogo, puede saber qué tipo de clase de entidad es cada una de acuerdo al icono. La tabla que se presenta a continuación muestra el icono para cada tipo de clase de entidad.
Icono de clase de entidad |
Tipo de clase de entidad |
---|---|
Punto o multipunto |
|
Línea |
|
Polígono |
|
Anotación |
|
Dimensión |
|
Multiparche |
En Oracle, el nombre de una clase de entidad tal como aparece en el árbol de catálogo incluye el nombre del usuario que posee la clase de entidad y el nombre de la clase de entidad misma.
Por ejemplo, en el árbol de catálogo, la clase de entidad parcelas que posee el usuario Perrita figura como PERRITA.Parcels.
Para obtener una descripción sobre los diferentes tipos de clases de entidad, consulte el tema Conceptos básicos sobre clases de entidad.
Tablas de clases de entidad en una base de datos de Oracle
Las clases de entidad en las bases de datos de Oracle utilizan uno de los tres tipos de almacenamiento de geometría: ST_Geometry (predeterminado), binario o SDO_Geometry.
Todas las clases de entidad cuentan con una tabla base (también denominada tabla de negocios) que almacena información de atributos, un Id. de objeto y un campo Forma. El Id. de objeto y los campos Forma pueden tener diferentes nombres, pero deben encontrarse en la tabla base de una clase de entidad.
Las clases de entidad de anotación y de dimensión tienen más campos requeridos en las tablas base. Para obtener una lista de estos campos, consulte los temas Administrar propiedades de clase de entidad de anotación y Propiedades de entidad de dimensión.
Tablas de clases de entidad en una base de datos de Oracle almacenadas con el tipo ST_Geometry
Las clases de entidad almacenadas con el tipo ST_Geometry (definido por el usuario) consisten de una tabla base y un índice espacial. En estas clases de entidad, la columna espacial ST_Geometry almacena la geometría de la clase de entidad a subclases, como ST_LineString, ST_MultiPoint o ST_Polygon. Los valores de geometría se almacenan directamente en esta columna espacial.
Las clases de entidad ST_Geometry también cuentan con una tabla de índice espacial afiliado (S). La convención de denominación de tablas de índice espacial depende del identificador que se genera en la tabla ST_GEOMETRY_INDEX cuando se crea el índice espacial de la clase de entidad. Por ejemplo, un índice espacial con un valor INDEX_ID de 16 en la tabla ST_GEOMETRY_INDEX se denominaría S16_IDX$.
La creación de un índice espacial en una tabla hace que se genere una entrada para la tabla dentro de las tablas del sistema ST_GEOMETRY_COLUMNS y ST_GEOMETRY_INDEX. La tabla de esquema de información ST_GEOMETRY_COLUMNS se utiliza para realizar selecciones y operaciones de metadatos DML. Los procedimientos almacenados se utilizan para insertar y eliminar entradas de la tabla ST_GEOMETRY_COLUMNS.
Cuando una clase de entidad se crea a través de ArcGIS con un almacenamiento de ST_Geometry, se genera una tabla de negocios con una columna ST_Geometry en el esquema del propietario. Además, se agregan registros a las tablas LAYERS, TABLE_REGISTRY, GEOMETRY_COLUMNS, COLUMN_REGISTRY, sde_spatial_references (si se definió una referencia espacial), y GDB_ITEMS del esquema del usuario sde para rastrear la información sobre la clase de entidad. La tabla GDB_ITEMTYPES del esquema del usuario sde define el tipo de datos (en este caso, la clase de entidad).
La creación de una tabla con una columna ST_Geometry no permite insertar metadatos de ST_Geometry. Es su responsabilidad (o de la aplicación) registrar esta información de metadatos.
Esri no admite el control manual de las tablas del sistema. Para las tablas registradas o creadas por ArcSDE que contienen una columna espacial ST_Geometry, es sumamente necesario que no se modifiquen los metadatos insertos en ellas de manera manual.
View a diagram of a feature class using ST_Geometry storage in Oracle.
Necesita Adobe Acrobat Reader para abrir el archivo.
Las líneas discontinuas indican relaciones implícitas entre las columnas; las líneas continuas indican relaciones explícitas entre las columnas.
Tablas de clases de entidad en una base de datos de Oracle almacenadas con el tipo de geometría binario.
Las clases de entidad almacenadas en formato binario (ya sea en representación de geometría binaria comprimida de ArcSDE o representación de geometría binaria conocida de OGC) en una geodatabase en Oracle consisten en una tabla base y su entidad asociada, y de tablas de índice espacial tal como se describen en el presente tema.
-
La tabla base
Bajo la implementación del esquema binario, la columna espacial de la tabla base contiene un Id. de entidad que hace referencia sólo a los datos espaciales. El Id. de entidad une la tabla base con otras dos tablas: las tablas de índice espacial y las de entidades. Se define un desencadenador de base de datos en la tabla base no versionada y habilitada espacialmente con el objeto de mantener la relación entre los registros de la tabla base y los de la tabla de entidades. Todas las tablas base de clases de entidad no versionadas cuentan con un desencadenador de eliminación en cascada, que asegura que si se elimina una columna espacial de la tabla base, esta también se elimine de la tabla de entidades. Puede visualizar estos desencadenadores en Oracle Enterprise Manager. Estos desencadenadores se eliminan automáticamente siempre que la clase de entidad, tanto independiente como perteneciente a un dataset de entidades, se registre como versionada. Se vuelven a crear cuando una clase de entidad no está registrada como versionada. Si edita uno de estos desencadenadores y luego registra la clase de entidad como versionada, el desencadenador se eliminará.
-
La tabla de entidades (F<layer_id>)
La tabla de entidades almacena las formas geométricas para cada entidad. Esta tabla está identificada por el número de la columna LAYER_ID perteneciente a la tabla LAYERS. La relación entre la tabla base y la tabla de entidades se administra a través del Id. de entidad o FID. Esta clave, que se mantiene en ArcSDE, es única para la columna espacial.
Definición de tabla de entidadNombre de campo
Tipo de campo
Descripción
¿Nulo?
FID
NUMBER(38)
Clave principal; identificador único que une la tabla de entidades con la tabla base
NOT NULL
NUMOFPTS
NUMBER(38)
El número de puntos que define la entidad.
NOT NULL
ENTITY
NUMBER(38)
Tipo de geometría almacenada en la columna espacial (por ejemplo, punto, línea o cadena de caracteres)
NOT NULL
EMINX
FLOAT (64)
El valor x mínimo de una entidad; con eminy, emaxx y emaxy, define el sobre de una entidad
NOT NULL
EMINY
FLOAT (64)
El valor y mínimo de una entidad; con eminx, emaxx y emaxy, define el sobre de una entidad
NOT NULL
EMAXX
FLOAT (64)
El valor x máximo de una entidad; con eminx, eminy y emaxy, define el sobre de una entidad
NOT NULL
EMAXY
FLOAT (64)
El valor y máximo de una entidad; con eminx, eminy y emaxx, define el sobre de una entidad
NOT NULL
EMINZ
FLOAT (64)
El valor z mínimo en una entidad tridimensional
EMAXZ
FLOAT (64)
El valor z máximo en una entidad tridimensional
MIN_MEASURE
FLOAT (64)
Valor de medición mínimo en una entidad
MAX_MEASURE
FLOAT (64)
Valor de medición máximo en una entidad (con valores nulos permitidos)
AREA
FLOAT (64)
El área de la geometría
LEN
FLOAT (64)
Longitud o perímetro de la geometría
POINTS
LONG RAW
Contiene la transmisión de bytes de las coordenadas de punto que definen la geometría
A medida que se insertan y actualizan las entidades, los valores para las columnas tales como extents o numofpts se vuelven a calcular automáticamente.
La relación entre la tabla base y la tabla de entidades se administra a través de la columna espacial y la columna FID. Esta clave, que se conserva en ArcSDE, es única. Es importante mantener la integridad referencial entre la tabla base y la tabla de entidades. No debe editar los registros de la tabla de entidades ni de la tabla de índice espacial. Se agregaron varios índices y restricciones a las tablas base, de índice espacial y de entidades, con el objeto de asegurar que la integridad referencial se mantenga. Sin embargo, estos índices y restricciones se eliminan cuando la clase de entidad se convierte al modo E/S de sólo carga, un estado que permite la inserción rápida de datos dentro de la clase de entidad.
Cuando la entidad se vuelve a pasar al modo E/S normal (el estado que permite que los usuarios consulten la clase de entidad a través del cliente de ArcSDE), se crean los índices y se habilitan las restricciones. La conversión al modo E/S normal fallará si los índices únicos no se pueden generar en la columna espacial de la tabla base o en la columna FID de la tabla de entidades. También se producirá un error si existe un valor en la columna espacial de la tabla base que no esté en la columna FID de la tabla de entidades. En este caso, se carga una referencia al registro de la tabla base conflictiva dentro de la tabla SDE_EXCEPTIONS.
La tabla de entidades almacena los elementos de geometría, anotación y diseño asistido por PC (CAD) en la columna POINTS. Esta columna puede definirse como BLOB o LONG RAW, lo que depende de la configuración del parámetro de almacenamiento GEOMETRY_STORAGE de la tabla DBTUNE. Establezca este parámetro en SDEBINARY si desea almacenar los datos espaciales binarios comprimidos en una columna denominada LONG RAW, o en SDELOB si desea almacenarlos en una columna denominada BLOB.
-
La tabla de índice espacial (S<layer_id>)
El índice espacial de la implementación binaria es la tabla de índice espacial. Este almacena referencias a las formas en una cuadrícula común y simple. Esta tabla se identifica con el número de la columna LAYER_ID perteneciente a la tabla LAYERS.
El índice espacial contiene una entrada para cada forma y combinación de celdas de la cuadrícula para admitir consultas espaciales. Una entidad que ocupa tres celdas de la cuadrícula posee tres entradas en la tabla. Cuando se realiza una consulta espacial, las celdas de cuadrícula que hay dentro del área de búsqueda se identifican y se utilizan para mostrar una lista de geometrías candidatas.
Definición de tabla de índice espacial
Tabla de índice espacialNombre de campo
Tipo de campo
Descripción
¿Nulo?
SP_FID
NUMBER(38)
Clave principal; identificador único que une la tabla de índice espacial con la tabla base
NOT NULL
GX
NUMBER(38)
Valor x de la cuadrícula de índice espacial
NOT NULL
GY
NUMBER(38)
Valor y de la cuadrícula de índice espacial
NOT NULL
EMINX
NUMBER(38)
El valor x mínimo de una entidad; con eminy, emaxx y emaxy, define el contorno de una entidad
NOT NULL
EMINY
NUMBER(38)
El valor y mínimo de una entidad; con eminx, emaxx y emaxy, define el contorno de una entidad
NOT NULL
EMAXX
NUMBER(38)
El valor x máximo de una entidad; con eminx, eminy y emaxy, define el contorno de una entidad
NOT NULL
EMAXY
NUMBER(38)
El valor y máximo de una entidad; con eminx, eminy y emaxx, define el contorno de una entidad
NOT NULL
La tabla de índice espacial define el rango y extensión de la cuadrícula de toda la geometría en una clase de entidad de ArcSDE.
- sp_fid: contiene el identificador único que une la tabla de entidades con la tabla base
- gx/gy: define la extensión de la entidad dentro de las celdas de cuadrícula
- eminx/eminy/emaxx/emaxy: definen la extensión de la entidad en las unidades del sistema
En este ejemplo, la columna FEATURE-ID de la tabla base WELLS hace referencia a las entidades de las tablas de índice espacial y de entidad:
WELL_ID DEPTH ACTIVE FEATURE-ID 1 30029 Yes 101 2 13939 No 102 3 92891 No 103 … … … FID AREA LEN EMINX,EMINY,… POINTS 101 <compressed feature> 102 <compressed feature> 103 <compressed feature> … … SP_FID GX GY {EMINX,EMINY,EMAXX,EMAXY} 101 70 100 102 70 100 103 71 100 … A business/feature/spatial index key reference
La tabla de índice espacial para clases de entidad binarias está relacionada al valor LAYER_ID de la tabla LAYERS, mientras que la tabla de índice espacial para clases de entidad ST_Geometry está relacionada al valor INDEX_ID que se genera en la tabla ST_GEOMETRY_INDEX.
View a diagram of a feature class using binary storage in Oracle.
Necesita Adobe Acrobat Reader para abrir el archivo.
Las líneas discontinuas indican relaciones implícitas entre las columnas; las líneas continuas indican relaciones explícitas entre las columnas.
Tablas de clases de entidad en una base de datos de Oracle almacenadas con el tipo de geometría de Oracle Spatial.
Oracle Spatial utiliza un tipo de geometría geográfica espacial: MDSYS.SDO_GEOMETRY. Estas clases de entidad también tienen una tabla base, pero esta tabla contiene una columna espacial SDO_Geometry que almacena la geometría de la clase de entidad. Los valores de geometría se almacenan directamente en esta columna espacial.
View a diagram of a feature class using SDO_Geometry storage in Oracle..
Necesita Adobe Acrobat Reader para abrir el archivo.
Las líneas discontinuas indican relaciones implícitas entre las columnas; las líneas continuas indican relaciones explícitas entre las columnas.
Clases de entidad en un documento XML
Las clases de entidad se definen dentro de los elementos DataElement. Las etiquetas DataElement para una clase de entidad se establecen en el tipo esri:DEFeatureClass. Dentro de la clase de entidad DataElement hay otros elementos que definen la clase de entidad, como Field, Domain, ConfigurationKeyword y SpatialReference.
La siguiente es una pequeña parte del contenido de un documento XML para la clase de entidad Parcels:
<DataElement xsi:type="esri:DEFeatureClass"> <CatalogPath>/V=SDE.DEFAULT/FC=PERRITA.PARCELS</CatalogPath> <Name>PERRITA.PARCELS</Name> <DatasetType>esriDTFeatureClass</DatasetType> <DSID>21</DSID> <Versioned>false</Versioned> <CanVersion>true</CanVersion> <HasOID>true</HasOID> <OIDFieldName>OID</OIDFieldName> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>OID</Name> <Type>esriFieldTypeInteger</Type> <IsNullable>false</IsNullable> <Length>4</Length> <Precision>10</Precision> <Scale>0</Scale> <Required>true</Required> <Editable>false</Editable> <AliasName>OBJECTID</AliasName> <ModelName>OBJECTID</ModelName> </Field>
Todos los otros elementos que definen la clase de entidad
</DataElement>