Table vers classe de relations (Gestion des données)
Récapitulatif
Crée une classe de relations attribuée à partir des tables d'origine, de destination et de relations.
Utilisation
-
Cet outil crée une table dans la base de données qui contient les champs attributaires sélectionnés de la table de relations. Ces champs permettent de stocker les attributs de la relation elle-même dans la mesure où ils ne sont pas attribués à la classe d'origine ou à 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, décrivent des relations entre deux ou plusieurs objets dans la base de données qui existent indépendamment l'un de l'autre. 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.
-
Il est également possible de créer des classes de relations dans ArcCatalog. Pour ce faire, sélectionnez l'élément de menu Nouvelle > Classe de relations dans le menu contextuel d'une géodatabase.
-
Le bouton Ajouter un champ du paramètre Champs attributaires ne peut être utilisé que dans ModelBuilder. Dans ModelBuilder, lorsque l'outil précédent n'a pas été exécuté ou que ses données dérivées n'existent pas, le paramètre Champs attributaires peut ne comporter aucun nom de champ. Le bouton Ajouter un champ permet d'ajouter des champs prévus pour terminer la saisie de valeurs dans la boîte de dialogue Table vers classe de relations et poursuivre la création du modèle.
Syntaxe
Paramètre | Explication | Type 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 |
Type d'association à créer entre les tables d'origine et de destination.
| String |
forward_label |
Dénomination de la relation allant de la table/classe d'entités d'origine vers la table/classe d'entités de destination. | String |
backward_label |
Dénomination de la relation allant de la table/classe d'entités de destination vers la table/classe d'entités d'origine. | String |
message_direction |
Les messages de direction 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é.
| String |
cardinality |
Cardinalité de la relation entre l'origine et la destination.
| String |
relationship_table |
Table contenant les attributs à ajouter à la classe de relations. | Table View |
attribute_fields [attribute_fields,...] | Champs contenant les valeurs attributaires à ajouter à la classe de relations. | Field |
origin_primary_key |
Champ de la table d'origine utilisé pour créer la relation. Il s'agit généralement du champ OID. | String |
origin_foreign_key |
Nom du champ Clé étrangère de la table de relations faisant référence au champ Clé primaire de la table/classe d'entités d'origine. | String |
destination_primary_key |
Champ de la table de destination utilisé pour créer la relation. Il s'agit généralement du champ OID. | String |
destination_foreign_key |
Champ de la table de relations faisant référence au champ Clé primaire de la table de destination. | String |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil 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")
Crée une classe de relations attribuée entre la classe d'entités de parcelle et la table contenant les informations de propriété.
# 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)