Grundlagen des Verbindens von Tabellen
Durch das Verbinden von Daten werden in der Regel Felder einer Tabelle an die einer anderen über ein Attribut oder Feld angehängt, das in beiden Tabellen enthalten ist. Sie können auswählen, ob die Beziehung auf Attributen oder der Beziehungsklasse einer vordefinierten Geodatabase oder der Position (auch als "räumliche Verbindung" bezeichnet) beruhen soll. In der Liste werden Verbindungen nach Beziehungsklasse nur angezeigt, wenn Geodatabase-Daten verbunden werden, für die in der Geodatabase bereits eine Beziehungsklasse definiert wurde.
Mehrere Tabellen oder Layer können mit einer einzelnen Tabelle oder einem einzelnen Layer verbunden werden und Verbindungen nach Beziehungsklasse können mit Attributverbindungen kombiniert werden. Wenn eine Join-Tabelle entfernt wird, werden auch alle Daten aus später verbundenen Tabellen entfernt, während Daten aus vorher bereits verbundenen Tabellen beibehalten werden. Symbologien oder Beschriftungen, die auf einer angehängten Spalte basieren, werden in den Standardzustand zurückgesetzt, wenn die Verbindung entfernt wird.
In den meisten Fällen haben angehängte Spalten Namen der Form "<Tabellenname>.<Feldname>". Diese Namenskonvention trägt zur Vermeidung doppelter Feldnamen bei, wenn die Zieltabelle und eine Join-Tabelle gemeinsame Feldnamen aufweisen. Wenn keine vollständigen Feldnamen angezeigt werden sollen, klicken Sie im Tabellenfenster auf die Schaltfläche Tabellenoptionen und auf Feld-Aliasnamen anzeigen, um diese Option zu aktivieren oder zu deaktivieren. Wenn diese Option aktiviert ist, wird ein Häkchen daneben im Menü Optionen angezeigt, und den Feldern wird der Tabellenname nicht vorangestellt.
Bei der folgenden Tabelle handelt es sich um eine verbundene Tabelle, deren Feldnamen der Tabellenname als Präfix vorangestellt ist:
Bei der folgenden Tabelle handelt es sich um eine verbundene Tabelle, bei der nur die Feld-Aliasnamen angezeigt werden:
Weitere Informationen zum Verbinden von Tabellen und Erstellen von Beziehungen zwischen Tabellen
Zusammenfassen von Daten vor der Verbindung
Je nachdem, wie die Daten organisiert sind, sollten Sie vor der Verbindung mit einem Layer die Daten der Tabelle zusammenfassen. Beim Zusammenfassen einer Tabelle erstellt ArcMap eine neue Tabelle, die die Summenstatistiken aus der Ursprungstabelle enthält. Sie können verschiedene Summenstatistiken erstellen, u. a. Anzahl, Durchschnitt, Summe, Minimum und Maximum.
Beispiel: Nehmen wir an, Sie möchten Wetterkarten nach Bundesland statt nach Kreis erstellen, die Wetterdaten sind aber nach Kreis geordnet. Sie können die Kreisdaten nach Ländern zusammenfassen – z. B. um den durchschnittlichen Niederschlag an Regen für alle Kreise eines Bundeslandes zu finden – und dann die neu erstellte Ausgabe-Tabelle mit einem Bundesland-Layer verbinden, um eine Wetterkarte des Regenniederschlages nach Bundesland zu erstellen.
Bearbeiten und Verbinden von Tabellen
Bei der Bearbeitung verbundener Daten können Sie die verbundenen Spalten nicht direkt bearbeiten. Um die verbundenen Daten zu bearbeiten, müssen Sie zuerst die verbundenen Tabellen oder Layer in ArcMap einfügen. Sie können dann die Änderungen an diesen Daten einzeln durchführen. Diese Änderungen zeigen sich in den verbundenen Spalten.
Verbindungsvalidierung
Sie können eine Verbindung vor der Erstellung analysieren, indem Sie im Dialogfeld Daten verbinden die Schaltfläche Verbindung überprüfen verwenden. Bei der Verbindungsvalidierung können Sie die potenziellen Probleme einschätzen, die beim Erstellen einer Verbindung auftreten können. Während der Verbindungsvalidierung werden die beiden beteiligten Datasets analysiert, um zu ermitteln, ob allgemeine Probleme mit den Daten vorliegen. Nachfolgend wird aufgelistet, was in den Daten überprüft wird:
- Feldnamen, die mit einem ungültigen Zeichen beginnen
- Feldnamen, die ein ungültiges Zeichen enthalten
- Feldnamen, die mit reservierten Wörtern übereinstimmen
- MS Access-Tabellen, die keine Geodatabase darstellen
Jedes dieser vier Probleme kann dazu führen, dass Join-Felder in der Attributtabelle Nullwerte anzeigen oder dass irreführende Auswahl- und Datensatzanzahlen angezeigt werden. Bei der Verbindungsvalidierung sind die Zeichensymbole Nummernzeichen (#), Dollarzeichen ($) und der Bindestrich (-) ausgenommen, wenn beim Analysieren von Coverage-Daten auf ungültige Zeichen geprüft wird, und der Punkt (.) ist ausgenommen, wenn mit der ArcSDE-Software in Verbindung stehende Daten auf ungültige Zeichen geprüft werden. Sie erhalten jedoch eine Warnung, wenn ein Feldname mit einem dieser Zeichen beginnt.
Bei der Verbindungsvalidierung wird auf folgende Zeichen geprüft:
Ungültige Startzeichen: `~@#$%^&*()-+=|\\,<>?/{}.!'[]:;_0123456789
Ungültige enthaltene Zeichen: `~@#$%^&*()-+=|\\,<>?/{}.!'[]:;
Nach der Verbindungsvalidierung wird der Benutzer auch darüber informiert, wie viele Datensätze einander zugeordnet werden können, wenn die Verbindung erstellt wird. Sie können berechnen, welcher Prozentsatz von Datensätzen einander zugeordnet werden kann, und dann bestimmen, ob die Daten möglicherweise andere Fehler enthalten, wenn die Anzahl passender Datensätze nicht der erwarteten Anzahl entspricht. Dies kann der Fall sein, wenn eine Verbindung mithilfe von Textfeldern erstellt wird und ein erwartungsgemäß übereinstimmender Datensatz einen Rechtschreibfehler oder einen Eintrag mit anderer Groß-/Kleinschreibung enthält, der bewirkt, dass keine Übereinstimmung gefunden wird. Wenn die von der Verbindungsvalidierung ermittelte Anzahl zueinander passender Datensätze die Anzahl der Datensätze im Quellen-Dataset übersteigt, wird eine Warnung angezeigt, dass eine 1:M- oder M:M-Beziehung zwischen den beteiligten Daten besteht und dass der Benutzer diese Datasets nicht über eine Verbindung verknüpfen, sondern eine Beziehung oder eine Beziehungsklasse verwenden sollte.
Tipps zum Verbessern der Performance beim Verbinden von Daten
Mit Daten aus angehängten Feldern können Features symbolisiert und beschriftet sowie Abfragen und viele weitere Vorgänge durchgeführt werden. Der Zugriff auf die verbundenen Daten erfolgt langsamer als der Zugriff auf die Daten in der Zieltabelle, da für das Verwalten der Verbindung zusätzlicher Aufwand erforderlich ist.
Es empfiehlt sich, die folgenden Tipps beim Arbeiten mit verbundenen Daten zu berücksichtigen, um die Leistung zu verbessern:
- Sie können eine Verbindung herstellen, indem Sie in ArcMap durch Klicken mit der rechten Maustaste auf einen Layer das Dialogfeld Daten verbinden aufrufen oder eine Gruppe von Geoverarbeitungswerkzeugen verwenden. Mit den Geoverarbeitungswerkzeugen zum Verbinden erzielen Sie optimale Ergebnisse bei großen Datasets. Sie können diese Werkzeuge auch in Geoverarbeitungsmodellen und -skripten einsetzen, um sich wiederholende oder komplexe Schritte im Zusammenhang mit Verbindungen zu automatisieren. Bei diesen Werkzeugen verläuft die tatsächliche Verarbeitung der Verbindungen etwas anders als beim Dialogfeld Daten verbinden. Daher sollten diese Werkzeuge verwendet werden, wenn unerwartete Probleme mit der Verbindungsfunktion in diesem Dialogfeld auftreten. Die Geoverarbeitungswerkzeuge sind die Werkzeuge "Räumliche Verbindung", "Verbindung hinzufügen" und "Verbindung entfernen".
-
Erstellen Sie Attributindizes für die Join-Felder. Wenn die Verbindungen nur Shapefiles, dBASE-Dateien, Coverages oder INFO-Dateien umfassen, wirkt sich die Indizierung beim Zeichnen oder beim Arbeiten im Tabellenfenster nicht positiv auf die Performance aus. Allerdings verbessert sich die Performance beim Bearbeiten. In allen anderen Fällen verbessert sich die Gesamt-Performance durch Attributindizes.
- Wählen Sie beim Verbinden von Daten der gleichen Geodatabase die Option Nur passende Datensätze beibehalten. In bestimmten Fällen werden dadurch verschiedene Ergebnisse produziert, aber die Verbindung kann in der Datenbank verarbeitet werden. Dies beschleunigt in der Regel Vorgänge, bei denen auf Daten in verbundenen Spalten zugegriffen werden muss (Symbolisierung, Beschriftung usw.).
Mit der Standardoption Alle Datensätze beibehalten erfolgt die Verarbeitung stets auf dem Client. Bei Vorgängen, bei denen nicht auf Daten in verbundenen Spalten zugegriffen werden muss (z. B. Zeichnen mit Standardsymbolisierung) ist die Performance in der Regel gut. Jedoch können sich Vorgänge beträchtlich verlangsamen, wenn auf verbundene Daten zugegriffen werden muss.
- Datenbankübergreifende Verbindungen, bei denen die Zieltabelle und die Join-Tabelle aus verschiedenen Datenquellen stammen, können eine schlechtere Performance aufweisen. Dies gilt insbesondere, wenn die Join-Tabelle aus einer Geodatabase oder einer OLE-DB-Verbindung stammt. Eine wesentlich bessere Performance lässt sich erzielen, wenn die Join-Tabelle aus einer dateibasierten Datenquelle stammt (z. B. Shapefiles, dBASE-Dateien und Coverages) und die Zieltabelle ein ObjectID-Feld (wie bei den meisten Datenquellen) enthält.
- Das Verbinden mehrerer Tabellen oder Layer zu einem einzigen Layer kann zu deutlichen Performance-Einbußen führen. Wenn alle Daten von demselben ArcSDE-Server stammen und beim Verbinden die Option Nur passende Datensätze beibehalten aktiviert wurde, sollte sich dies nur geringfügig auf die Performance auswirken.
Gründe für ein mögliches Fehlschlagen beim Verbinden von Tabellen
Nach dem Herstellen einer Verbindung kann es vorkommen, dass in den Feldern der verbundenen Tabelle keine Werte oder Nullwerte angezeigt werden. Für Nullwerte können mehrere Faktoren verantwortlich sein:
- Die Werte in den für die Verbindung angegebenen Feldern stimmen nicht überein.
Bei Verbindungen wird zwischen Groß- und Kleinschreibung unterschieden. Dies ist zu berücksichtigen, wenn Felder für Zeichenfolgen zum Herstellen der Verbindung verwendet werden. So wird beispielsweise "NEW YORK" nicht mit "New York" verbunden. Informationen zum Konvertieren von Zeichenfolgen in die Groß- bzw. Kleinschreibung finden Sie unter Durchführen von Feldberechnungen.
- Der Name der Tabelle oder Feature-Class oder Feldnamen in der Tabelle oder Feature-Class enthalten Leerzeichen oder Sonderzeichen.
Zu Sonderzeichen gehören Bindestriche, wie in "X-Koordinate" und "Y-Koordinate", runde und eckige Klammern sowie Symbole wie "$", "%" und "#". Entfernen Sie generell alle Zeichen, bei denen es sich nicht um alphanumerische Zeichen oder einen Unterstrich handelt. Vermeiden Sie es jedoch, eine Zahl oder einen Unterstrich an den Anfang von Feldnamen zu setzen. Bearbeiten Sie die Feldnamen in mit Zeichen getrennten Textdateien oder anderen Tabellen, um nicht unterstützte Zeichen zu entfernen, bevor Sie versuchen, die Dateien in ArcGIS zu verwenden. Namen für Geodatabase-Feature-Classes, Tabellen und Feldnamen können maximal 64 Zeichen umfassen. (Tatsächlich können Sie nur bis zu 52 Zeichen für einen Namen einer Personal-Geodatabase-Feature-Class eingeben, da das System Zeichen anhängt, sodass in der Summe 64 erreicht wird.) Feldnamen für Shapefiles und DBF-Dateien können bis zu 10 Zeichen umfassen. Verwenden Sie für INFO-Tabellen bis zu 16 Buchstaben oder Zahlen. Weitere Informationen zu Richtlinien für Feldnamen finden Sie unter Hinzufügen und Löschen von Feldern.
- Bei den Feldnamen in der Tabelle handelt es sich um Wörter, die für Microsoft Access reserviert sind.
Beispiele dazu umfassen "date", "day", "month", "table", "text", "user", "when", "where", "year" und "zone". Eine Liste der reservierten Wörter finden Sie im Supportartikel von Microsoft (KB 286335).
- Die Tabelle ist in einer Microsoft Access-Datenbank gespeichert, bei der es sich nicht um eine Personal-Geodatabase handelt.
Sie sollten auf Microsoft Access-Tabellen in ArcGIS über eine OLE-DB-Verbindung zugreifen, statt zu versuchen, die Datenbank direkt zu ArcMap hinzuzufügen. Weitere Informationen zum Hinzufügen einer OLE-DB-Verbindung finden Sie unter Arbeiten mit Microsoft Access-Dateien in ArcGIS.