Aktualisiert am 7. Februar 2022
Der Unterschied zwischen relates (oft als table relates bezeichnet) und relationship classes ist eine Quelle großer Verwirrung, insbesondere für neue ArcGIS-Benutzer. Obwohl sie ähnlich klingen, beziehen sich die Begriffe auf unterschiedliche Dinge. Beide haben Vorteile und es gibt Gründe, jeweils das eine oder andere zu verwenden. Hier sind die wichtigsten Dinge, die man wissen sollte.
- Ein relate existiert in einer Karte oder Layer-Datei.
- Eine relationship class ist ein Objekt in einer Geodatabase.
- Relates können mit einer ArcGIS Pro- oder ArcGIS Desktop-Basic, Standard oder Advanced-Lizenz erstellt und bearbeitet werden.
- Relationship classes können mit einer ArcGIS Pro- oder ArcGIS Desktop-Standard- oder Advanced-Lizenz erstellt und bearbeitet werden. Mit einer Basic-Lizenz sind sie nur lesbar.
Alles klar jetzt? Nein? Dann machen wir weiter.
Die Terminologie aufschlüsseln
Relates sind großartig, weil sie es ermöglichen, Features in einem Layer auszuwählen und dann einfach verwandte Features in einem anderen Layer oder verwandte Datensätze in einer nicht-räumlichen Tabelle zu sehen. Relationship classes sind großartig, weil sie "intelligentes Verhalten" ermöglichen. Sie können Regeln dafür festlegen, wie sich die beteiligten Feature-Classes oder Tabellen verhalten, wenn etwas passiert. Zum Beispiel kann bei Vorhandensein einer relationship class beim Löschen eines Features auch der zugehörige Datensatz in der anderen Feature-Class oder Tabelle automatisch gelöscht werden.
Sowohl relates als auch relationship classes basieren auf cardinality, die beschreibt, wie Datensätze in zwei verschiedenen Tabellen miteinander verbunden sind – Cardinality kann eins-zu-eins, eins-zu-viele, viele-zu-eins oder viele-zu-viele sein.
- Eins-zu-eins: Jedes Feature hat genau einen zugehörigen Datensatz in der anderen Tabelle.
- Eins-zu-viele: Features in einer Tabelle können mehr als einen zugehörigen Datensatz in der anderen Tabelle haben.
- Viele-zu-eins: Mehrere Features in einer Tabelle haben einen zugehörigen Datensatz in der anderen Tabelle.
- Viele-zu-viele: Mehrere Features in einer Tabelle haben mehrere Datensätze in der anderen Tabelle.
Relates unterstützen eins-zu-viele und viele-zu-eins Cardinalities, während relationship classes alle Cardinalities unterstützen. Feature-Classes und Tabellen, die an einem relate oder einer relationship class teilnehmen, müssen ein Feld desselben Datentyps (Text, Short Integer, Long Integer, Object ID usw.) besitzen. Dieses Feld ist der "Verbindungspunkt" (auch Schlüssel-Feld genannt) zwischen den beiden.
Das Relate-Beispiel
Die untenstehende Karte enthält einen Layer mit Feuerwachen und eine nicht-räumliche Tabelle, die Daten über das Personal der städtischen Feuerwehr speichert. Ein relate wurde zwischen dem Layer und der nicht-räumlichen Tabelle erstellt, welche eine eins-zu-viele Cardinality haben (jede Feuerwache hat mehrere Mitarbeiter). Das relate basiert auf einem Short Integer-Feld in beiden Tabellen, das eine Feuerwachen-ID speichert. Die Felder haben unterschiedliche Namen, aber das spielt keine Rolle.

