Clases de entidades en una geodatabase en SQL Server
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 Microsoft SQL Server, el nombre de una clase de entidad tal y como aparece en el árbol de catálogo incluye el nombre de la base de datos en la que se encuentra la clase de entidad, el nombre del usuario que posee la clase de entidad y el nombre de la propia clase de entidad.
Por ejemplo, una clase de entidad llamada parcels, propiedad del usuario Sasha, en una geodatabase llamada stegageo aparece como geodata.SASHA.PARCELS en el árbol de catálogo.
Para obtener una descripción sobre los diferentes tipos de clases de entidad, consulte el tema Conceptos básicos sobre clases de entidad.
Clases de entidad almacenadas en una base de datos de Microsoft SQL Server
Las clases de entidad en las bases de datos de SQL Server utilizan uno de los tres tipos de almacenamiento de geometría: binario, geometría de Microsoft o geografía de Microsoft.
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.
Como puede observar, una vez que haya cargado datos o ejecutado sdesetup, dispone de varias tablas i y procedimientos almacenados en la base de datos. Estos procedimientos almacenados y tablas i se utilizan para generar identificadores de entidad para clases de identidad. Las tablas i contienen un número en el nombre. Éste corresponde al identificador registration_id de la clase de entidad en la tabla SDE_table_registry. La edición de estas tablas o procedimientos almacenados no es compatible y se recomienda que no se lleve a cabo.
Clases de entidad almacenadas en formato binario en una base de datos de SQL Server
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 SQL Server consisten de una tabla base y su entidad asociada, y de tablas de índice espacial tal como se describen en el presente tema.
De forma predeterminada, las entidades se almacenan utilizando el tipo de binario comprimido de ArcSDE.
-
La tabla base
La tabla base es una tabla DBMS que en la que se almacenan atributos y está habilitada espacialmente mediante la adición de una columna espacial. El nombre de la tabla base es el mismo que el de la clase de entidad. En el gráfico anterior, la tabla base es la tabla PARCELS.
En la implementación del esquema binario, la columna espacial de la tabla base (en el ejemplo anterior, el campo SHAPE de la tabla PARCELS) contiene un Id. de entidad que hace referencia exclusivamente a los datos espaciales. El Id. de entidad une la tabla base con las tablas de entidades e índice espacial.
Un desencadenante de base de datos se define en la tabla base habilitada espacialmente para mantener la relación entre registros en la tabla base y la tabla de función.
Todas las tablas base de clase de entidad no versionadas tienen un desencadenante de borrado-actualización y un desencadenante de inserción. El desencadenante insert garantiza que la columna espacial no puede incluir valores duplicados en la tabla base, mientras que el desencadenante de delete-update gestiona actividad contra la columna espacial en las tablas base, entidad e índice espacial.
Estos desencadenantes se eliminan automáticamente siempre que la clase de entidad, tanto independiente como en un dataset de entidades, se multiversione. Se vuelven a crear cuando una clase de entidad no está registrada como versionada. Si se edita alguno de estos desencadenantes y, a continuación, se multiversiona la clase de entidad, se desactiva el desencadenante.
-
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 SDE_layers. La relación entre la tabla base y las tablas 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 entidadesNombre de campo
Tipo de campo
Descripción
¿Nulo?
fid
entero
Clave principal; Id. único que une la tabla de entidades con la tabla base
NO NULO
numofpts
entero
El número de puntos que define la entidad.
NO NULO
entidad
smallint
Tipo de geometría almacenada en la columna espacial (por ejemplo, punto, línea o cadena de caracteres)
NO NULO
eminx
flotante
El valor x mínimo de una entidad; con eminy, emaxx y emaxy, define el sobre de una entidad
NO NULO
eminy
flotante
El valor y mínimo de una entidad; con eminx, emaxx y emaxy, define el sobre de una entidad
NO NULO
emaxx
flotante
El valor x máximo de una entidad; con eminx, eminy y emaxy, define el sobre de una entidad
NO NULO
emaxy
flotante
El valor y máximo de una entidad; con eminx, eminy y emaxx, define el sobre de una entidad
NO NULO
eminz
flotante
El valor z mínimo en una entidad tridimensional
emaxz
flotante
El valor z máximo en una entidad tridimensional
min_measure
flotante
Valor de medición mínimo en una entidad
max_measure
flotante
Valor de medición máximo en una entidad
área
flotante
El área de la geometría
NO NULO
len
flotante
Longitud o perímetro de la geometría
NO NULO
puntos
varbinarymax
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 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 está identificada por el número de la columna Layer_ID perteneciente a la tabla SDE_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 espacialNombre de campo
Tipo de campo
Descripción
¿Nulo?
sp_fid
entero
Clave principal; Id. único que une la tabla de índice espacial con la tabla base
NO NULO
gx
bigint
Valor x de la cuadrícula de índice espacial
NO NULO
gy
bigint
Valor y de la cuadrícula de índice espacial
NO NULO
eminx
bigint
El valor x mínimo de una entidad; con eminy, emaxx y emaxy, define el sobre de una entidad
NO NULO
eminy
bigint
El valor y mínimo de una entidad; con eminx, emaxx y emaxy, define el sobre de una entidad
NO NULO
emaxx
bigint
El valor x máximo de una entidad; con eminx, eminy y emaxy, define el sobre de una entidad
NO NULO
emaxy
bigint
El valor y máximo de una entidad; con eminx, eminy y emaxx, define el sobre de una entidad
NO NULO
Todas las tablas base de clase de entidad tienen un desencadenante DELETE-UPDATE y un desencadenante INSERT. El desencadenante INSERT garantiza que la columna espacial no puede incluir valores duplicados en la tabla base, mientras que el desencadenante DELETE-UPDATE gestiona actividad contra la columna espacial en las tablas base, entidad e índice espacial. Estos desencadenantes se eliminan automáticamente siempre que la clase de entidad, tanto independiente como en un dataset de entidades, se multiversione. Se vuelven a crear cuando una clase de entidad no está registrada como versionada. Si se edita alguno de estos desencadenantes y, a continuación, se registra la clase de entidad como versionada, se desactiva el desencadenante. Es importante mantener la integridad referencial entre la tabla base y la tabla de entidades. No deben editarse los registros de la tabla de entidades ni 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. No obstante, estos índices y limitaciones se retiran cuando la clase de entidad se convierte al modo de E/S de sólo carga, un estado que permite la rápida inserción de datos en la clase de entidad.
Cuando la clase de entidad se vuelve a colocar en el modo de E/S normal (el estado que permite a los usuarios realizar consultas a la clase de entidad mediante ArcGIS) 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.
-
Tablas del sistema asociadas con clases de entidad
En la base de datos, la tabla del sistema GDB_ITEMS es la tabla principal que hace seguimientos de datasets (como clases de entidad y catálogos de ráster) en la geodatabase.
View a diagram of a feature class using binary storage in SQL Server..
Nota: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.
Los campos de nombre de base de datos de las tablas GDB_ITEMS, SDE_table_registry, SDE_column_registry y SDE_layers contienen todos el mismo valor, pero para evitar que el diagrama esté demasiado abarrotado, no se muestra la relación implícita entre los mismos. De igual modo, los campos de propietario de todas estas tablas también contienen el mismo valor, a pesar de que la relación no se dibuja en el diagrama.
Las clases de entidad se almacenan utilizando el tipo de geometría o geografía de Microsoft en una base de datos de SQL Server
En ArcGIS 9.3 y versiones posteriores las geodatabases almacenadas en una base de datos de SQL Server 2008 pueden utilizar los tipos de geometría o geografía de almacenamiento de Microsoft para almacenamiento de entidades. Las clases de entidad que utilizan alguno de estos tipos de almacenamiento también tienen una tabla base, tal y como se describe en la sección anterior. Sin embargo, para estos tipos de almacenamiento, la tabla base contiene una columna del tipo GEOMETRY o GEOGRAPHY, en la que se almacena la geometría de la clase de entidad; no hay ninguna tabla de entidades asociada.
Las tablas de clase de entidad que utilizan almacenamiento de geometría o geografía también tienen tablas del sistema asociadas, aparte de las vistas asociadas.
View a diagram of a feature class using SQL Server geometry or geography storage..
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.
Las vistas utilizadas para las clases de entidad de geometría o geografía, ST_SPATIAL_REFERENCE_SYSTEMS y ST_GEOMETRY_COLUMNS, no se muestran en el diagrama debido a que están basadas en las tablas del sistema SDE_spatial_references y SDE_geometry_columns, que ya están incluidas en el diagrama.
Si la clase de entidad está habilitada para almacenar entidades CAD, se crea una tabla lateral para que la clase de entidad almacene datos CAD, como curvas. Todas las clases de entidad creadas mediante ArcGIS Desktop se establecen para almacenar entidades de CAD. Si los datos se importan o registran con ArcSDE mediante los comandos de administración de ArcSDE, especifique si los datos CAD se pueden almacenar o no en la clase de entidad resultante. En el diagrama de clase de entidad también se muestra la tabla de CAD SDE_geometry42. El número 42 del nombre de la tabla hace referencia al identificador layer_id de la clase de entidad desde la tabla SDE_layers.
Las uniones de la tabla lateral de CAD no se habilitan hasta que los datos CAD, como curvas verdaderas, se hayan agregado a la clase de entidad. Una vez habilitado, las consultas realizadas a la clase de función incluyen siempre la tabla de CAD lateral, incluso aunque los datos CAD ya no se encuentren en ella.
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=dbo.DEFAULT/FC=geodata.SASHA.Parcels</CatalogPath> <Name>geodata.SASHA.Parcels</Name> <DatasetType>esriDTFeatureClass</DatasetType> <DSID>22</DSID> <Versioned>false</Versioned> <CanVersion>true</CanVersion> <ConfigurationKeyword/> <HasOID>true</HasOID> <OIDFieldName>objectid</OIDFieldName> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>objectid</Name> <Type>esriFieldTypeOID</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>