Table vers classe de relations (Gestion des données)

Synthèse

Crée une classe de relations attribuées à partir des tables d’origine, de destination et de relations.

Utilisation

  • Cet outil crée une table dans la base de données contenant les champs d’adresse sélectionnés de la table de relations. Ces champs permettent de stocker les attributs de la relation qui ne sont attribués ni à la classe d’origine, ni à la classe de destination. Par exemple, une base de données de parcelles peut contenir une classe de relations entre des parcelles et des propriétaires, dans laquelle des propriétaires possèdent des parcelles et des parcelles appartiennent à des propriétaires. Un attribut de cette relation peut représenter des parts de copropriété.

  • Les relations simples, ou point à point, impliquent deux objets ou plus dans la base de données qui existent indépendamment les uns des autres. Par exemple, un réseau ferroviaire peut comporter des intersections avec un ou plusieurs signaux lumineux. Cependant, une intersection de voie ferrée peut exister sans signal lumineux et des signaux lumineux exister sur le réseau ferroviaire là où il n'y a pas d'intersection. Les relations simples peuvent avoir des cardinalités de type un vers un, un vers plusieurs et plusieurs vers plusieurs.

  • Une relation composite décrit une relation dans laquelle l’existence d’un objet régit l’existence des objets qui lui sont liés. Par exemple, les pylônes électriques supportent les transformateurs et les transformateurs sont montés sur des pylônes. Une fois qu'un pylône est supprimé, un message de suppression est transmis aux transformateurs qui lui sont liés, lesquels sont supprimés de la classe d'entités des transformateurs. Les relations composites décrivent toujours des relations un vers plusieurs.

  • Les dénominations de parcours avant et arrière décrivent la relation née de la navigation d'un objet à un autre. La dénomination de parcours avant décrit la relation née de la navigation depuis la classe d'origine jusqu'à la classe de destination. Dans notre exemple pylône-transformateur, la dénomination de parcours avant serait : Les pylônes supportent les transformateurs. La dénomination de parcours arrière décrit la relation née de la navigation depuis la classe de destination jusqu'à la classe d'origine. Dans notre exemple pylône-transformateur, la dénomination de parcours arrière serait : Les transformateurs sont montés sur les pylônes.

Paramètres

ÉtiquetteExplicationType de données
Table d’origine

Table ou classe d’entités à associer à la table de destination.

Table View
Table de destination

Table ou classe d’entités à associer à la table d’origine.

Table View
Classe de relations en sortie

Classe de relations à créer.

Relationship Class
Type de relation

Spécifie le type d’association à créer entre les tables d’origine et de destination.

  • SimpleChaque objet est indépendant (relation parent vers parent). Il s’agit de l’option par défaut.
  • CompositeLa durée de vie d’un objet contrôle celle de ses objets associés (relation parent-enfant).
String
Appellation avant

Étiquette décrivant la relation lors de la navigation entre la classe d’entités ou la table d’origine et la classe d’entités ou la table de destination.

String
Appellation arrière

Étiquette décrivant la relation lors de la navigation entre la classe d’entités ou la table de destination et la classe d’entités ou la table d’origine.

String
Sens des messages

Spécifie le sens dans lequel les messages sont transmis entre les objets de la relation. Par exemple, dans une relation entre des pylônes et des transformateurs, lorsqu'un pylône est supprimé, un message est transmis aux objets transformateurs auxquels il est lié pour indiquer que le pylône a été supprimé.

  • Aucune (aucun message transmis)Aucun message n'est transmis. Il s’agit de l’option par défaut.
  • Avant (origine vers destination)Les messages sont transmis de l’origine vers la destination.
  • Arrière (destination vers origine)Les messages sont transmis de la destination vers l’origine.
  • Les deux directionsLes messages sont transmis de l’origine vers la destination et vice-versa.
String
Cardinalité

Détermine la cardinalité de la relation existant entre l’origine et la destination.

  • Un vers un (1:1)Chaque objet de la classe d’entités ou de la table d’origine peut être associé à zéro ou un objet de la classe d’entités ou de la table de destination. Il s’agit de l’option par défaut.
  • Un vers plusieurs (1:M)Chaque objet de la classe d’entités ou de la table d’origine peut être associé à plusieurs objets de la classe d’entités ou de la table de destination.
  • Plusieurs vers plusieurs (M:M)Plusieurs objets de la classe d’entités ou de la table d’origine peuvent être associés à plusieurs objets de la classe d’entités ou de la table de destination.
String
Table de relations

Table contenant les attributs qui seront ajoutés à la classe de relations.

Table View
Champs attributaires

Noms des champs contenant les valeurs attributaires à ajouter à la classe de relations. Ces champs doivent être présents dans la valeur du paramètre Table de relations.

Field
Clé primaire d’origine

Champ de la table d’origine qui permet de créer la relation.

String
Clé étrangère d’origine

Nom du champ dans la table de relations qui désigne le champ de clé primaire dans la classe d’entités ou la table d’origine. Pour les classes de relations basées sur une table, ces valeurs permettant d'alimenter les relations de la classe de relations, elles ne peuvent pas être nulles.

String
Clé primaire de destination

Champ de la table de destination qui permet de créer la relation.

String
Clé étrangère de destination

Champ de la table de relations qui désigne le champ de clé primaire dans la classe d'entités ou la table de destination. Pour les classes de relations basées sur une table, ces valeurs permettant d'alimenter les relations de la classe de relations, elles ne peuvent pas être nulles.

