Se préparer à la création d’une classe de relations

Une classe de relations est un des processus de ArcGIS Pro qui associe des entités et des enregistrements les uns avec les autres dans une géodatabase.

Outils pour la création d’une classe de relations

Vous avez le choix entre deux outils de géotraitement pour créer une classe de relations de géodatabase :

  • Utilisez l’outil de géotraitement Créer une classe de relations : crée une classe de relations pour stocker une association entre des champs ou des entités de la table d’origine et de la table de destination.
  • Utilisez l’outil de géotraitement Table vers classe de relations : crée une classe de relations décrite par des attributs à partir des tables d’origine, de destination et de relations. Cet outil permet de spécifier une table intermédiaire existante requise, par exemple, dans une relation plusieurs vers plusieurs ou une relation comportant des attributs.

Remarques relatives aux classes de relations de géodatabase

Pour savoir quel type de classe de relations de géodatabase créer et utiliser dans le processus, tenez compte des points suivants :

  • La cardinalité qui existe entre les objets des tables ou des classes.
    • La cardinalité des classes de relations de géodatabase indique le nombre de lignes ou d’entités de la table d’origine reliées à un nombre défini de lignes ou d’entités dans la table de destination.

      Trois cardinalités sont possibles une classe de relations de géodatabase :

      Trois cardinalités sont possibles pour une classe de relations de géodatabase.
      • One to one (1:1) (Un vers un) : chaque ligne ou entité dans la table d’origine peut être reliée à zéro ou une ligne ou entité dans la table de destination. Il s’agit de l’option par défaut.
      • One to many (1:M) (Un vers plusieurs) : chaque ligne ou entité de la table d’origine peut être reliée avec une ou plusieurs lignes ou entités de la table de destination.
      • Many to many (M:N) (Plusieurs vers plusieurs) : plusieurs lignes ou entités de la table d’origine peuvent être reliées avec une ou plusieurs lignes ou entités de la table de destination.

      En savoir plus sur les cardinalités et leur utilisation

  • Le champ de clé commun qui existe à la fois dans les tables ou classes d’origine et de destination.
    • Un champ commun, connu sous le nom de clé, permet d’associer les enregistrements d’une table (origine) aux enregistrements d’une autre table (destination). Avant de créer n’importe quel type de classe de relations, vous devez identifier dans chaque table un champ qui partage des valeurs communes et dont le type de données est identique. Ce champ est appelé champ de clé primaire dans l’origine et champ de clé étrangère dans la destination.

      Par exemple, une classe d’entités Campground Facilities (Terrains de camping) (table d’origine) peut être associée à une classe d’entités Campsites (Emplacements de camping) (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, ce champ présente le même type de données entier long dans ces deux classes d’entités. Dans cet exemple, l’association de ces enregistrements permettrait de sélectionner un seul terrain de camping et d’accéder à tous les emplacements associés à ce terrain de camping.

      Clé primaire dans la table d’origine et clé étrangère dans la table de destination
      Remarque :

      Dans une classe de relations, les champs communs ne doivent pas nécessairement porter le même nom, mais doivent présenter le même type de données. Les valeurs des champs communs permettent de lier les enregistrements de la table en fonction de la cardinalité définie.

      Dans l’exemple suivant, une classe de relations un vers plusieurs a été créée entre les terrains de camping et les emplacements de chaque terrain de camping. Cette relation un vers plusieurs permet de sélectionner un seul terrain de camping et d’accéder à tous les emplacements associés ainsi qu’aux attributs de chaque emplacement pour ce terrain de camping.

      Diagramme d’une classe de relations un vers plusieurs
      Une classe de relations est créée entre Campground Facilities et chaque Campsites affecté à chaque terrain de camping.

    En savoir plus sur les clés primaires et étrangères

  • Vous pouvez utiliser un champ Object ID (ID d’objet) ou Global ID (ID global) pour représenter la relation entre la clé primaire de la table d’origine et la clé étrangère de la table de destination.

    Voici quelques points à prendre en compte si vous utilisez des ID d’objet et des ID globaux :

    • Champ Object ID (ID d’objet)
      • La création d’une classe de relations dans ArcGIS Pro nécessite des valeurs uniques pour la représentation de la relation entre la clé primaire et la clé étrangère. Lorsque vous créez une table dans ArcGIS Pro, un champ de nombre entier unique n’acceptant pas les valeurs nulles est ajouté à la table en tant qu’identifiant d’objet (ID d’objet). Ce champ Object ID (ID d’objet) stocke un identifiant unique pour chaque ligne de la table et est créé par défaut en tant qu’ID d’objet 32 bits dans les tables et classes d’entités.

        Le champ Object ID (ID d’objet) est géré par ArcGIS Pro et garantit un ID unique pour chaque ligne initialement ajoutée à la table. Certaines fonctionnalités clés d’ArcGIS, telles que l’utilisation de l’outil Identifier et l’affichage des ensembles de sélection, dépendent de l’unicité de chaque valeur d’une table.

      • Les classes d’entités et les tables de géodatabase sont créées dans ArcGIS avec des ID d’objet 32 bits, par défaut. Toutefois, dans certaines circonstances, les valeurs des ID d’objet doivent être supérieures à 2,14 milliards. Vous pouvez alors utiliser l’outil de géotraitement Migrer un ID d’objet vers 64 bits pour migrer le champ Object ID (ID d’objet) d’une classe de relations.
        Attention :

        Lorsqu’un champ Object ID (ID d’objet) est migré afin de stocker des ID d’objet 64 bits, il n’est pas possible de revenir en arrière et le jeu de données ne peut plus être utilisé avec ArcMap, ni avec ArcGIS Pro 3.1 et versions antérieures.

      • La création d’une classe de relations basée sur la valeur ObjectID n’est pas prise en charge pour le versionnement de branche.

        Conseil :

        Vous pouvez également exécuter l’outil Migrer la classe de relations pour migrer une classe de relations basée des ID d’objet vers une classe de relations basée sur des ID globaux avant d’utiliser les données dans un environnement de versionnement de branche.

    • Champ Global ID (ID global)
      • Les ID globaux sont similaires aux ID d’objet dans le sens où ils sont gérés par ArcGIS Pro et ne peuvent pas être modifiés.

        Les ID globaux identifient de manière unique une entité dans une ou plusieurs géodatabases. Il est recommandé d’ajouter des ID globaux aux données et d’utiliser le champ Global ID (ID global) comme clé primaire. Le fait d’utiliser le champ Global ID (ID global) de la couche garantit l’unicité de la clé primaire de la classe de relations lors de l’établissement d’une connexion entre une classe d’entités et une table.

        Vous pouvez également activer des ID globaux sur une classe de relations. L’option Global IDs (ID globaux) est disponible sur l’onglet Manage (Gérer) des classes de relations décrites par des attributs ou plusieurs vers plusieurs dans une géodatabase fichier, mobile ou d’entreprise. Une fois cette option activée, un champ Global ID (ID global) est ajouté à la table intermédiaire.

      • Les ID globaux et les GUID diffèrent dans le sens où ArcGIS Pro gère activement les champs Global ID (ID global). Par exemple, si vous utilisez un champ Global ID (ID global) à la création d’une nouvelle entité, une valeur unique d’ID global est attribuée à cette entité, alors que les champs GUID restent vides et qu’il revient à l’utilisateur de les gérer.

Découvrez comment créer une classe de relations simples ou comment créer une classe de relations composites.

Créer et définir des règles pour des classes de relations de géodatabase

Si la classe d’origine comme la classe de destination figure dans le même jeu de classes d’entités, la classe de relations réside dans ce jeu de classes d’entités. Sinon, la classe de relations se situe directement sous la géodatabase, en dehors des jeux de classes d’entités.

Créer une relation implique plusieurs étapes supplémentaires ; différents processus permettent de réaliser le traitement. Le processus que vous devez suivre dépend des données que vous possédez et du type de relation que vous souhaitez établir.

  • Si vous avez chargé des entités ou des enregistrements dans les classes d’origine et de destination et que les valeurs de clé primaire dans l’origine sont correctement reliées aux valeurs de clé étrangère appropriées dans la destination, procédez comme suit :

    1. Créez la classe de relations à l’aide de l’outil Créer une classe de relations.
    2. Définissez des règles pour la classe de relations si nécessaire.

      Consultez la rubrique Gérer les règles de classe de relations pour plus d’informations sur l’activation et la désactivation des règles sur la classe de relations.

    3. Si vous avez défini des règles de classe de relations ou si vous utilisez une classe de relations composites, utilisez les règles attributaires de validation ou de contrainte pour tester et appliquer l’intégrité référentielle des données.

      Attention :

      Ce processus n’est pas applicable dans le cas de classes de relations plusieurs vers plusieurs ou décrites par des attributs.

  • Si vous avez chargé des entités ou des enregistrements dans les classes d’origine et de destination et que l’origine comporte des valeurs de clé primaire, mais qu’il n’existe aucune valeur de clé étrangère dans la destination ou que certaines valeurs ne sont pas correctement reliées, procédez comme suit :

    1. Créez la classe de relations à l’aide de l’outil de géotraitement Créer une classe de relations.
    2. Définissez des règles pour la classe de relations si nécessaire.

      Consultez la rubrique Gérer les règles de classe de relations pour plus d’informations sur l’activation et la désactivation des règles sur la classe de relations.

    3. Sélectionnez interactivement les objets d’origine et de destination et reliez-les via la boîte de dialogue Attributes (Attributs) à l’aide de l’option Add Selected To Relationship (Ajouter la sélection à la relation).

      Cela permet de définir les valeurs de clé étrangère dans la destination de manière à les associer aux valeurs de la clé primaire dans l’origine.

      Pour en savoir plus, reportez-vous à la rubrique Renseigner une table de classes de relations décrites par des attributs.

    4. Si vous utilisez l’outil Créer une classe de relations pour créer une classe de relations plusieurs vers plusieurs ou décrite par des attributs, vous pouvez également renseigner manuellement la table intermédiaire obtenue qui ne comporte que les champs générés, ArcGIS n’effectuant pas la mise en relation entre les objets d’origine et de destination.

      Pour en savoir plus, reportez-vous à la rubrique Comprendre les classes de relations décrites par des attributs.

    5. Si vous avez défini des règles de classe de relations ou si vous utilisez une relation composite, utilisez les règles attributaires de validation ou de contrainte pour tester et appliquer l’intégrité référentielle des données.

      Attention :

      Ce processus n’est pas applicable à des classes de relations plusieurs vers plusieurs qui ne comportent pas au moins une classe d’entités comme origine ou destination.

  • Pour créer une classe de relations plusieurs vers plusieurs entre deux tables ou créer une classe de relations avec une table intermédiaire contenant des attributs de relation, procédez comme suit :
    1. Créez et alimentez la table d’origine, la table de destination et la table intermédiaire pour garantir la mise en relation appropriée des valeurs de clé primaire avec les valeurs de clé étrangère.
    2. Créez la classe de relations à l’aide de l’outil Table vers classe de relations.

      Pour en savoir plus, reportez-vous aux rubriques Comprendre les classes de relations décrites par des attributs et Créer une table de classes de relations décrites par des attributs.

Découvrez les conseils d’utilisation des classes de relations et les options disponibles pour modifier une classe de relations.

Rubriques connexes