Aktualisiert am 7. Februar 2022
Es scheint, als gäbe es immer Verwirrung um die Begriffe „relate“ und „relationship class“. In diesem Beitrag werden wir versuchen, das zu klären. Die Beispiel-Screenshots stammen aus ArcMap, aber die Konzepte gelten auch für ArcGIS Pro.
Die Grundlagen
- Ein relate (auch als table relate bezeichnet) ist eine Eigenschaft einer Ebene in ArcGIS Pro oder ArcMap. Sie erstellen ein table relate, damit Sie Features in einer Ebene abfragen und auswählen können und alle zugehörigen Features in einer anderen Ebene oder Tabelle sehen können. Ein table relate existiert nur in einer Karte oder Layer-Datei (.lyr).

- Eine relationship class ist ein Objekt in einer Geodatabase, das Informationen über eine Beziehung zwischen zwei Feature-Classes, zwischen einer Feature-Class und einer nicht-räumlichen Tabelle oder zwischen zwei nicht-räumlichen Tabellen speichert. Beide Teilnehmer einer relationship class müssen in derselben Geodatabase gespeichert sein.
- Die Kardinalität steuert, wie relates und relationship classes eingerichtet werden. Kardinalität ist kein Maß für die Begeisterung eines St. Louis Baseball-Fans, sondern eine Beschreibung, wie Datensätze in zwei verschiedenen Tabellen miteinander verbunden sind. Kardinalität kann eins-zu-eins, eins-zu-viele, viele-zu-eins oder viele-zu-viele sein.
- Table relates werden zwischen Tabellen erstellt, die eine eins-zu-viele- oder viele-zu-eins-Kardinalität haben. Relationship classes unterstützen alle Kardinalitäten.
- Wenn Sie ein table relate oder eine relationship class erstellen, geben Sie das Feld in jeder Tabelle an, auf dem die Beziehung basiert. Die Felder müssen denselben Datentyp haben (z.B. Text, Short Integer, Long Integer, Object ID usw.).
- Relates können mit einer Basic, Standard oder Advanced-Lizenz erstellt und bearbeitet werden.
- Relationship classes können mit einer Standard- oder Advanced-Lizenz erstellt und bearbeitet werden. Mit einer Basic-Lizenz sind sie schreibgeschützt.
Alles klar jetzt? Nein? OK, dann tauchen wir tiefer ein.
Das Beispiel

Im Inhaltsverzeichnis der obigen Karte sehen Sie eine Ebene der städtischen Feuerwachen und eine nicht-räumliche Tabelle, die Daten über das Personal der Feuerwehr der Stadt speichert. Zwischen der Ebene und der nicht-räumlichen Tabelle wurde ein table relate basierend auf einem Short Integer-Feld in jeder Tabelle erstellt, das eine Feuerwachen-ID-Nummer speichert.
Was passiert, wenn eine Wache auf der Karte ausgewählt wird?
Unten sehen Sie die Attributtabelle für die Feuerwachen-Ebene und die Feuerwehr-Personal-Tabelle. Die Option, nur ausgewählte Features anzuzeigen, wird für beide Tabellen verwendet. Beachten Sie, dass zwar nur ein Feuerwachen-Datensatz ausgewählt ist (die Washington-Wache), aber sechs Datensätze in der Feuerwehr-Personal-Tabelle ausgewählt sind.

Dies zeigt Ihnen, dass die Fire Stations-Ebene eine eins-zu-viele-Kardinalität mit der Feuerwehr-Personal-Tabelle hat. Für jede Feuerwache sind mehrere Feuerwehrleute zugeordnet. In diesem Fall sind sechs Feuerwehrleute der Washington-Wache zugewiesen. Da die Tabellen verbunden sind, können Sie beim Auswählen einer Wache leicht herausfinden, wer an dieser Wache arbeitet. Table relates sind bidirektional, was bedeutet, dass Sie auch einen Datensatz in der Feuerwehr-Personal-Tabelle auswählen und den Namen der Wache abrufen können, der der Feuerwehrmann zugeordnet ist.
Sie müssen nicht einmal ein Feature auswählen oder die Tabellen öffnen; Sie können die Informationen schnell mit dem Identify-Werkzeug anzeigen lassen. Der Name der zugehörigen Tabelle wird unter dem Feature-Namen auf der linken Seite des Identify-Fensters angezeigt. Das Erweitern der zugehörigen Tabelle zeigt die zugehörigen Datensätze an. Durch Klicken auf einen zugehörigen Datensatz werden die in der zugehörigen Tabelle gespeicherten Daten angezeigt.