Dank des relates ist es einfach herauszufinden, welches Personal welcher Feuerwache zugeordnet ist. Verwenden Sie einfach das Identify-Werkzeug und klicken Sie auf eine Feuerwache auf der Karte. Im Identify-Fenster wird unter dem Namen des Feuerwachen-Features der Name der zugehörigen Tabelle angezeigt. Durch Erweitern der Tabelle werden die mit dieser Wache verbundenen Datensätze angezeigt (im Beispiel die Washington-Wache mit sechs zugeordneten Mitarbeitern).

Nehmen wir an, Brian Butler wird zur Adams-Wache versetzt. Sein Datensatz in der FirePersonnel-Tabelle wird bearbeitet, um die Washington-Wachenummer (2) durch die Adams-Wachenummer (202) zu ersetzen. Wenn die Bearbeitung gespeichert wird, spiegelt das Identify-Fenster seine neue Zuordnung wider. Washington hat nun nur noch fünf zugeordnete Mitarbeiter...

...während die Personal-Liste der Adams-Wache nun Brian einschließt.

Das Relationship Class-Beispiel
Tabelle relates sind super nützlich, um Feature-Daten schnell anzusehen, die in separaten Tabellen gespeichert sind (für effizientes Datenmanagement). Relationship classes geben Ihnen jedoch die Möglichkeit, mehr als nur Daten einfach anzusehen. Mit einer relationship class können Sie Regeln und Eigenschaften festlegen, die steuern, was passiert, wenn Daten in einer der beiden Tabellen bearbeitet werden. Sie können auch sicherstellen, dass nur gültige Bearbeitungen vorgenommen werden.
Anhand des obigen Beispiels nehmen wir an, es wurde eine relationship class namens StationsPersonnel zwischen der Feature-Class Fire Stations und der Fire Personnel-Tabelle erstellt. Außerdem verlangt die Stadt, dass alle Wachen mindestens fünf und höchstens 15 zugeordnete Feuerwehrleute haben. Eine Regel wurde in der relationship class erstellt, um diese Anforderung durchzusetzen.

Mit Brian Butlers Versetzung zur Adams-Wache bleiben für Washington fünf zugeordnete Feuerwehrleute übrig. Jean Fiorini hat jedoch eine Versetzung beantragt und ihr Antrag wurde genehmigt. Ein GIS-Techniker, der für die Pflege der GIS-Daten der Feuerwehr verantwortlich ist, aktualisiert Jeans Datensatz in der Personaltabelle mit der neuen Wachenummer. Sie erhält eine Meldung mit dem Hinweis, dass die Bearbeitung gegen eine Regel verstößt.
- Hinweis: Je nach verwendeter ArcGIS-Version und Konfiguration der relationship class können Bearbeitungen, die gegen eine Regel verstoßen, möglicherweise nicht akzeptiert werden.
Datenbank weiß ohne Jean hätte Washington weniger als fünf zugeordnete Mitarbeiter. Um die Regel einzuhalten, sollte der Techniker zuerst einen Feuerwehrmann zur Washington-Wache hinzufügen und dann Jeans Datensatz bearbeiten, um ihre neue Wachen-Zuordnung widerzuspiegeln.
Eine relationship class soll sicherstellen, dass alle Datenbearbeitungen gültig sind und dass die GIS-Datenbank einer Organisation realweltliche Anforderungen genau widerspiegelt und unterstützt. Angenommen, die Person, die Jeans Versetzung genehmigt hat, wusste nicht, dass Washington danach nur noch vier Feuerwehrleute hätte. Die Regel aus der relationship class hat diese wichtige Information aufgezeigt; wir gehen davon aus, dass der GIS-Techniker das Problem kommuniziert, um späteren Verlust von Eigentum oder Leben aufgrund unzureichender Personalstärke zu verhindern.
Möchten Sie mehr über relates und relationship classes erfahren? Sehen Sie sich diese Hilfethemen an:
Für detailliertes Training und praktische Übungen mit relates, relationship classes und anderen Geodatabase-Funktionen zur Sicherstellung von Datenintegrität besuchen Sie unseren Managing Geospatial Data in ArcGIS-Kurs.