Principes de base concernant la classe de relations de géodatabase

Les classes de relations dans la géodatabase gèrent les associations entre les objets d’une classe (classe d’entités ou table) et les objets d’une autre classe. Les objets à l’une ou l’autre des extrémités de la relation peuvent être des entités avec une géométrie ou des enregistrements d’une table.

Par exemple, une classe d’entités d’installations de terrain de camping Campground Facilities (table d’origine) peut être associée à une classe d’entités d’emplacements de camping Campsites (table de destination), car chacune d’elles partage un champ commun contenant des valeurs communes, FacilityID dans la table d’origine et ParentFacilityID dans la table de destination. Par ailleurs, elles ont le même type de données entier long pour ce champ. Dans cet exemple, l’association de ces enregistrements permettrait de sélectionner une seule installation de terrain de camping et d’accéder à plusieurs emplacements associés à ce terrain de camping.

Les classes de relations gèrent les associations entre les objets d’une classe d’entités ou d’une table et les objets d’une autre classe/table.
Il s’agit d’un exemple d’une classe de relations un à plusieurs (1:M).

Avantages des classes de relations

Une classe de relations dans une géodatabase établit une connexion entre deux tables reposant sur un champ commun, appelé également la clé. Il est possible d’utiliser cette connexion pour renforcer l’intégrité référentielle ou pour parcourir les enregistrements associés. Voici quelques avantages et fonctionnalités avancées qu’offre une classe de relations :

  • Intégrité référentielle : une classe de relations peut renforcer l’intégrité référentielle chargée d’assurer que les relations entre les tables restent cohérentes. Ainsi, si un enregistrement de la table d’origine est supprimé, tous les enregistrements associés dans la table de destination seront également supprimés.
  • Saisie et de la modification des données optimisées : lors de la modification des données, les classes de relations permettent de garantir que les changements sont correctement répercutés dans les tables associées. Cela contribue à éviter les incohérences et les erreurs dans les données.
  • Analyse de données enrichie : lorsqu’une classe de relations a été établie entre des jeux de données, vous avez la possibilité de réaliser des requêtes et des analyses plus complexes. Par exemple, vous pouvez rechercher toutes les entités dans une table qui sont reliées à une entité particulière dans une autre table.
  • Gestion de données efficace : les classes de relations permettent une gestion efficace des données associées. Au lieu de dupliquer des données dans plusieurs tables, vous pouvez les stocker dans un même emplacement et créer des relations entre celui-ci et une autre table.
  • Cardinalité : la cardinalité décrit la manière dont des éléments ou des données sont associées à d’autres. Par exemple, dans les données SIG d’une ville, une relation un vers un représente la relation d’un bâtiment à son propriétaire. La relation un vers plusieurs est celle d’un itinéraire de bus desservant de nombreux arrêts de bus. Une relation plusieurs vers plusieurs peut décrire la relation d’un grand nombre de consommateurs fréquentant de nombreux points de vente. Les classes de relations aident à comprendre ces connexions et à exploiter des données complexes.
  • Règles de relation : vous pouvez définir des contraintes dans une classe de relations pour garantir que l’exactitude et la cohérence des données spatiales est maintenue durant la mise à jour des données. Par exemple, une règle de relation peut stipuler que chaque bâtiment soit associé à une parcelle en particulier. Vous pouvez établir des règles définissant les modalités selon lesquelles les éléments sont connectés entre eux (comme un bâtiment et une parcelle, un itinéraire de bus et de nombreux arrêts de bus ou un grand nombre de consommateurs fréquentant de nombreux points de vente) en maintenant l’exactitude et la fiabilité des données de votre géodatabase. Cela permet de garantir l’intégrité de vos données.
  • Relations attribuées : les classes de relations peuvent stocker des informations supplémentaires sur la relation elle-même. Par exemple, dans une relation entre des routes et des accidents de la circulation, un attribut pourrait stocker le nombre d’accidents se produisant sur chaque segment de route. Les classes de relations peuvent avoir des attributs qui vous permettent de stocker des informations concernant la relation proprement dite. Ainsi, il est possible de mémoriser la date à laquelle la relation a été établie.
  • Notification : les notifications permettent des mises à jour automatiques. Si une modification est apportée dans une table, les enregistrements associés dans l’autre table sont automatiquement mis à jour. Les classes de relation envoient des messages lorsque certains événements ont lieu, comme la création ou la suppression d’une relation. Cela permet de déclencher un comportement personnalisé dans votre application.
  • Navigation : vous pouvez passer d’une relation à une autre dans n’importe quelle direction. Considérons, par exemple, une relation entre une table Clients et une table Commandes. Vous pouvez rechercher toutes les commandes d’un client donné ou encore rechercher le client qui est associée à une commande particulière.
  • Mises à jour et suppressions en cascade : les classes de relations prennent en charge les mises à jour et suppressions en cascade. Si, par exemple, un enregistrement dans la table d’origine est mis à jour ou supprimé, les modifications sont propagées aux enregistrements associés dans la table de destination.

Restrictions liées aux classes de relations

Les classes de relations dans la géodatabase gèrent les associations entre objets dans deux classes d’entités ou tables associées. Néanmoins, les restrictions et les limitations suivantes existent :

  • Les classes de relations ne peuvent être définies qu’entre classes d’entités ou tables de la même géodatabase.
  • Les classes d’entités ou les tables doivent également être stockées dans la même géodatabase.

Jeux de données faisant partie de plusieurs classes de relations

Une classe d’entités ou une table peut participer à plusieurs classes de relations. Toutefois, il existe des restrictions :

  • Une classe d’entités ou une table donnée ne peut pas être la destination dans deux classes de relations composites. Cependant, il peut exister plusieurs relations simples entre une paire de classes. Cela peut être le cas si vous devez mettre en œuvre une cardinalité différente, selon la direction dans laquelle vous orientez la relation.
  • S’il existe une classe de relations composites entre deux classes, aucune autre classe de relations ne peut être créée entre les mêmes deux classes.
  • Pour créer une classe de relations dans un jeu de classes d’entités, la classe d’origine ou la classe de destination doit figurer dans le jeu de classes d’entités.
  • Il peut exister plusieurs relations simples entre une paire de classes. Cela peut être le cas si vous devez mettre en œuvre une cardinalité différente, selon la direction dans laquelle vous orientez la relation.

Classes de relations non prises en charge

Les propriétés et types suivants des classes de relations ne sont pas pris en charge dans ArcGIS :

  • Les relations récursives dans lesquelles il existe une relation entre des enregistrements de la même table ou classe d’entités ne sont pas encore prises en charge dans ArcGIS.
  • Les clés primaires et étrangères ne peuvent chacune être basée que sur un seul champ. Les clés primaires et étrangères complexes ne sont pas prises en charge dans ArcGIS.

Si vous avez déterminé, d’après les données que vous possédez et les questions auxquelles vous tentez de répondre, que l’utilisation d’une classe de relations dans la géodatabase est la méthode qui convient le mieux à votre situation, les étapes suivantes consistent à comprendre les types de classe de relations de géodatabase et à créer une classe de relations.

Rubriques connexes