Acerca de unir y relacionar tablas
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.
si intenta crear una unión en una relación 1:M, en la capa unida resultante solo se unirá la primera coincidencia.
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:
- Asignar cada entidad a 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.
- Asignar cada entidad a la entidad en que está contenida: en este caso, se anexan los atributos de la entidad que contiene en su interior a la entidad actual. 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.
- Asignar cada entidad a la entidad o entidades que interseca: como en el caso anterior de asociación a la entidad más cercana, puede anexar los atributos de una única entidad intersecante o un agregado de los atributos numéricos de las entidades intersecantes.
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 repararán las uniones. Si guarda el documento con rutas relativas, las tablas y capas se restaurarán 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 implicados en uniones y relaciones, el orden en que se crean las uniones y relaciones es importante. Si la capa o tabla tiene una relación, se quita una vez que se han unido los datos. Si realiza una relación en una capa o tabla unida, la relación se quita 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 tablaA y relacionar tablaB con capaC, funcionarán dos de las tres maneras posibles de hacerlo. A continuación se describe cada caso:
- Una tablaA a capaC, a continuación, relacione tablaB con capaC: este supuesto funcionará. Obtendrá una capa unida que tiene una relación con tablaB.
- Relacione capaC con tablaB, a continuación una tablaA a capaC: este supuesto también funcionará. Dado que una relación es bidireccional, las dos tablas implicadas podrán utilizarla independientemente de qué tabla posea la relación. En este caso, tablaB posee la relación, de modo que cuando tablaA se une a capaC, la relación no se quita.
- Relacione tablaB con capaC, a continuación una tablaA a capaC: este supuesto no funcionará. Esto caso es diferente del supuesto anterior en que capaC posee la relación. Por consiguiente, cuando tablaA se une a capaC, se quita la relación.
Las relaciones propiedad de la tabla de uniones no se ven afectadas por la unión. Sin embargo, la capa o tabla de destino 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 utilizar sin tener en cuenta si los datos han estado implicados en uniones o relaciones.