Actualizado el 7 de febrero de 2022
La diferencia entre relates (a menudo llamados table relates) y relationship classes es una fuente de mucha confusión, especialmente para los nuevos usuarios de ArcGIS. Aunque suenan similar, los términos se refieren a cosas diferentes. Ambos tienen beneficios y hay razones para usar cada uno. Aquí están las cosas principales que debes saber.
- Un relate existe en un archivo de mapa o capa.
- Una clase de relación es un objeto en una geodatabase.
- Los relates pueden ser creados y editados con una licencia Basic, Standard o Advanced de ArcGIS Pro o ArcGIS Desktop.
- Las clases de relación pueden ser creadas y editadas con una licencia Standard o Advanced de ArcGIS Pro o ArcGIS Desktop. Son solo lectura con una licencia Basic.
¿Todo claro ahora? ¿No? Entonces continuemos.
Desglosando la Terminología
Los relates son geniales porque te permiten seleccionar entidades en una capa, luego ver fácilmente entidades relacionadas en una capa diferente o registros relacionados en una tabla no espacial. Las clases de relación son geniales porque habilitan un "comportamiento inteligente." Puedes establecer reglas sobre cómo se comportan las clases de entidades o tablas participantes cuando sucede algo. Por ejemplo, con una clase de relación en su lugar, si se elimina una entidad, entonces su registro asociado en la otra clase de entidad o tabla puede eliminarse automáticamente también.
Tanto los relates como las clases de relación dependen de la cardinalidad, que describe cómo los registros en dos tablas diferentes están relacionados entre sí: la cardinalidad puede ser uno a uno, uno a muchos, muchos a uno o muchos a muchos.
- Uno a uno: Cada entidad tiene exactamente un registro relacionado en la otra tabla.
- Uno a muchos: Las entidades en una tabla pueden tener más de un registro relacionado en la otra tabla.
- Muchos a uno: Múltiples entidades en una tabla tienen un registro relacionado en la otra tabla.
- Muchos a muchos: Múltiples entidades en una tabla tienen múltiples registros en la otra tabla.
Los relates soportan cardinalidades uno a muchos y muchos a uno, mientras que las clases de relación soportan todas las cardinalidades. Las clases de entidades y tablas que participan en un relate o una clase de relación deben tener un campo del mismo tipo de datos (texto, entero corto, entero largo, object ID, etc.). Ese campo será el "punto de conexión" (también conocido como campo clave) entre los dos.
El Ejemplo del Relate
El mapa abajo contiene una capa de estaciones de bomberos y una tabla no espacial que almacena datos sobre el personal del departamento de bomberos de la ciudad. Se creó un relate entre la capa y la tabla no espacial, que tienen una cardinalidad uno a muchos (cada estación de bomberos tiene múltiples miembros del personal). El relate se basa en un campo entero corto en ambas tablas que almacena un número ID de estación de bomberos. Los campos tienen nombres diferentes, pero eso no importa en absoluto.

Gracias al relate, es fácil saber qué personal está asignado a cualquier estación de bomberos dada. Solo usa la herramienta Identify y haz clic en una estación en el mapa. En la ventana Identify, el nombre de la tabla relacionada aparece debajo del nombre de la entidad estación. Al expandir la tabla se muestran los registros asociados con esa estación (la estación Washington en este ejemplo, que tiene seis miembros asignados).

Supongamos que Brian Butler es transferido a la estación Adams. Su registro en la tabla FirePersonnel se edita para reemplazar el número 2 (estación Washington) por el número 202 (estación Adams). Cuando se guarda la edición, los datos mostrados en la ventana Identify reflejarán su nueva asignación. Washington ahora tiene solo cinco miembros asignados...

...mientras que la lista del personal asignado a la estación Adams ahora incluye a Brian.

El Ejemplo de Clase de Relación
Los table relates son súper útiles para ver rápidamente datos almacenados en tablas separadas (para propósitos eficientes de gestión de datos). Sin embargo, las relationship classes te dan la capacidad para hacer más que simplemente ver datos fácilmente. Con una clase de relación puedes establecer reglas y propiedades que controlan lo que sucede cuando se editan datos en cualquiera de las tablas. También puedes asegurar que solo se hagan ediciones válidas.
Usando el ejemplo anterior, supongamos que se ha creado una clase de relación llamada StationsPersonnel entre la clase de entidad Fire Stations y la tabla Fire Personnel. También supongamos que la ciudad requiere que todas las estaciones tengan un mínimo de cinco bomberos asignados y un máximo de 15 bomberos asignados. Se ha creado una regla en la clase de relación para hacer cumplir este requisito.

Con la transferencia de Brian Butler a la estación Adams, Washington queda con cinco bomberos asignados. Sin embargo, Jean Fiorini ha solicitado una transferencia y su solicitud fue aprobada. Un técnico GIS responsable del mantenimiento de los datos GIS del departamento actualiza el registro de Jean en la tabla del personal con el nuevo número de estación. Ella recibe un mensaje advirtiéndole que la edición ha violado una regla.
- Nota: Dependiendo de qué versión de ArcGIS estés usando y cómo fue configurada la clase de relación, las ediciones que entren en conflicto con una regla pueden no ser aceptadas.
La base sabe que sin Jean, Washington tendrá menos de cinco miembros asignados. Para cumplir con la regla, el técnico debe primero agregar un bombero a la estación Washington y luego editar el registro de Jean para reflejar su nueva asignación.
Una clase de relación está destinada a asegurar que todas las ediciones de datos sean válidas y que la base GIS refleje con precisión y apoye las necesidades reales del mundo. Supongamos que quien aprobó la transferencia no se dio cuenta que Washington quedaría con solo cuatro bomberos. La regla mostró esa información clave, y asumimos que el técnico GIS comunica el problema para prevenir pérdida de propiedad o vidas debido a insuficiente personal.
¿Quieres aprender más sobre relates y relationship classes? Mira estos temas ayuda:
Para entrenamiento detallado y práctica con relates, relationship classes y otras capacidades geodatabase que aseguran integridad data, toma nuestra clase Managing Geospatial Data in ArcGIS.