String

arcpy.management.TableToRelationshipClass(origin_table, destination_table, out_relationship_class, relationship_type, forward_label, backward_label, message_direction, cardinality, relationship_table, attribute_fields, origin_primary_key, origin_foreign_key, destination_primary_key, destination_foreign_key)
NomExplicationType de données
origin_table

Table ou classe d’entités à associer à la table de destination.

Table View
destination_table

Table ou classe d’entités à associer à la table d’origine.

Table View
out_relationship_class

Classe de relations à créer.

Relationship Class
relationship_type

Spécifie le type d’association à créer entre les tables d’origine et de destination.

  • SIMPLEChaque objet est indépendant (relation parent vers parent). Il s’agit de l’option par défaut.
  • COMPOSITELa durée de vie d’un objet contrôle celle de ses objets associés (relation parent-enfant).
String
forward_label

Étiquette décrivant la relation lors de la navigation entre la classe d’entités ou la table d’origine et la classe d’entités ou la table de destination.

String
backward_label

Étiquette décrivant la relation lors de la navigation entre la classe d’entités ou la table de destination et la classe d’entités ou la table d’origine.

String
message_direction

Spécifie le sens dans lequel les messages sont transmis entre les objets de la relation. Par exemple, dans une relation entre des pylônes et des transformateurs, lorsqu'un pylône est supprimé, un message est transmis aux objets transformateurs auxquels il est lié pour indiquer que le pylône a été supprimé.

  • NONEAucun message n'est transmis. Il s’agit de l’option par défaut.
  • FORWARDLes messages sont transmis de l’origine vers la destination.
  • BACKWARDLes messages sont transmis de la destination vers l’origine.
  • BOTHLes messages sont transmis de l’origine vers la destination et vice-versa.
String
cardinality

Détermine la cardinalité de la relation existant entre l’origine et la destination.

  • ONE_TO_ONEChaque objet de la classe d’entités ou de la table d’origine peut être associé à zéro ou un objet de la classe d’entités ou de la table de destination. Il s’agit de l’option par défaut.
  • ONE_TO_MANYChaque objet de la classe d’entités ou de la table d’origine peut être associé à plusieurs objets de la classe d’entités ou de la table de destination.
  • MANY_TO_MANYPlusieurs objets de la classe d’entités ou de la table d’origine peuvent être associés à plusieurs objets de la classe d’entités ou de la table de destination.
String
relationship_table

Table contenant les attributs qui seront ajoutés à la classe de relations.

Table View
attribute_fields
[attribute_fields,...]

Noms des champs contenant les valeurs attributaires à ajouter à la classe de relations. Ces champs doivent être présents dans la valeur du paramètre relationship_table.

Field
origin_primary_key

Champ de la table d’origine qui permet de créer la relation.

String
origin_foreign_key

Nom du champ dans la table de relations qui désigne le champ de clé primaire dans la classe d’entités ou la table d’origine. Pour les classes de relations basées sur une table, ces valeurs permettant d'alimenter les relations de la classe de relations, elles ne peuvent pas être nulles.

String
destination_primary_key

Champ de la table de destination qui permet de créer la relation.

String
destination_foreign_key

Champ de la table de relations qui désigne le champ de clé primaire dans la classe d'entités ou la table de destination. Pour les classes de relations basées sur une table, ces valeurs permettant d'alimenter les relations de la classe de relations, elles ne peuvent pas être nulles.

String

Exemple de code

Exemple d’utilisation de la fonction TableToRelationshipClass (fenêtre Python)

Le script suivant pour la fenêtre Python illustre l’utilisation de la fonction TableToRelationshipClass.

import arcpy
arcpy.env.workspace = "C:/data/Montgomery.gdb"
arcpy.TableToRelationshipClass_management("owners", "Parcels", "ownersParcels_RelClass",
                                          "SIMPLE", "Owns", "Is Owned By", "BACKWARD",
                                          "MANY_TO_MANY", "owners", ["OWNER_PERCENT", "DEED_DATE"],
                                          "OBJECTID", "owner_id", "OBJECTID", "parcel_id")
Exemple d’utilisation de la fonction TableToRelationshipClass (script autonome)

Créez une classe de relations attribuées entre une classe d’entités parcelles et une table avec des informations sur les propriétaires.

# Name: TableToRelationshipClass.py
# Description: Create an attributed relationship class between parcels
#              feature class and table with owner information
# Author: ESRI

# import system modules 
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Copy owners.dat to file gdb table, since both tables to be related
# must be in the same database
ownerDat = "owners.dat"
ownerTbl = "Montgomery.gdb/owners"
arcpy.CopyRows_management(ownerDat, ownerTbl)

# Create attributed relationship class between 'parcel' parcel layer
# and 'owner' table with additional parcel owner information
parcel = "Montgomery.gdb/Parcels"
relClass = "Montgomery.gdb/parcelowners_RelClass"
forLabel = "Owns"
backLabel = "Is Owned By"
attributeFields = ["OWNER_PERCENT", "DEED_DATE"]
originPK = "OBJECTID"
originFK = "owner_ID"
destinationPK = "OBJECTID"
destinationFK = "parcel_ID"
arcpy.TableToRelationshipClass_management(ownerTbl, parcel, relClass, "SIMPLE",
                                          forLabel, backLabel, "BACKWARD", "MANY_TO_MANY",
                                          ownerTbl, attributeFields, originPK, originFK,
                                          destinationPK, destinationFK)

Rubriques connexes