====== Verknüpfung zweier (Attribut-)Tabellen (SpatialJoin) ======
Zum ausprobieren: {{:qgis:basic:dataset:uebung_spatialjoin.zip|Übung SpatialJoin (GeoPackage)}}
[{{ :qgis:basic:images:spatial_join_verknuepfung_qgis318.png?direct&300|**Abb. 1:** Vektorverknüpfung hinzufügen (QGIS 3.18)}}]
Da wir es bei Geodaten auch immer mit **Tabellen** zu tun haben, liegt es nahe, diese miteinander in **Verbindung** zu bringen. QGIS ermöglicht **Verbindungen zwischen Tabellen mit und ohne Geometrien**. So können zum Beispiel die Informationen einer (geometrielosen) csv-Tabelle((auch Exceltabellen oder OpenOffice/LibreOffice-Tabellen sind möglich!)) über ein eindeutiges **Schlüsselfeld (Primärschlüssel)** mit der **Attributtabelle** eines Vektorlayers verbunden und damit die Geometrien (Features) mit den Informationen aus der Tabelle angereichert werden.
Mit der hier beschriebenen Funktion der "Verknüpfungen" lässt sich zwar ein //datenbankähnlicher// Zustand erreichen da man beliebig viele Verknüpfungen erzeugen kann aber es sind lediglich nur **1zu1 Beziehungen** möglich. Möchte man **1:n** oder **n:n**-Beziehungen erzeugen, so funktioniert das über "Beziehungen" in den Projekteigenschaften: ''Projekt -> Eigenschaften -> Beziehungen''
===== Und so geht's...=====
Man öffnet die ''Layereigenschaften'' des Layers, welcher angereichert werden soll((im Beispiel wäre das der Bundeslandlayer)) und wählt ''Verknüpfungen''.
Zum Hinzufügen einer neuen Verbindung klicken Sie auf das ''Plus-Symbol''. Es öffnet sich das Fenster ''Vektorverknüpfung hinzufügen'' (Abb. 1). Wählen Sie die zu verknüpfende (Attribut-)Tabelle und das entsprechende **Verknüpfungsfeld** und das **Zielfeld**, welches beide Layer **gemeinsam haben müssen** (**Primärschlüssel**).
Es können **beliebig viele Verbindungen** zwischen Attributtabellen und geometrielosen Tabellen (csv, dbf, odb, xls, xlsx etc.) aber auch zwischen **Attributlayer <-> Attributlayer** oder **Tabelle <-> Tabelle** eingehen.
{{ :qgis:basic:images:spatial_join_primarykey_qgis318.png |}}
==== Die Bedeutung der Parameter ====
Es stehen über das Verknüpfungsfenster viele nützliche Optionen zur Verfügung, deren Bedeutung im Folgenden erläutert werden sollen:
^ Parameter ^ Bedeutung ^
^ Verknüpfung im Speicher cachen | Werte werden im Zwischenspeicher des PCs abgelegt und sind damit schneller verfügbar |
^ Attributindex auf Verknüpfungsfeld erzeugen | Schnelleres Finden von Tabellenzeilen dank Index(("Ein Index ist eine von der Datenstruktur getrennte Indexstruktur in einer Datenbank, die die Suche und das Sortieren nach bestimmten Feldern beschleunigt" [[wpde>Datenbankindex]])) |
^ Dynamische Form | Werte werden bei Änderung des verknüpften Layer automatisch neu geladen |
^ Änderbarer verknüpfter Layer | Die Werte der Ursprungs-Tabelle oder -Layer kann im Verknüfungslayer geändert werden, sofern sich dieser im Bearbeitungsmodus befindet(( ggf. muss ein anderes Tabellenformat gewählt werden, da sich nicht alle Tabellenformate von QGIS editieren lassen )) |
^ Einfügen/Aktualisieren bei Änderung | Fügt automatische eine passende Zeile zur verknüpften Tabelle hinzu, falls diese nicht existiert |
^ Kaskadierendes Löschen | Verknüpfte Zeilen werden in Tabelle UND Layer gelöscht **(Achtung!)** |
^ Verknüpfte Felder | Wählen Sie die Felder, die verknüpft werden sollen |
^ Benutzerfeldnamenpräfix | Verknüpfte Felder erhalten den hier angebenden Präfix |
**Verknüpfte Felder** können **nicht** über den Ausgangslayer **verändert/bearbeitet** werden, wenn dieser sich nicht im Bearbeitungsmodus befindet!
----
~~DISCUSSION|Fragen, Hinweise und Fehler kommen hier hin:~~