Tabelle zu Beziehungsklasse (Data Management)
Zusammenfassung
Erstellt eine Beziehungsklasse mit Attributen aus den Quell-, Ziel- und Beziehungstabellen.
Verwendung
-
Mit diesem Werkzeug wird eine Tabelle in der Datenbank erstellt, die die ausgewählten Attributfelder der Beziehungstabelle enthält. Diese Felder werden zum Speichern von Attributen der Beziehung selbst verwendet, die nicht der Quell- oder Zielklasse zugeordnet sind. Beispiel: In einer Flurstückdatenbank gibt es eine Beziehungsklasse zwischen Flurstücken und Eigentümern, in der die Eigentümer Flurstücke "besitzen" und die Flurstücke Eigentümern "gehören". Ein Attribut dieser Beziehung könnte der Besitzanteil der einzelnen Eigentümer sein.
-
Einfache oder Peer-to-Peer-Beziehungen sind Beziehungen zwischen zwei oder mehr Objekten in der Datenbank, die unabhängig voneinander existieren. Beispiel: In einem Eisenbahnnetz gibt es Bahnübergänge, an denen eine oder mehrere verbundene Signalanlagen angebracht sind. Der Bahnübergang kann jedoch auch ohne eine Signalanlage existieren und Signalanlagen existieren im Eisenbahnnetz auch dort, wo es keine Bahnübergänge gibt. Einfache Beziehungen können die Beziehungsarten Eins-zu-eins (1:1), Eins-zu-vielen (1:M), Viele-zu-eins (M:1) und Viele-zu-vielen (N:M) aufweisen.
-
Eine abhängige Beziehung ist eine Beziehung, bei der die Lebensdauer eines Objektes über die Lebensdauer der in Beziehung stehenden Objekte entscheidet. So unterstützen beispielsweise Strommasten Transformatoren und Transformatoren werden an Strommasten angebracht. Wenn ein Mast gelöscht wird, wird eine Meldung darüber an die entsprechenden Transformatoren übermittelt, die dann aus der Feature-Class der Transformatoren gelöscht werden. Abhängige Beziehungen sind immer vom Typ Eins-zu-vielen.
-
Vorwärts- und Rückwärts-Pfadbeschriftungen beschreiben die Beziehung, wenn man von einem Objekt zum einem anderen navigiert. Die Vorwärts-Pfadbeschriftung beschreibt die Beziehung beim Navigieren von der Quell- zur Zielklasse. Im Beispiel mit Strommast und Transformator kann die Vorwärts-Pfadbeschriftung folgendermaßen lauten: Masten stützen Transformatoren. Die Rückwärts-Pfadbeschriftung beschreibt die Beziehung beim Navigieren von der Ziel- zur Quellklasse. Im Beispiel mit Strommast und Transformator kann die Rückwärts-Pfadbeschriftung folgendermaßen lauten: Transformatoren werden an Masten angebracht.
-
Beziehungsklassen können auch in ArcCatalog erstellt werden. Wählen Sie das Menüelement Neue > Beziehungsklasse im Kontextmenü einer Geodatabase aus.
-
Die Schaltfläche Feld hinzufügen des Parameters Attributfelder wird nur in ModelBuilder verwendet. Der Parameter Attributfelder ist in ModelBuilder nicht mit Feldnamen belegt, wenn das vorherige Werkzeug nicht ausgeführt wurde oder die abgeleiteten Daten nicht vorhanden sind. Mit der Schaltfläche Feld hinzufügen können Sie die erwarteten Felder hinzufügen, damit Sie das Dialogfeld Tabelle zu Beziehungsklasse abschließen und mit der Erstellung Ihres Modells fortfahren können.
Syntax
Parameter | Erläuterung | Datentyp |
origin_table |
Die Tabelle oder Feature-Class, die der Zieltabelle zugeordnet wird. | Table View |
destination_table |
Die Tabelle oder Feature-Class, die der Quelltabelle zugeordnet wird. | Table View |
out_relationship_class |
Die erstellte Beziehungsklasse. | Relationship Class |
relationship_type |
Die zwischen Quell- und Zieltabelle zu erstellende Verbindungsart.
| String |
forward_label |
Eine Beschriftung, mit der die Beziehung beim Übergang von der Quelltabelle/Feature-Class zur Zieltabelle/Feature-Class beschrieben wird. | String |
backward_label |
Eine Beschriftung, mit der die Beziehung beim Übergang von der Zieltabelle/Feature-Class zur Quelltabelle/Feature-Class beschrieben wird. | String |
message_direction |
Die Richtung, in die Meldungen zwischen den Objekten in einer Beziehung übermittelt werden. Beispiel: In einer Beziehung zwischen Masten und Transformatoren wird vom Mast, sobald er gelöscht wird, eine Nachricht an die mit ihm in Beziehung stehenden Transformatorobjekte gesendet, um sie darüber zu informieren.
| String |
cardinality |
Die Art der Beziehung zwischen Quelle und Ziel.
| String |
relationship_table |
Die Tabelle mit Attributen, die der Beziehungsklasse hinzugefügt werden. | Table View |
attribute_fields [attribute_fields,...] | Die Felder mit Attributwerten, die der Beziehungsklasse hinzugefügt werden. | Field |
origin_primary_key |
Das Feld in der Quelltabelle, das zum Erstellen der Beziehung verwendet wird. Normalerweise ist dies das Feld mit der ObjectID. | String |
origin_foreign_key |
Der Name des Feldes "Fremdschlüssel" der Beziehungstabelle, der sich auf das Feld "Primärschlüssel" in der Quelltabelle/Feature Class bezieht. | String |
destination_primary_key |
Das Feld in der Zieltabelle, das zum Erstellen der Beziehung verwendet wird. Normalerweise ist dies das Feld mit der ObjectID. | String |
destination_foreign_key |
Das Feld in der Beziehungstabelle, das sich auf das Feld "Primärschlüssel" in der Zieltabelle bezieht. | String |
Codebeispiel
Mit dem folgenden Skript im Python-Fenster wird veranschaulicht, wie Sie das Werkzeug "TableToRelationshipClass" verwenden.
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")
Es wird eine Beziehungsklasse mit Attributen zwischen einer Flurstück-Feature-Class und einer Tabelle mit Besitzerinformationen erstellt.
# 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)