Consulte consejos, herramientas y capacidades de la geodatabase de ArcGIS Pro cuando utilice datos relacionados de una clase de relación.
Copiar datos en una clase de relación
Puede copiar cualquier dataset de entidades, clase de entidades o tabla de una geodatabase a una geodatabase de destino utilizando Copiar y Pegar . Para cada dataset de entidad, clase de entidad y tabla que copie y pegue, el resultado es un nuevo dataset de entidades, clase de entidad y tabla en la geodatabase de destino que contiene todas las entidades o registros de los datos de origen.
Al realizar una operación de copiar y pegar, también copiará los datos dependientes que haya. Supongamos que copia una clase de entidad o tabla que participa en una clase de relación. En ese caso, también se copian la clase de relación y todas las demás clases de entidades o tablas de la clase de relación. Lo mismo sucede en el caso de una clase de entidad con anotaciones vinculadas a entidades; la anotación vinculada a entidades también se copia. Cuando copia una clase de entidad con reglas de atributos, también se copian todas las reglas de atributos y secuencias o clases de entidad adicionales a las que se hace referencia en las reglas de atributos. En el caso de una clase de entidad que tenga un dominio, subtipo o índice, el dominio, subtipo o índice también se copia.
Precaución:
La herramienta de geoprocesamiento De clase de entidad a geodatabase solo copia clases de entidad simples. Por ejemplo, si hay clases de entidad contenidas dentro de datasets de entidades que se van a exportar, solo se copiarán las clases de entidad. El dataset de entidades y cualquier elemento avanzado (como topologías, clases de relación o adjuntos) no se copiarán en la geodatabase de salida.
Editar datos de una clase de ralación
Se puede configurar una clase de relación para que, cuando se modifique un objeto, los objetos relacionados se actualicen automáticamente. Puede implicar mover físicamente entidades relacionadas, eliminar objetos relacionados o actualizar un atributo. Por ejemplo, podría establecer una relación tal que cada vez que mueva un poste de servicios públicos, los transformadores y otros equipos conectados se muevan con él. Mediante el establecimiento de reglas, una clase de relación puede restringir el tipo de relaciones que son válidas. Por ejemplo, un poste podría admitir hasta tres transformadores. Un poste de acero puede admitir transformadores de clase A, pero no transformadores de clase B. Las clases de relación mantienen activamente la integridad referencial entre clases relacionadas, aunque una de ellas no se haya agregado a la sesión de ArcGIS Pro. Cuando un objeto que participa en relaciones simples con otros objetos se elimina de la geodatabase, también se eliminan todas sus relaciones. Si el objeto eliminado es el objeto de origen, la clave externa en todos los objetos de destino relacionados es nula. El objeto de origen no se ve afectado si el objeto eliminado es un objeto de destino.
Supongamos que las relaciones se mantienen como filas en una tabla intermedia (relaciones de muchos a muchos o relaciones con atributos). Cuando se elimina un objeto de origen o destino y sus relaciones, las filas correspondientes a esas relaciones se eliminan de la tabla intermedia.
En el panel Atributos , puede crear y eliminar relaciones entre entidades seleccionadas y agregar nuevas relaciones entre entidades seleccionadas y registros no espaciales de una tabla. Las entidades asociadas deben participar en la misma clase de relación.
Consulte Editar relaciones de entidades para obtener más información sobre la edición de datos en una clase de relación.
Al proporcionar actualizaciones automáticas de los objetos relacionados, una clase de relación puede ahorrarle llevar a cabo operaciones de edición adicionales.
Consulte Versionado de datos en una clase de relación para obtener más información sobre la edición y administración de clases de relación y sus datos relacionados cuando se almacenan en una geodatabase corporativa.
Rastreo del editor y clases de relación
El rastreo del editor proporciona un ajuste en las clases de entidades y tablas que registra automáticamente la información sobre cualquier inserción y actualización realizada en la clase. Mantiene un registro del editor que creó o modificó los datos y una marca de tiempo de cuándo ocurrió la edición. El rastreo del editor se aplica solo a las operaciones en datasets existentes y no se aplica a las operaciones que crean datasets.
No todos los tipos de clase de relación admiten el rastreo del editor. Cuando se crea una clase de relación con una cardinalidad de muchos a muchos (M:N) o con atributos, se crea una tabla intermedia. El rastreo del editor solo puede estar habilitado en estas clases de relación con atributos basadas en una tabla.
Definir una política de división de clase de relación
Cuando se crea una clase de entidad de línea o polígono, se define automáticamente un modelo de división en la clase de entidad de forma predeterminada. El modelo de división determina cómo se dividirán la geometría y los atributos de la entidad dentro de la tabla cuando una entidad se divide durante la edición.
Además de definir el modelo de división en una clase de entidad, también puede definir la política de división en una clase de relación. La política de división de la clase de relación determina cómo se tratan los registros relacionados dentro de la tabla de destino cuando una entidad de la clase de entidades de origen se divide durante la edición.
En función del tipo de clase de relación (simple o compuesta), se pueden definir distintos comportamientos de política de división, incluidos Predeterminada (simple), Predeterminada (compuesta) y Duplicar objetos relacionados.
Consulte Establecer una política de división de clases de relación para obtener más información acerca de cómo establecer y utilizar esta propiedad de clase de relación.
Trabajar con atributos de relación
ArcGIS Pro contiene herramientas que le ayudarán a crear y mantener una relación.
- Si tiene objetos en el origen y en el destino, pero todavía no están relacionados, puede establecer las relaciones manualmente de una en una en ArcGIS Pro. Para ello, seleccione uno o más objetos en el destino, seleccione uno o más objetos en el origen, abra el cuadro de diálogo Atributos y relaciónelos. Puede hacerlo si al menos uno de los lados de la relación contiene entidades.
- Puede seleccionar un objeto y crear un objeto relacionado en una clase relacionada, si se trata de un nuevo registro de una tabla y no una entidad.
- Puede quitar un objeto de una relación con el cuadro de diálogo Atributos.
- Una vez que haya terminado de editar una relación compuesta o una relación con reglas, puede utilizar las reglas de atributos validación o restricción para comprobar su trabajo y hacer cumplir la integridad referencial de sus datos.
Índices de atributos en clases de relación con atributos
Los índices de atributos pueden acelerar las uniones y localizar rápidamente los registros que coincidan con una consulta de atributos en tablas, clases de entidades, shapefiles o clases de relación con atributos.
Para la mayoría de las consultas de atributos, buscar un registro con un índice es más rápido que empezar por el primer registro y buscar en toda la tabla. Una vez que tenga datos de una tabla, clase de entidad, shapefile o clase de relación con atributos, puede crear índices de atributos para los campos que consulta con frecuencia.
Más información sobre los índices de atributos en la geodatabase
Reglas de atribución sobre los datos de una clase de relación
Las reglas de atributos pueden usarse para leer y editar registros relacionados para datasets que participan en clases de relación de una geodatabase.
Las reglas pueden aplicarse a las clases de entidad y a las tablas que participan en las clases de relación, incluidos los adjuntos y la anotación vinculada a la entidad. Las reglas de atributos también pueden interceptar eventos de edición procedentes de actualizaciones realizadas en las clases de origen y destino de una relación; eso incluye agregar, eliminar o borrar un registro relacionado. Por ejemplo, una regla de atributos de cálculo inmediata puede actualizar un campo de atributo cuando se agrega una entidad a una clase de entidades relacionada.
Al trabajar con clases de relación, puede leer los registros relacionados mediante las funciones Arcade que toman las entidades de entrada y devuelven los registros relacionados. Los registros relacionados de las clases de relación también se pueden editar mediante reglas de cálculo basadas en el retorno de diccionario.
Las funciones Arcade y expresiones de script pueden utilizarse en las reglas de atributos de cálculo para acceder a los datos relacionados de una clase de relación. Lea los registros relacionados de una clase de relación utilizando las funciones Arcade FeatureSetByName, FeatureSetByRelationShipName y FeatureSetByRelationshipClass. También puede agregar un nuevo registro relacionado para una clase de relación en una edición de actualización.
Precaución:
Cuando se crea una clase de relación de muchos a muchos o con atributos, se crea una nueva tabla intermedia. Esta tabla intermedia no se reconoce como clase de objeto de la geodatabase. Como resultado, los comportamientos de la geodatabase, como las reglas de atributos, los dominios, los subtipos, los valores contingentes y los valores predeterminados, no pueden aplicarse ni utilizarse con esta tabla intermedia.
Se pueden crear y aplicar las reglas de atributos validación o restricción para hacer cumplir las reglas de clase de relación.
Más información sobre las reglas de atributos y clases de relación y sobre la validación de reglas de clases de relación.
Clases de relación y privilegios
Para permitir que otros usuarios de la base de datos vean o modifiquen el contenido de cualquier dato en una base de datos o una geodatabase corporativa, debe otorgarles los privilegios para hacerlo.
Cuando se otorgan privilegios a una tabla o clase de entidad que participa en una clase de relación, los privilegios deben otorgarse tanto a las clases de origen como a las de destino. Si las clases de entidad de origen y destino se encuentran en el mismo dataset de entidades, tienen el mismo conjunto de privilegios ya que los privilegios se otorgan a nivel de dataset de entidad. Sin embargo, cuando la clase de origen o destino no está en el mismo dataset de entidad, debe asegurarse de otorgarle los privilegios apropiados tanto a las clases de origen como de destino. Si la clase de relación tiene atributos o tiene una cardinalidad de muchos a muchos, los privilegios se propagan automáticamente a la tabla intermedia cuando usted asigna privilegios a la clase de origen.
Versionado de datos de una clase de relación
Las clases de relación se almacenan y persisten en la geodatabase y ayudan a facilitar la edición. Se admite una clase de relación de una geodatabase corporativa con las siguientes opciones de flujo de trabajo de edición:
- Versionado en rama
- Versionado tradicional
- Versionado tradicional (mover las ediciones a la base)
- Edición no versionada
Cuando las clases de relación y los datos relacionados se almacenan en una geodatabase corporativa, las ediciones de los datos pueden administrarse con versiones. En una geodatabase corporativa con varios editores, las versiones permiten a varios usuarios trabajar y editar al mismo tiempo las mismas entidades o registros de una relación sin aplicar bloqueos ni duplicar datos. Las versiones proporcionan a cada editor su propia vista de los datos, exclusiva y aislada.
Consejos sobre el versionado en rama y las clases de relación
No puede registrar un dataset como versionado en rama si el dataset participa en una clase de relación y la clave principal de la relación es el campo ObjectID.
Sugerencia:
Utilice la herramienta de geoprocesamiento Migrar clase de relación para migrar una clase de relación basada en el Id. de objeto a una clase de relación basada en el Id. global.
Más información sobre el registro de un dataset como versionado en rama
En el versionado en rama, los conflictos pueden descubrirse durante el proceso de conciliación cuando la versión nominal se concilia con la versión predeterminada. Por ejemplo, se producirá un conflicto cuando una entidad o clase de relación topológicamente relacionada se modifique tanto en la versión nominal actual como en la versión predeterminada.
Sugerencia:
Consulte los conflictos de edición de las versiones nominal y predeterminada mediante la vista Conflictos.
En el versionado en rama, al resolver conflictos, está decidiendo qué representación de las entidades y atributos desea conservar. Si se elimina una entidad de una clase de relación de origen, aparecerá un mensaje para que elimine una entidad de la clase de relación de destino. Por lo tanto, esté atento a las ramificaciones que se producen al reemplazar conflictos que involucran clases de entidades de origen que participan en clases de relaciones.
Consejos sobre el versionado tradicional y las clases de relación
El versionado tradicional proporciona la flexibilidad de trabajar dentro de versiones para transacciones largas accediendo directamente desde la geodatabase corporativa y una experiencia de edición simplificada al utilizar servicios de entidades para acomodar transacciones más cortas.
El versionado tradicional con la opción de trasladar las ediciones a la base es una forma opcional de versionado tradicional. Permite a los editores y a las aplicaciones acceder directamente a los datos base, al tiempo que permite a otros editores trabajar en sus versiones aisladas. Esta opción incluye muchas de las mismas ventajas del versionado tradicional. Sin embargo, solo puede editar entidades simples como puntos, líneas, polígonos, anotaciones y clases de relación. No puede editar una clase de entidad en una topología, un dataset de red o una red de servicios.
En el versionado tradicional, los conflictos pueden descubrirse durante la operación de conciliación cuando se guardan ediciones en una versión y la misma entidad ha sido actualizada en esa versión en otra sesión de edición (o actualizada en una sesión de edición y borrada en la otra).
Sugerencia:
En el versionado tradicional, si su flujo de trabajo es tal que un usuario edita y otro concilia, debe asegurarse de que el usuario que concilia tiene permisos completos para todas las clases de entidad y tablas que se han modificado en la versión; de lo contrario, el usuario no podrá conciliar. Como se menciona en la sección anterior sobre la concesión de privilegios, el usuario que concilia debe tener permisos completos tanto para las clases de origen como de destino que participan en cualquier clase de relación que se haya modificado, incluidas las relaciones simples o compuestas. En este flujo de trabajo, el usuario que concilia también debe tener suficientes permisos para la versión. El usuario que realiza la conciliación debe poder modificar la versión que va a conciliar, lo que significa que esta debe ser pública, y debe poder ver la versión de destino, es decir, el usuario debe ser el propietario de la versión o esta debe ser pública o estar protegida.
En el versionado tradicional, al resolver conflictos, está decidiendo qué representación de las entidades y atributos desea conservar. Si se elimina una entidad de una clase de relación de origen, aparecerá un mensaje para que elimine una entidad de la clase de relación de destino. Por lo tanto, esté atento a las ramificaciones que se producen al reemplazar conflictos que involucran clases de entidades que participan en clases de relaciones. Por ejemplo, en su dataset de entidades de compañías eléctricas, si elimina un poste eléctrico relacionado con uno o varios transformadores, también se eliminan los transformadores relacionados.
Utilizar la replicación de geodatabases con clases de relación
La replicación de geodatabases permite replicar algunos o todos los datasets de una geodatabase corporativa. Permite definir las entidades o filas que se van a replicar utilizando filtros y clases de relación. Durante la creación de réplicas, se agregan filas y entidades a una réplica sobre la base de los filtros definidos en la aplicación. A continuación, las clases de relación se utilizan para incorporar entidades y filas adicionales.
El siguiente ejemplo ilustra el comportamiento de replicación relativo a los objetos relacionados. El modelo de datos utilizado en este ejemplo es una relación simple de origen-destino entre propiedades, edificios y su anotación relacionada.
Consulte Preparar datos para la replicación para obtener más información.
La sincronización mantiene las relaciones. Para la replicación bidireccional y unidireccional, durante la sincronización se aplican los mismos filtros y las mismas reglas de clase de relación utilizados en la creación de réplicas. Todas las ediciones en cada dataset de réplicas aplicadas desde la última sincronización se evalúan a la hora de determinar los cambios a enviar. Si una edición satisface los filtros de la réplica, se sincroniza.
Por ejemplo, algunas entidades de una clase de origen, como los edificios, fueron seleccionadas para su replicación. Los edificios se relacionan a través de una clase de relación simple con los registros de atributos de una tabla excluida de la replicación. Durante la edición de la réplica secundaria, se eliminó un edificio. Al realizar la sincronización, para anular la relación con la entidad que se eliminó, la entrada correspondiente del campo de clave externa de la clase de destino relacionada, la tabla, se establece en NULL.
Compartir datasets que contengan una clase de relación
Los servicios de entidades permiten consultas sobre datos relacionados, pero solo si la relación se define mediante una clase de relación de geodatabase y tanto las tablas de origen como de destino están en el mapa antes de la publicación.
Para permitir consultas en datos relacionados en un servicio de entidades o capa de entidades alojada, defina una clase de relación entre la clase de entidad y la tabla o la clase de entidad relacionadas. Los datos relacionados a los que se acceda mediante una clase de relación se incluirán en el servicio de entidades que publique. Para admitir consultas que devuelven objetos relacionados, debe incluir la tabla y la capa de la clase de relación en el mapa publicado. El servicio de entidades ignora la relación si el mapa no contiene la capa o tabla de origen o destino.
Nota:
Para las clases de relación con atributo, incluya la tabla de clase de relación en el mapa.
Más información sobre la preparación de datos para publicar un servicio de entidades, la creación de servicios de entidades y el trabajo con datos relacionados a través de servicios (vídeo).