A propos de la jointure et de la mise en relation des tables

La plupart des directives de création des bases de données favorise l'organisation sur la base de tables multiples - chacune se concentrant sur un sujet spécifique - au lieu d'une grande table contenant tous les champs nécessaires. Le fait d'avoir plusieurs tables évite de devoir dupliquer les informations dans la base de données puisque les données ne sont saisies qu'une fois dans une table. Lorsque vous avez besoin d'informations ne figurant pas dans la table avec laquelle vous travaillez, vous avez la possibilité de relier les deux tables.

Par exemple, vous pouvez obtenir des données auprès d'autres services de votre organisation, les acheter ou les télécharger sur Internet. Si ces informations sont stockées dans une base de données dBASE, INFO ou une table de géodatabase, vous pouvez les associer aux entités géographiques et les afficher sur la carte.

Avec ArcGIS, vous pouvez associer des enregistrements d'une table à des enregistrements d'une autre table à l'aide d'un champ commun appelé clé. Vous pouvez créer ces associations de plusieurs façons, y compris en joignant ou en mettant en relation temporairement des tables de votre carte, ou en créant des classes de relations dans la géodatabase qui gère les associations permanentes. Par exemple, vous pouvez associer une table contenant des informations sur la propriété des parcelles à la couche parcelle, puisque ces tables ont en commun un champ d'identification des parcelles.

Lorsque vous joignez deux tables, vous annexez les attributs d'une table à l'autre en fonction d'un champ commun aux deux tables. La mise en relation de tables définit un rapport entre deux tables (également en fonction d'un champ commun), mais n'annexe pas les attributs de l'une à l'autre. Les données sont accessibles lorsque vous en avez besoin.

Jointure des attributs d'une table

En règle générale, vous joignez une table de données à une couche en fonction de la valeur d'un champ présent dans les deux tables. Le nom du champ ne doit pas obligatoirement être le même contrairement au type de données qui doit l'être. Vous joignez des nombres à des nombres, des chaînes à des chaînes et ainsi de suite. Vous pouvez effectuer une jointure soit par le biais de la boîte de dialogue Joindre des données, accessible en cliquant avec le bouton droit sur une couche dans ArcMap, soit à l’aide de l’outil Ajouter une jointure.

Supposons que vous ayez obtenu des données qui décrivent le changement en pourcentage de la population par comté et que vous souhaitiez générer des cartes d'augmentation de la population à partir de ces informations. Tant que vos données démographiques sont stockées dans une table de la base de données et ont un champ en commun avec la couche, vous pouvez les joindre à l'entité géographique et utiliser tous les champs supplémentaires pour symboliser, étiqueter, interroger ou analyser les entités de la couche.

Relations un vers un et plusieurs vers un

Lorsque vous joignez des tables dans ArcMap, vous établissez un rapport un à un ou plusieurs à un entre la table attributaire de la couche et la table contenant les informations que vous souhaitez joindre. L'exemple ci-dessous illustre une relation un à un entre chaque comté et les données de changement de la population de ce comté. En d'autres termes, il existe un changement de population pour chaque comté.

Symbolisation des entités en fonction des données démographiques jointes

L'exemple suivant est un exemple de rapport plusieurs à un. Supposons que vous ayez une couche dans laquelle chaque polygone est classé selon le type d'utilisation des sols. La table attributaire de la couche ne stocke que le code d'utilisation du sol. Une table distincte stocke la description complète de chaque type d'utilisation du sol. La jointure de ces deux tables établirait une relation plusieurs vers un puisque de nombreux enregistrements dans la table attributaire de la couche se joindraient au même enregistrement dans la table des descriptions de l'utilisation du sol. Vous pourriez alors utiliser le texte descriptif lors de la génération de la légende de la carte.

Exemple de relation plusieurs à un
AttentionAttention :

Si vous essayez de créer une jointure sur une relation 1 - M, seule la première correspondance sera jointe dans la couche jointe résultant.

Jointure de données par emplacement (spatialement)

Lorsque les couches de votre carte ne partagent pas de champ attributaire commun, vous pouvez joindre ces couches à l'aide d'une jointure spatiale. Ce type de jointure permet de joindre les attributs de deux couches en fonction de l'emplacement des entités dans les couches.

Vous pouvez effectuer une jointure spatiale soit par le biais de la boîte de dialogue Joindre des données, accessible en cliquant avec le bouton droit sur une couche dans ArcMap, soit à l’aide de l’outil Jointure spatiale.

Avec une jointure spatiale, vous pouvez trouver chacun des éléments suivants :

La jointure par emplacement, ou jointure spatiale, utilise des associations spatiales entre les couches impliquées pour ajouter des champs d'une couche à une autre. Les jointures spatiales diffèrent des jointures d'attributs ou de classes de relations par le fait qu'elles ne sont pas dynamiques et qu'elles nécessitent d'enregistrer les résultats dans une nouvelle couche en sortie.

Trois types d'association permettent d'exécuter une jointure spatiale :

