ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Beziehungsklasse erstellen

  • Zusammenfassung
  • Verwendung
  • Syntax
  • Codebeispiel
  • Umgebungen
  • Lizenzinformationen

Zusammenfassung

Mit diesem Werkzeug erstellen Sie eine Beziehungsklasse, in der eine Zuordnung zwischen Feldern oder Features in der Quelltabelle und der Zieltabelle gespeichert wird.

Verwendung

  • Beziehungen können zwischen räumlichen Objekten (Features in Feature-Classes), nicht räumlichen Objekten (Zeilen in einer Tabelle) oder zwischen räumlichen und nicht räumlichen Objekten bestehen.

  • Beziehungsklassen können nach ihrer Erstellung nicht geändert werden. Sie können lediglich Regeln hinzufügen, löschen oder neu definieren. Beziehungsklassen können wie jedes andere Objekt in der Datenbank mit ArcCatalog gelöscht und umbenannt werden.

  • Bei Viele-zu-viele-Beziehungsklassen wird eine neue Tabelle in der Datenbank erstellt, in der die zur Verbindung von Quell- und Zieltabellen verwendeten Fremdschlüssel gespeichert werden. Diese Tabelle kann auch andere Felder zur Speicherung von Attributen der Beziehung selbst besitzen, die nicht der Quell- oder Zielklasse zugeordnet sind. Beispiel: In einer Flurstücksdatenbank gibt es eine Beziehungsklasse zwischen Flurstücken und Besitzern, in der die Besitzer Flurstücke "besitzen" und die Flurstücke Besitzern "gehören". Ein Attribut dieser Beziehung könnte der Besitzanteil der einzelnen Besitzer sein. Eins-zu-eins- und Eins-zu-viele-Beziehungsklassen können ebenfalls Attribute beinhalten. In diesem Fall wird eine Tabelle zum Speichern der Beziehungen erstellt.

  • 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-viele (1:M), Viele-zu-eins (M:1) und Viele-zu-viele (N:M) aufweisen.

  • Eine abhängige Beziehung ist eine Beziehung, bei der die Lebensdauer eines Objekts über die Lebensdauer der verbundenen Objekte entscheidet. Beispiel: Strommasten stützen 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-viele".

  • Vorwärts- und Rückwärts-Pfadbeschriftungen beschreiben die Beziehung, wenn man von einem Objekt zu 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 aus dem Kontextmenü einer Geodatabase den Befehl Neu > Beziehungsklasse aus.

Syntax

arcpy.management.CreateRelationshipClass(origin_table, destination_table, out_relationship_class, relationship_type, forward_label, backward_label, message_direction, cardinality, attributed, origin_primary_key, origin_foreign_key, {destination_primary_key}, {destination_foreign_key})
ParameterErklärungDatentyp
origin_table

Die Tabelle oder Feature-Class, die der Zieltabelle zugeordnet wird.

Table View
destination_table

Die Tabelle, die der Quelltabelle zugewiesen wird.

Table View
out_relationship_class

Die erstellte Beziehungsklasse.

Relationship Class
relationship_type

Der zwischen Quell- und Zieltabelle zu erstellende Beziehungstyp.

  • SIMPLE —Eine Beziehung zwischen unabhängigen Objekten (Parent-zu-Parent). Dies ist die Standardeinstellung.
  • COMPOSITE —Eine Beziehung zwischen abhängigen Objekten, bei der die Lebensdauer eines Objekts über die Lebensdauer des in Beziehung stehenden Objekts entscheidet (Parent-zu-Child).
String
forward_label

Ein Name, der die Beziehung beim Navigieren von der Quelltabelle zur Zieltabelle eindeutig kennzeichnet.

String
backward_label

Ein Name, der die Beziehung beim Navigieren von der Zieltabelle zur Quelltabelle eindeutig kennzeichnet.

String
message_direction

Die Richtung, in die Meldungen zwischen Quell- und Zieltabelle weitergeleitet 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.

  • FORWARD —Meldungen werden von der Quell- zur Zieltabelle weitergeleitet.
  • BACKWARD —Meldungen werden von der Ziel- zur Quelltabelle weitergeleitet.
  • BOTH —Meldungen werden in beide Richtungen, von der Quell- zur Zieltabelle und von der Ziel- zur Quelltabelle, weitergeleitet.
  • NONE —Es werden keine Meldungen weitergeleitet. Dies ist die Standardeinstellung.
String
cardinality

