Kurzer Überblick über Sichten in der Geodatabase
Es gibt drei Arten von Sichten, die Sie in einer ArcSDE-Geodatabase verwenden können:
- Datenbanksichten (oder nicht räumliche Sichten)
- Räumliche Sichten
- Multiversioned Views
Sichten können nur in ArcSDE-Geodatabases mit Lizenzierung über ArcGIS Server Enterprise verwendet werden.
Datenbanksichten
Bei Datenbanksichten handelt es sich um gespeicherte Abfragen, mit denen Daten aus bestimmten nicht versionierten, nicht räumlichen Tabellen ausgewählt werden. Im Zusammenhang mit ArcSDE können Datenbanksichten für eine einzelne nicht versionierte Tabelle oder zwischen zwei nicht versionierten Tabellen definiert werden. Sie können auch komplexere Sichten erstellen, die Unterabfragen enthalten oder mehrere Datenbanken umfassen.
Wenn Sie eine Sicht für ein versioniertes Dataset erstellen, wird nur die (grundlegende) Business-Tabelle angezeigt, nicht jedoch die Änderungen in den Delta-Tabellen. Um die Änderungen in den Delta-Tabellen anzuzeigen, erstellen Sie stattdessen eine mehrfach versionierte Sicht (Multiversioned View) für die Business-Tabelle.
Sie können das native SQL Ihres Datenbankmanagementsystems (DBMS) verwenden, um Datenbanksichten zu erstellen, oder den ArcSDE-Befehl "sdetable" mit "create_view".
Die Syntax von "sdetable –o create_view" lautet wie folgt:
sdetable –o create_view –T <view_name> –t <table1,table2...tablen> –c <table_col1,table_col2...table_coln [–a <view_col1,view_col2...view_coln>] [–w <"where_clause">] [–i {<direct connection> | <service> | <port#>}] [–s <server_name>] [–D <database>] –u <DB_User_name> [–p <DB_User_password>] [–N] [–q]
Listen Sie die Spalten auf (–c), die in der Sicht enthalten sein sollen. Weitere Informationen zum Befehl "sdetable" und den zugehörigen Optionen finden Sie in der ArcSDE Administration Command Reference.
Zum Erstellen einer Sicht müssen den Benutzern spezifische Berechtigungen zugewiesen sein: In Oracle- oder SQL Server-Datenbanken müssen ihnen z. B. CREATE VIEW-Berechtigungen erteilt werden. Wenn Sie keine Berechtigungen zum Erstellen einer Sicht in der Datenbank haben, können Sie den Befehl "sdetable –o create_view" nicht ausführen. Wenn Sie eine Sicht für eine Feature-Class oder Tabelle erstellen, deren Besitzer nicht Sie sind, können Sie bei einigen Datenbankmanagementsystemen (DBMS) anderen Benutzern nur Rechte für die Sicht erteilen, wenn Ihnen vom Besitzer der zugrunde liegenden Tabellen entsprechende Berechtigungen erteilt wurden.
Räumliche Sichten
Räumlichen Sichten sind Datenbanksichten, die eine einzelne räumliche Spalte enthalten. Sie können nur für räumliche Tabellen erstellt werden, die nicht in der Geodatabase registriert wurden, oder, falls die Tabellen in der Geodatabase registriert wurden, für nicht versionierte Feature-Classes.
Zusätzlich zu den unter Was ist eine Sicht? aufgelisteten Gründen für die Verwendung von Datenbanksichten gibt es weitere Gründe zum Erstellen von räumlichen Sichten:
- Sie können eine Feature-Class mit einer nicht räumlichen Tabelle verbinden, wenn Sie eine räumliche Sicht definieren, und so die Spalten aus beiden kombinieren.
- ArcGIS-Clients können 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 eine räumliche Sicht der Tabelle erstellen, die nur eine räumliche Spalte aus der Tabelle enthält.
Sie können entweder den ArcSDE-Befehl "sdetable" mit "create_view" verwenden oder mit SQL eine räumliche Sicht erstellen. Wenn Sie den Befehl "sdetable" verwenden, schließen Sie die Zeilen-ID (oder ObjectID) und die räumliche Spalte in die Liste der mit der Option –c angegebenen Spalten ein. Die Spalte der Zeilen-ID (oder ObjectID) muss aus derselben Tabelle stammen wie die räumliche Spalte. Falls nicht, kann die eindeutige Beziehung zwischen Zeilen-ID oder ObjectID und Shape-Spalte verletzt werden und zu ungenauen Ergebnissen beim Abfragen oder beim Rendering in ArcGIS führen.
Zum Erstellen einer räumlichen Sicht mit SQL schließen Sie die räumliche Spalte und die entsprechende Zeilen-ID oder ObjectID aus der Feature-Class oder der räumlichen Tabelle in die Sicht ein. Nachdem Sie die Sicht in SQL erstellt haben, müssen Sie sie mindestens in ArcSDE registrieren, damit sie als Feature-Class in ArcGIS-Clients angezeigt wird.
Wenn Sie eine Sicht mit ArcSDE-Werkzeugen, SQL oder anderen DBMS-Werkzeugen erstellen, müssen Sie die Eignung der neuen Sicht prüfen. Sie müssen z. B. ermitteln, ob die angegebenen Spalten wirklich in den jeweiligen Tabellen existieren und ob Indizes für die Spalten vorhanden sind, mit denen die Abfrageausführung beschleunigt werden kann. Wenn Sie von ArcSDE erstellte Sichten ersetzen, indem Sie die Sicht später ä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 ArcSDE-Clients. Bei der Erstellung von Eins-zu-viele-Sichten mit Feature-Classes können z. B. doppelte ObjectIDs entstehen. Dies würde zu einem unerwarteten Verhalten in Anwendungen wie ArcMap und ArcCatalog führen, da die ObjectIDs immer eindeutig sein müssen.
Multiversioned Views
Multiversioned Views enthalten Datenbanksichten, gespeicherte Prozeduren, Trigger und Funktionen für das Aufrufen oder Bearbeiten einer bestimmte Version einer Tabelle oder Feature-Class in einer Geodatabase mithilfe von SQL.
Verwenden Sie den Befehl "sdetable" mit "create_mv_view", um eine Multiversioned View zu erstellen. Die Syntax von "sdetable -o create_mv_view" lautet wie folgt:
sdetable –o create_mv_view –T <view_name> –t <table_name> [–i {<direct connection> | <service> | <port#>}] [–s <server_name>] [–D <database>] –u <DB_User_name> [–p <DB_User_password>] [–N] [–q]
Weitere Informationen zum Befehl "sdetable" und den zugehörigen Optionen finden Sie in der ArcSDE Administration Command Reference.
Multiversioned Views funktionieren nur mit einer einzeln versionierten Tabelle oder Feature-Class. Sie können keine Where-Klausel verwenden, um mehrere Tabellen zu verbinden oder einzuschränken, welche Zeilen bzw. Spalten in einer Multiversioned View enthalten sind.
Die hauptsächliche Verwendung von Multiversioned Views besteht in der Bearbeitung von versionierten Daten mit SQL. Sie können die zugrunde liegende Tabelle oder Feature-Class nicht durch eine Multiversioned View anhand einer ArcGIS-Client-Anwendung bearbeiten. Die Tabelle oder Feature-Class, auf der die Multiversioned View basiert, muss den ArcGIS-Anforderungen für das Bearbeiten von Geodatabase-Daten mit SQL entsprechen. Weitere Informationen finden Sie unter Welcher Datentyp kann mit SQL bearbeitet werden?.