Pour chaque combinaison de points, de polygones et de lignes, seules les associations les plus utilisées sont disponibles dans la boîte de dialogue Jointure. Toutefois, avec VBA, il est possible d'exécuter une jointure fondée sur n'importe quelle association et à partir de n'importe quelle combinaison de couches d'entités ponctuelles, linéaires ou surfaciques.

Mise en relation des tables

Contrairement à la procédure de jointure, la mise en relation entre des tables définit simplement un rapport entre deux tables. Les données associées ne sont pas annexées à la table attributaire de la couche, comme dans le cas d'une jointure, mais sont accessibles lorsque vous utilisez les attributs de la couche.

Par exemple, si vous sélectionnez un bâtiment, vous pouvez trouver tous ses occupants. De la même façon, si vous sélectionnez un locataire, vous pourrez trouver le bâtiment dans lequel il réside (ou les bâtiments dans le cas d'une enseigne commerciale ayant plusieurs magasins dans différents centres commerciaux : il s'agit alors d'un rapport plusieurs à plusieurs). Cependant, si vous avez effectué une jointure de telles données, ArcMap ne recherche que le premier locataire de chaque bâtiment et ne prend pas en compte les autres locataires.

Les mises en relation définies dans ArcMap suivent essentiellement le même concept que les classes de relations simples définies dans la géodatabase sauf qu'elles sont enregistrées avec la carte et non avec la géodatabase.

Si les données sont stockées dans une géodatabase et que leurs classes de relations sont définies, vous pouvez les utiliser directement sans avoir à établir une relation dans ArcMap. Les classes de relations sont automatiquement disponibles lorsque vous ajoutez une couche qui participe à une classe de relations avec la carte. Il est à noter que la relation plusieurs vers plusieurs est définie différemment lorsque les données sont stockées dans une géodatabase. En général, si des classes de relations sont définies dans la géodatabase, vous devez les utiliser au lieu d'en créer de nouvelles dans ArcMap.

En savoir plus sur la création d'une classe de relations

Classes de relations dans la géodatabase

Une classe de relations stocke des informations sur les associations entre des entités et des enregistrements dans une géodatabase et garantit l'intégrité de vos données.

En savoir plus sur les avantages liés à l'utilisation des classes de relations

Jointures et relations

Suivez ces indications lorsque vous devez choisir entre jointures ou des liaisons de données :

En savoir plus sur le choix entre des classes de relations, des jointures et des relations

Enregistrement de jointures et de relations

Lorsque vous enregistrez une carte contenant des jointures et des mises en relation, ArcMap enregistre la façon dont les deux tables attributaires sont liées et non pas les données jointes elles-mêmes. Lorsque vous rouvrez la carte, ArcMap rétablit le rapport (qu'il s'agisse d'une jointure ou d'une mise en relation) entre les tables en lisant les tables de la base de données. De cette façon, toutes les modifications des tables sources effectuées depuis la dernière visualisation sont automatiquement incluses et reflétées dans la carte.

Les jointures peuvent être stockées dans un document ArcMap ou dans un fichier de couches. Si vous envisagez de déplacer les données à un moment ou à un autre, vous devez enregistrer vos documents ArcMap avec leurs chemins relatifs. Si les données sont déplacées, vous pouvez réparer les tables et les couches après l'ouverture du document. Cependant, les jointures ne seront réparées que si la table cible et les tables à joindre se trouvent dans le même répertoire ou le même espace de travail. Si vous enregistrez votre document avec ses chemins relatifs, les tables et les couches seront restaurées automatiquement avec les jointures si le document a été déplacé en fonction de l'emplacement dans lequel se trouvent les données transférées.

Vous pouvez faire une copie permanente sur disque de la couche avec données jointes en exportant simplement la couche. Pour exporter la couche, cliquez avec le bouton droit dans la table des matières, sélectionnez Données puis cliquez sur Exporter des données. Cette opération crée une nouvelle classe d'entités avec tous les attributs, y compris les champs joints.

Utilisation des jointures, des mises en relation et des classes de relations ensemble

Si vos données sont utilisées à la fois par les jointures et les mises en relation, l'ordre dans lequel les jointures et les mises en relation sont créées est important. Si la couche ou la table a une mise en relation, cette dernière est supprimée lors de la jointure des données. Si vous effectuez une mise en relation sur une couche ou une table jointe, la mise en relation est supprimée lors de la suppression de la jointure. En règle générale, il est préférable de créer les jointures puis d'ajouter les mises en relation.

Dans le cas où vous ayez besoin de joindre la tableA et de mettre la tableB en relation avec la tableC, sur les trois options proposées, deux pourront être utilisées. Chaque cas est décrit ci-dessous :

Les mises en relation appartenant à la table à joindre ne sont pas affectées par la jointure. Toutefois, ces mises en relation ne sont pas accessibles à partir de la table ou de la couche cible.

Les classes de relations ne sont jamais supprimées après une opération de jointure ou d'agrégation. Elles peuvent être utilisées même si les données font partie de jointures ou des mises en relation.

Rubriques connexes


7/10/2012