La mayoría de las pautas de diseño de las bases de datos promueven la organización de la base de datos en varias tablas, cada una enfocada en un tema específico, en lugar de una tabla grande que contenga todos los campos necesarios. Contar con varias tablas evita la duplicación de información en la base de datos, debido a que almacena la información sólo una vez en la tabla. Cuando necesita información que no se encuentra en la tabla actual, puede vincular las dos tablas.
Por ejemplo, podría obtener datos de otros departamentos de la organización, adquirir datos disponibles comercialmente o descargar datos de Internet. Si esta información se almacena en una tabla, como una tabla de dBase, INFO o geodatabase, puede asociarla a sus entidades geográficas y mostrar los datos en el mapa.
ArcGIS le permite asociar registros en una tabla con registros en otra tabla a través de un campo común, conocido como una clave. Puede realizar estas asociaciones de varias formas, como unir o relacionar tablas de manera temporal en el mapa o crear clases de relaciones en la geodatabase que mantienen más asociaciones permanentes. Por ejemplo, puede asociar una tabla de información de propiedad de parcelas con la capa de parcelas, debido a que comparten un campo de Id. de parcela.
Al unir dos tablas, se anexan los atributos de una en la otra en función de un campo común a ambas. Al relacionar las tablas se define una relación entre dos tablas, también en función de un campo común, pero no se anexan los atributos de una en otra; en su lugar, puede acceder a los datos relacionados cuando sea necesario.
Unir atributos desde una tabla
Normalmente, unirá una tabla de datos a una capa a partir del valor de un campo existente en ambas tablas. El nombre del campo no tiene que ser el mismo, aunque sí el tipo de datos; una números a números, cadenas de caracteres a cadenas de caracteres, etc. Puede realizar una unión con el cuadro de diálogo Datos de Unión, al que puede acceder haciendo clic con el botón derecho en una capa en ArcMap o mediante la herramienta Agregar unión.
Suponga que ha obtenido datos que describen el cambio porcentual de población por condado y desea generar algunos mapas de crecimiento de población a partir de esta información. Dado que los datos de población están almacenados en una tabla de la base de datos y comparten un campo común con la capa, puede unirlos a sus entidades geográficas y utilizar cualquiera de los campos adicionales para simbolizar, etiquetar, consultar o analizar las entidades de la capa.
Relaciones de uno a uno y de muchos a uno
Al unir tablas en ArcMap, se establece una relación de uno a uno o de muchos a uno entre la tabla de atributo de la capa y la tabla que contiene la información que se desea unir. En el siguiente ejemplo se muestra una relación de uno a uno entre cada condado y los datos de cambio de población de dicho condado. Es decir, hay un cambio de población para cada condado.
Aquí tiene un ejemplo de una relación de muchos a uno. Suponga que tiene una capa donde cada polígono está clasificado según el tipo de uso del suelo. La tabla de atributos de la capa solo almacena un código del uso del suelo; en una tabla independiente se almacena la descripción completa de cada tipo de uso del suelo. Al unir estas dos tablas, se establece una relación de muchos a uno porque muchos registros de la tabla de atributo de la capa se unen al mismo registro de la tabla de descripciones del uso del suelo. A continuación, podría utilizar un texto más descriptivo a la hora de generar la leyenda del mapa.
Relaciones de uno a muchos y de muchos a muchos
Al usar datos cuando existe una relación de uno a muchos o de muchos a muchos, debe usar una relación o clase de relación para establecer la relación entre los datasets. Sin embargo, es posible crear una unión bajo estas circunstancias. Cuando crea una unión en ese caso, existen diferencias entre la forma en que funcionan las herramientas y otras configuraciones específicas a las capas dependiendo de la fuente de datos. Si está usando los datos de geodatabase para crear la unión, se devolverán todos los registros que coinciden. Si está usando datos que no son de base de datos, como shapefiles o tablas dBASE, para crear la unión, solamente se devuelve el primer registro que coincida.
Esto significa que si creó una unión 1:M o M:M con datos de geodatabase y genera un informe, verá varios registros en el informe, uno para cada coincidencia correspondiente. Las distintas coincidencias también se ven cuando se usa un campo de unión al simbolizar una capa unida, etiquetar, identificar entidades, generar un gráfico y usar la herramienta Buscar o Hipervínculo. Si está usando la capa unida como entrada a una herramienta de geoprocesamiento o en una operación de exportación, se usan los distintos registros que coincidan.
Unir datos por ubicación (espacialmente)
Cuando las capas del mapa no comparten un campo de atributo común, puede unirlas utilizando una unión espacial, la cual une los atributos de dos capas basada en la ubicación de las entidades de las capas.
Puede realizar una unión espacial con el cuadro de diálogo Datos de Unión, al que se accede haciendo clic con el botón derecho en una capa en ArcMap, o con la herramienta Unión espacial.
Con una unión espacial, puede encontrar alguna de las siguientes posibilidades:
- La entidad más cercana a otra entidad
- Lo que hay dentro de una entidad
- Lo que interseca a una entidad
- Cuántos puntos quedan dentro de cada polígono
Unir por ubicación, o unión espacial, utiliza asociaciones espaciales entre las capas involucradas en la anexión de campos de una capa a otra. Las uniones espaciales son diferentes de las uniones de clases de relación y atributos en el sentido de que no son dinámicas y requieren guardar los resultados en una nueva capa de resultados.
Para realizar una unión espacial se puede utilizar uno de los tres tipos de asociaciones descritos a continuación:
- Haga coincidir cada entidad con la entidad o entidades más cercanas: En esta asociación, puede anexar los atributos de la entidad más cercana o un agregado (mínimo, máximo, etc.) de los atributos numéricos de las entidades más cercanas.
- Haga coincidir cada entidad a la entidad dentro de la cual se encuentra: En este caso, los atributos de la entidad dentro de la cual está la entidad actual, se anexan. Por ejemplo, algunos casos donde aparecerá esta coincidencia son un punto que está dentro de un polígono o un segmento de línea que está completamente dentro de (en otras palabras, superpuesto) otro segmento de línea.
- Haga coincidir cada entidad a la entidad o entidades que interseca: Al igual que con la asociación anterior de entidad o entidades más cercanas, puede anexar los atributos de una única entidad que interseca o un agregado de los atributos numéricos de las entidades que interseca.
Para cada combinación de puntos, polígonos y líneas, solo están disponibles en el cuadro de diálogo de unión las asociaciones utilizadas más frecuentemente. Con VBA, sin embargo, es posible realizar una unión basada en cualquier asociación y con cualquier combinación de capas de entidades poligonales, de puntos o de líneas.
Relacionar tablas
A diferencia de en la unión de tablas, al relacionar tablas simplemente se define una relación entre dos tablas. Los datos asociados no se anexan a la tabla de atributos de la capa como en el caso de una unión. En su lugar, puede acceder a los datos relacionados cuando trabaje con los atributos de la capa.
Por ejemplo, si selecciona un edificio, puede buscar todos los arrendatarios que ocupan ese edificio. De igual forma, si selecciona un arrendatario, puede buscar el edificio en el que reside (o varios edificios, en el caso de una cadena de almacenes en varios centros comerciales, una relación de muchos a muchos). Sin embargo, si realiza una unión en tales datos, ArcMap solo encontrará el primer arrendatario perteneciente a cada edificio, ignorando los arrendatarios adicionales.
Las relaciones definidas en ArcMap son esencialmente equivalentes a clases de relación simples definidas en una geodatabase, con la salvedad de que se guardan con el mapa en lugar de en una geodatabase.
Si los datos se almacenan en una geodatabase y tienen clases de relación definidas, puede utilizar estas directamente sin tener que establecer un relación en ArcMap. Las clases de relación estarán disponibles automáticamente al agregar al mapa una capa que participe en una clase de relación. Tenga en cuenta que la relación de muchos a muchos se define de manera diferente cuando los datos se almacenan en una geodatabase. En general, si tiene clases de relación definidas en la geodatabase, deberá utilizarlas en lugar de crear otras nuevas en ArcMap.
Clases de relación en la geodatabase
Una clase de relación almacena información sobre asociaciones entre entidades y registros en una geodatabase y puede ayudarle a garantizar la integridad de los datos.
Más información sobre las ventajas de utilizar clases de relación
Uniones frente a relaciones
Siga estas instrucciones generales al elegir entre uniones y relaciones en los datos:
- Es conveniente unir dos tablas cuando los datos de las tablas tengan una relación de uno a uno o de muchos a uno.
- Es conveniente relacionar dos tablas cuando los datos de las tablas tengan una relación de uno a muchos o de muchos a muchos.
Más información sobre cómo decidir entre clases de relación, uniones, y relaciones
Guardar uniones y relaciones
Al guardar un mapa que contiene uniones y relaciones, ArcMap guarda la definición de vinculación de las dos tablas de atributos en lugar de guardar los propios datos vinculados. La siguiente vez que abra el mapa, ArcMap restablecerá la relación (ya sea una unión o relación) entre las tablas leyendo las tablas de la base de datos. De esta manera, cualquier cambio en las tablas de origen que haya tenido lugar desde que se visualizaron por última vez en el mapa se incluye y refleja automáticamente en el mapa.
Las uniones se pueden almacenar en un documento ArcMap o en un archivo de capa. Si prevé mover los datos en algún punto, deberá guardar sus documentos ArcMap con rutas relativas. Si se desplazan los datos, puede reparar tablas y capas después de abrir el documento pero, a menos que la tabla de destino y las tablas de unión estén en el mismo directorio o espacio de trabajo, no se reparan las uniones. Si guarda el documento con rutas relativas, las tablas y capas se restauran automáticamente con uniones siempre que el documento se haya desplazado según se hayan desplazado los datos.
Puede realizar una copia en disco permanente de una capa con datos unidos simplemente exportando la capa. Para exportar la capa, haga clic con el botón derecho en la misma dentro de la tabla de contenido, seleccione Datos y, a continuación, haga clic en Exportar Datos. Creará así una nueva clase de entidad con todos los atributos, incluidos los campos unidos.
Utilizar uniones, relaciones y clases de relación conjuntamente
Si los datos están involucrados con uniones y relaciones, el orden en que se creen las uniones y relaciones es importante. Si la capa o tabla tiene una relación, se quita una vez que los datos se unen a ésta. Si establece una relación en una tabla o capa unida, se quita la relación cuando se quita la unión. Como norma general, es mejor crear la uniones y, a continuación, agregar las relaciones.
En una situación donde necesita unir la tabla A y relacionar la tabla B con la capa C, funcionarán dos de las tres formas posibles de hacerlo. Lo siguiente describe cada caso:
- Una la tabla A con la capa C, luego relacione la tabla B con la capa C: Este escenario funciona. El resultado será una capa unida que tiene una relación con la tabla B.
- Relacione la capa C con la tabla B, luego relacione la tabla A con la capa C: Este escenario también funciona. Dado que una relación es bidireccional, las dos tablas implicadas pueden utilizarla independientemente de qué tabla posea la relación. En este caso, tabla B posee la relación, de modo que cuando tabla A se une a capa C, la relación no se quita.
- Relacione la tabla B con la capa C, luego relacione la tabla A con la capa C: Este escenario no funciona. Este escenario difiere del anterior en que la capa C posee la relación. Por lo tanto, cuando la tabla A se une a la capa C, se quita la relación.
La unión no afecta a las relaciones que pertenecen a la tabla de unión. La capa o tabla de destino, sin embargo, no puede acceder a estas relaciones.
Las clases de relación nunca se quitan como resultado de una operación de unión o desunión. Se pueden usar independientemente de que los datos estén involucrados con uniones o relaciones.