Angenommen, Brian Butler wird zur Adams-Wache versetzt. Sie werden die FirePersonnel-Tabelle bearbeiten, um dies widerzuspiegeln. Hier sind die Schritte zur Durchführung anhand unseres Beispiels.
- Starten Sie eine Bearbeitungssitzung.
- Wählen Sie im Fire Personnel-Tabelle den Datensatz von Brian Butler aus.
- Ändern Sie im Number_-Feld den Wert auf 1714 (die ID-Nummer für die Adams-Wache).
- Schließen Sie die Tabelle und speichern Sie Ihre Änderungen.
- Klicken Sie mit dem Identify-Werkzeug auf die Adams-Wache.
- Brian Butler erscheint nun in der Liste des Personals, das mit der Adams-Wache verbunden ist.

- Klicken Sie mit dem Identify-Werkzeug auf die Washington-Wache.
- Brians Butlers Datensatz wird nicht mehr angezeigt.

Warum eine Relationship Class verwenden?
Table relates sind nützlich, um schnell auf Informationen über die reale Welt zuzugreifen und diese anzusehen, die tatsächlich in zwei verschiedenen Tabellen gespeichert sind. Relationship classes bieten jedoch leistungsfähigere Funktionen.
Neben dem Auswählen von Datensätzen in einer Tabelle und dem Anzeigen verwandter Datensätze in der anderen können Sie mit einer relationship class Regeln und Eigenschaften festlegen, die steuern, was passiert, wenn Daten in einer der beiden Tabellen bearbeitet werden, sowie sicherstellen, dass nur gültige Änderungen vorgenommen werden. Sie können eine relationship class so einrichten, dass das Bearbeiten eines Datensatzes in einer Tabelle automatisch verwandte Datensätze in der anderen Tabelle aktualisiert.
Anhand des obigen Beispiels nehmen wir an, es wird eine relationship class zwischen der Fire Stations-Ebene und der Feuerwehr-Personal-Tabelle erstellt. Die Stadt hat die Anforderung, dass alle Wachen mindestens fünf und maximal 15 Feuerwehrleute haben müssen. Für die relationship class wurde eine Regel erstellt, die diese Anforderung widerspiegelt.
Am Ende des table relate-Beispiels hatte die Washington-Wache fünf zugewiesene Feuerwehrleute. Nun gilt mit der relationship class: Wenn ein Mitarbeiter versucht, einem Feuerwehrmann an der Washington-Wache eine andere Wachen-Nummer zuzuweisen, wird eine Fehlermeldung angezeigt und er versteht, dass es eine Regel gibt, nach der alle Wachen mindestens fünf Feuerwehrleute haben müssen. Bevor er also die Wachen-Nummer eines bestehenden Feuerwehrmanns ändert, muss er einen neuen Feuerwehrmann an der Washington-Wache zuweisen. Danach kann er die Wachen-Nummer des bestehenden Feuerwehrmanns ändern, um den Wechsel widerzuspiegeln.
Die relationship class stellt sicher, dass Datenänderungen gültig sind und unterstützt das Ziel der Feuerwehrabteilung, dass Personalzuweisungen den Anforderungen der Stadt entsprechen.
Daran denken
- Table relates existieren nur in einer Karte oder Layer-Datei.
- Relationship classes existieren als eigenständige Objekte in einer Geodatabase. Wenn eine der beteiligten Tabellen aus der Geodatabase gelöscht wird, wird auch die relationship class gelöscht.
- Sowohl table relates als auch relationship classes ermöglichen Benutzern den Zugriff auf Informationen für verwandte Features aus beiden Tabellen.
- Relationship classes werden häufig verwendet, um Datenintegrität sicherzustellen. Sie machen Ihre Geodatabase intelligent.
Über relates und relationship classes könnte man noch viel mehr sagen; aber im Interesse der Einfachheit beenden wir den Beitrag hiermit. Hoffentlich wurde etwas von der Verwirrung beseitigt. Für weitere Informationen zu diesem Thema schauen Sie sich dieses Hilfethema an.