Legt fest, wie viele Beziehungen zwischen Zeilen oder Features in der Quelltabelle und Zeilen und Features in der Zieltabelle bestehen.

  • ONE_TO_ONE —Jede Zeile bzw. jedes Feature in der Quelltabelle kann mit 0 oder einer Zeile bzw. einem Feature in der Zieltabelle in Beziehung gesetzt werden. Dies ist die Standardeinstellung.
  • ONE_TO_MANY —Jede Zeile bzw. jedes Feature in der Quelltabelle kann mit einer oder mehreren Zeilen bzw. einem oder mehreren Features in der Zieltabelle in Beziehung gesetzt werden.
  • MANY_TO_MANY —Mehrere Zeilen bzw. Features in der Quelltabelle können mit einer oder mehreren Zeilen bzw. einem oder mehreren Features in der Zieltabelle in Beziehung gesetzt werden.
String
attributed

Bestimmt, ob die Beziehung über Attribute verfügt.

  • NONE —Gibt an, dass die Beziehungsklasse nicht über Attribute verfügt. Dies ist die Standardeinstellung.
  • ATTRIBUTED —Gibt an, dass die Beziehungsklasse über Attribute verfügt.
Boolean
origin_primary_key

Das Feld in der Quelltabelle, in der Regel das Feld "OID", das die Tabelle mit dem Feld "Quell-Fremdschlüssel" der Beziehungsklassentabelle verbindet.

String
origin_foreign_key

Das Feld in der Beziehungsklassentabelle, das die Tabelle mit dem Feld "Quell-Primärschlüssel" der Quelltabelle verbindet.

String
destination_primary_key
(optional)

Das Feld in der Zieltabelle, in der Regel das Feld "OID", das die Tabelle mit dem Feld "Ziel-Fremdschlüssel" der Beziehungsklassentabelle verbindet.

String
destination_foreign_key
(optional)

Das Feld in der Beziehungsklassentabelle, das die Tabelle mit dem Feld "Ziel-Primärschlüssel" der Zieltabelle verbindet.

String

Codebeispiel

CreateRelationshipClass – Beispiel (Python-Fenster)

Das folgende Python-Fenster-Skript veranschaulicht die Verwendung des Werkzeugs CreateRelationshipClass.

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.CreateRelationshipClass_management("vegtype", "vegtable", "veg_RelClass", "SIMPLE",
                                         "Attributes from vegtable", "Attributes and Features from vegtype",
                                         "NONE", "ONE_TO_ONE", "NONE", "HOLLAND95", "HOLLAND95")
CreateRelationshipClass – Beispiel 1 (eigenständiges Skript)

Es wird eine Beziehungsklasse zwischen einer Vegetation-Feature-Class und einer Tabelle mit zusätzlichen Vegetationsinformationen erstellt.

# Name: CreateRelationshipClass.py
# Description: Create a relationship class between vegetation feature
#              class and table with additional vegetation information
# Author: ESRI

# Import system modules 
import arcpy
from arcpy import env

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

# Copy vegtable.dbf to file gdb table, since both tables to be related
# must be in the same database
vegDbf = "vegtable.dbf"
vegTbl = "Habitat_Analysis.gdb/vegtable"
arcpy.CopyRows_management(vegDbf, vegTbl)

# Create simple relationship class between 'vegtype' vegetation layer
# and 'vegtable' table with additional vegetation information
veg = "Habitat_Analysis.gdb/vegtype"
relClass = "Habitat_Analysis.gdb/veg_RelClass"
forLabel = "Attributes from vegtable"
backLabel = "Attributes and Features from vegtype"
primaryKey = "HOLLAND95"
foreignKey = "HOLLAND95"
arcpy.CreateRelationshipClass_management(veg,
                                         vegTbl,
                                         relClass,
                                         "SIMPLE",
                                         forLabel,
                                         backLabel,
                                         "NONE",
                                         "ONE_TO_ONE",
                                         "NONE",
                                         primaryKey,
                                         foreignKey)
CreateRelationshipClass – Beispiel 2 (eigenständiges Skript)

Es wird eine Beziehungsklasse zwischen einer Parcel-Feature-Class und einer Tabelle mit Besitzerinformationen erstellt.

# Name: CreateRelationshipClass.py
# Description: Create a 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 simple 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"
primaryKey = "PROPERTY_ID"
foreignKey = "PROPERTY_ID"
arcpy.CreateRelationshipClass_management(ownerTbl,
                                         parcel,
                                         relClass,
                                         "SIMPLE",
                                         forLabel,
                                         backLabel,
                                         "BACKWARD",
                                         "ONE_TO_MANY",
                                         "NONE",
                                         primaryKey,
                                         foreignKey)

Umgebungen

  • Auto-Commit
  • Aktueller Workspace

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen

  • Überblick über das Toolset "Beziehungsklassen"
  • RelationshipClass properties

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches