Datenbanksichten sind gespeicherte Abfragen, mit denen Daten aus Tabellen ausgewählt werden, die in der Definition der Sicht festgelegt wurden. Sichten können eine einzelne Tabelle, mehrere Tabellen und Unterabfragen umfassen.
Sichten sind in der Datenbank als Objekte vorhanden. Ihre Erstellung durch Benutzer erfordert spezielle Datenbankberechtigungen. In der Dokumentation zu Ihrem Datenbankmanagementsystem wird erläutert, was in Sichten des entsprechenden Datenbanktyps unterstützt wird.
Sie können eine Datenbanksicht mit dem Geoverarbeitungswerkzeug Datenbanksicht erstellen oder mit der Option Neu > Sicht im Kontextmenü der Datenbank erstellen. Sie haben auch die Möglichkeit, das native SQL des Datenbankmanagementsystems zu verwenden.
Hinweis:
Sichten werden nicht automatisch in der Geodatabase registriert, selbst wenn die Sicht in Geodatabase-Tabellen und Feature-Classes definiert ist oder wenn Sie zum Erstellen der Sicht das Geoverarbeitungswerkzeug Datenbanksicht erstellen verwenden. Damit die Sicht in der Geodatabase registriert wird, müssen Sie sie explizit registrieren.
Gründe für die Verwendung von Sichten
Einige Gründe für die Erstellung von Datenbanksichten in einer Geodatabase:
- Mit Sichten können Teilmengen von Zeilen oder Spalten in einem vordefinierten Format bereitgestellt werden. Dies reduziert die von der Datenbank zum Client übertragene Datenmenge, wodurch die Performance verbessert wird.
- Durch das Beschränken der in einer Sicht vorhandenen Spalten oder Zeilen können Sie zudem steuern, was für die Benutzer der Daten angezeigt wird. Beispielsweise müssen für Mitarbeiter, die sich mit der Bestandsbewertung und der Bestellung von Produkten befassen, nicht die Namen der Käufer von Produkten oder der Verkaufspreis angezeigt werden. Statt diesen Mitarbeitern Zugriff auf die gesamte Tabelle zu gewähren, in denen diese Informationen gespeichert sind, können Sie eine Sicht erstellen, die diese Spalten nicht enthält, und den Bestandsverwaltungsmitarbeitern die select-Berechtigung für die Sicht erteilen.
- Durch das Beschränken der Spalten und Zeilen können Sie außerdem die Anforderungen von ArcGIS an Daten erfüllen. Beispielsweise kann ArcGIS nur mit Tabellen arbeiten, die eine räumliche Spalte enthalten. Zur Verwendung einer räumlichen Tabelle, die mehrere räumliche Spalten enthält, können Sie Sichten erstellen. Jede Sicht kann eine einzelne räumliche Spalte enthalten. Zudem kann ArcGIS nur mit Tabellen arbeiten, die einen Raumbezug verwenden. Wenn die Tabelle Daten enthält, die in mehreren Raumbezügen gespeichert sind, können Sie eine Sicht erstellen, die nur die Zeilen (Features) umfasst, die denselben Raumbezug verwenden.
- Häufig verwendete Abfragen können in der Datenbank festgeschrieben und für mehrere Benutzer verfügbar gemacht werden. Auf diese Weise müssen Benutzer weniger eigene komplexe Abfragen erstellen.
- In Sichten können Daten aus verschiedenen Tabellen oder anderen Sichten zusammengeführt werden.
- Sie können Funktionen zur Zusammenfassung von Daten in Sichten verwenden. Dies reduziert ebenfalls die von der Datenbank zum Client übertragene Datenmenge, wodurch die Performance verbessert wird.
- Sie können eine Feature-Class mit einer nicht räumlichen Tabelle verbinden, wenn Sie eine Sicht definieren und dabei die Spalten aus beiden kombinieren.
Überlegungen zur Verwendung von Sichten
Beim Arbeiten mit Sichten in ArcGIS ist Folgendes zu beachten:
- Die Daten können nicht mit ArcGIS-Clients oder -Services in der Sicht bearbeitet werden, selbst wenn Sie die Sicht in der Geodatabase registrieren.
- Änderungen, die am Schema der zugrunde liegenden Tabelle(n) vorgenommen werden, werden in der Sicht nicht wiedergegeben. Wenn Sie zusätzliche Spalten in eine Sicht einbeziehen möchten, müssen Sie die Sicht hierzu entsprechend neu definieren.
Vorsicht:
Wenn Sie von ArcGIS erstellte Sichten ersetzen, indem Sie eine bestehende Sicht mit SQL oder anderen Datenbankwerkzeugen ändern, übernehmen Sie nicht nur die Verantwortung für die Richtigkeit und Effizienz der Abfrage, sondern auch für ihre Relevanz und Eignung für ArcGIS-Clients. Bei der Erstellung von Eins-zu-viele-Sichten mit Feature-Classes können z. B. doppelte Objekt-IDs entstehen. Dies würde zu einem unerwarteten Verhalten in Anwendungen wie ArcGIS Pro und in Web-Services führen, da die Objekt-IDs stets Einzelwerte sein müssen.
- In den meisten Fällen sollten die Geodatabase-Tabellen und Feature-Classes, die Sie in eine Sicht einbeziehen, nicht für die traditionelle Versionierung registriert oder für die Archivierung aktiviert werden. Wenn Sie eine Sicht für eine Geodatabase-Tabelle oder Feature-Class erstellen, für die die traditionelle Versionierung verwendet wird, werden nur die Daten in der Basistabelle angezeigt, nicht jedoch die Änderungen in den Delta-Tabellen oder die in den Archivierungstabellen gespeicherten Datensätze. Um die Änderungen über ArcGIS-Clients in einer Sicht anzuzeigen, müssen Sie die Änderungen in der Default-Version abgleichen und zurückschreiben sowie die Geodatabase vollständig komprimieren.
- Wenn Sie eine räumliche Spalte in die Definition einer in ArcGIS verwendeten Sicht einbeziehen, müssen die folgenden Anforderungen erfüllt werden:
- In der Sicht darf nur eine räumliche Spalte vorhanden sein.
- Die Definition der Sicht muss die Objekt-ID-Spalte aus derselben Feature-Class wie die Feature-Class der räumlichen Spalte enthalten. Wenn Sie die Objekt-ID aus der Feature-Class nicht einbeziehen, verletzt dies die eindeutige Beziehung zwischen Objekt-ID und Shape-Spalte und führt zu ungenauen Ergebnissen beim Abfragen und Rendern der Sicht in ArcGIS.
In der Geodatabase registrierte Sichten
Nachdem Sie eine Sicht in einer Geodatabase erstellt haben, können Sie das Geoverarbeitungswerkzeug In Geodatabase registrieren ausführen, um aus der Sicht ein Geodatabase-Objekt zu machen.
Die Registrierung einer Sicht in der Geodatabase ist u. a. aus folgenden Gründen erforderlich:
- Wenn Sie eine Sicht in der Geodatabase registrieren, werden Informationen über die Sicht in Geodatabase-Systemtabellen gespeichert. Wenn Sie einer Karte eine Sicht mit einem räumlichen Feld hinzufügen, führen diese Informationen, beispielsweise Geometrietyp, Raumbezug und Ausdehnung, zu einer verbesserten Performance.
- Wenn Sie der Besitzer der Sichten sind, können Sie für Sichten, die in der Geodatabase registriert sind, Metadaten festlegen.