Wenn Sie die Verbindung mit einer Enterprise-Geodatabase über einen ArcGIS-Client oder einen ArcGIS Server-Web-Service herstellen, interagieren Sie mit den Datasets, die Sie oder andere Datenbankbenutzer der Geodatabase hinzugefügt haben. Um diese Daten zu verfolgen und Geodatabase-Verhalten zu implementieren, verwenden Enterprise-Geodatabases Systemtabellen.
Die Systemtabellen und ihr Inhalt sollten ausschließlich mit der ArcGIS-Software oder dem -SDK geändert werden. Sie können jedoch den Inhalt der Systemtabellen mit SQL anzeigen.
Kernsystemtabellen
Die Geodatabase-Kernsystemtabellen erzwingen das Geodatabase-Verhalten, speichern Informationen zur Geodatabase und verfolgen die in der Geodatabase gespeicherten Benutzerdaten.
Wenn Sie eine Abfrage in einer IBM Informix-Datenbank durchführen, die eine Enterprise-Geodatabase enthält, werden die folgenden Kernsystemtabellen angezeigt, deren Besitzer der SDE-Benutzer ist:
- column_registry
- compress_log: Diese Tabelle wird erstellt, wenn Sie die Geodatabase zum ersten Mal komprimieren.
- dbtune
- gdb_itemrelationships
- gdb_itemrelationshiptypes
- gdb_items
- gdb_itemtypes
- gdb_replicalog
- gdb_tables_last_modified
- GEOMETRY_COLUMNS
- layer_locks
- layers
- lineages_modified
- mvtables_modified
- object_locks
- process_information
- raster_columns
- sde_archives
- sde_sde_logfile_pool
- sde_xml_columns
- sde_xml_index_tags
- sde_xml_index
- server_config
- spatial_references
- state_lineages
- state_locks
- states
- table_locks
- table_registry
- tables_modified
- version
- versions
Die folgenden Tabellen sind in der Geodatabase vorhanden, werden aber nicht mehr verwendet. Sie werden in einer zukünftigen Version möglicherweise entfernt.
- locators
- metadata
- sde_layer_stats
Tabellen, die Enterprise-Geodatabase-Funktionen implementieren
Informationen für einige Geodatabase-Funktionen werden nur in Kernsystemtabellen gespeichert. Informationen für die folgenden Funktionen werden beispielsweise in Kernsystemtabellen gespeichert. Es werden keine zusätzlichen Tabellen in der Datenbank erstellt, wenn Sie diese Funktionalität für Benutzerdaten definieren oder aktivieren:
- Domänen: Werden in der Systemtabelle gdb_items gespeichert. Ein Feld in der gdb_itemtypes-Systemtabelle identifiziert das Objekt als Domäne.
- Geodatabase-Replikate: Werden in der Datenbank in den Systemtabellen gdb_items, gdb_itemrelationships, gdb_itemtypes und gdb_replicalog verfolgt.
- Beziehungsklassen: Werden in den Systemtabellen gdb_items und gdb_itemrelationships gespeichert.
Die in den folgenden Abschnitten beschriebenen Geodatabase-Funktionen erstellen jedoch zusätzliche interne Tabellen, wenn Sie die jeweilige Funktion aktivieren oder nutzen.
Geodatabase-Archive
Sie können den Transaktionszeit-Verlauf für die Daten mit der Geodatabase-Archivierung verfolgen. Bei der Transaktionszeit handelt es sich um den Zeitpunkt, an dem ein Feature der Datenbank hinzugefügt wurde oder in der Datenbank gelöscht bzw. aktualisiert wurde.
Wenn Sie die Geodatabase-Archivierung aktivieren, wird eine Archivklasse erstellt. Eine Archivklasse ist eine Kopie der Business-Tabelle, die die gleichen Felder sowie drei neue Felder, gdb_from_date, gdb_to_date und gdb_archive_oid, enthält. Wenn Sie die Archivierung in einer Tabelle oder Feature-Class aktivieren, für die die traditionelle Versionierung durchgeführt wird, wird in der Systemtabelle sde_archives ebenfalls ein Datensatz hinzugefügt. In diesem Datensatz sind die Registrierungs-IDs der Tabelle, die für Archivierung aktiviert wurde, und der zugehörigen Archivklassentabelle gespeichert.
Der Name der Archivklassentabelle entspricht dem Namen der ursprünglichen Business-Tabelle gefolgt von einem Unterstrich und dem Buchstaben H. Beispiel: Wenn die Archivierung in einer Feature-Class mit dem Namen „buildings“ aktiviert ist, wird die Archivklasse „buildings_H“ erstellt. Diese Archivklassentabelle befindet sich im Besitz desselben Benutzers wie die Business-Tabelle.
Versionen
Wenn Sie eine Feature-Class oder Tabelle für die Beteiligung an der Versionierung registrieren, werden zwei Tabellen für die Verfolgung von Änderungen an Daten erstellt: die Adds-Tabelle und die Deletes-Tabelle. Zusammen werden sie als Delta-Tabellen bezeichnet.
In der Tabelle "(a_<registration_id>)" (Adds-Tabelle) werden Informationen zu jedem eingefügten oder aktualisierten Datensatz (Feature) in einer versionierten Business-Tabelle verwaltet. Sie wird abgefragt, um die hinzugefügten oder geänderten Datensätze in einem bestimmten Datenbankzustand zu identifizieren.
In der Tabelle "d_<registration_id>" (Deletes-Tabelle) werden Informationen zu den gelöschten oder aktualisierten Zeilen in einer versionierten Business-Tabelle verwaltet. Sie wird abgefragt, um die gelöschten oder geänderten Zeilen in einem bestimmten Zustand zu identifizieren. Wenn eine Zeile gelöscht wird, wird der Datensatz nicht physisch entfernt. Er wird als gelöscht markiert und in nachfolgenden Datenbankabfragen nicht mehr zurückgegeben.
"registration_id" im Namen der Adds-Tabelle und der Deletes-Tabelle entspricht dem Wert für die versionierte Tabelle in der Systemtabelle table_registry.
Diese Tabellen befinden sich im Besitz desselben Benutzers, der auch die als versioniert registrierte Tabelle oder Feature-Class besitzt.
Zusätzlich zu den Delta-Tabellen verfolgen die Kernsystemtabellen states, state_lineages, mvtables_modified und versions versionierte Tabellen und Änderungen.
Keyset-Tabellen
ArcGIS-Clients verwenden Keyset-Tabellen zur Verbesserung der Abfrageleistung. In den Keyset-Tabellen wird eine Liste ausgewählter Zeilen gespeichert, wenn ein ArcGIS-Client eine Geodatabase-Beziehungsabfrage ausführt, durch die Tabellen mithilfe von Attributen vom Typ "Ganzzahl", "Zahl", "Datum" oder "Zeichenfolge" verbunden werden. In diesen Tabellen werden Verbindungen mit anderen Attributen als dem Objekt-ID-Feld gespeichert.
In der Geodatabase sind keine Keyset-Tabellen enthalten, bis Sie einen der folgenden Vorgänge ausführen:
- Sie wählen in einer Feature-Class in einer Karte in ArcMap mehr als 99 Datensätze aus, und die Feature-Class ist Mitglied einer Beziehungsklasse.
- In ArcMap öffnen Sie die Attributtabelle einer Feature-Class, die Mitglied einer Beziehungsklasse ist und rufen die zugehörige Tabelle ab.
- Sie starten eine Editiersitzung in ArcMap.
Eine Keyset-Tabelle wird als globale temporäre Tabelle pro Verbindung pro Sitzung erstellt. Da es sich um eine temporäre Tabelle handelt, wird die Keyset-Tabelle gelöscht, wenn der Benutzer die Verbindung zur Geodatabase trennt.
Keyset-Tabellennamen haben das folgende Format:
<owner>.keyset_<process_id>, wobei <owner> der Name des Benutzers ist, der die Erstellung der Keyset-Tabelle veranlasst hat, und <process_id> die Prozess-ID der Sitzung, welche die Erstellung der Keyset-Tabelle verursacht hat.
Protokolldateitabellen
Protokolldateitabellen werden von ArcGIS-Clients verwendet, um die Abfrageleistung durch Speichern von Listen ausgewählter Zeilen zu verbessern. Protokolldateitabellen verwenden Verbindungen, die auf Objekt-ID-Attributen basieren.
Geodatabases in Informix verwenden standardmäßig gemeinsame Protokolldateitabellen. Diese Art von Protokolldateikonfiguration erstellt die beiden Tabellen sde_sde_logfiles und <user_name>_sde_logfile_data im Schema des Benutzers, der eine Aktion durchführt, für die Protokolldateitabellen erforderlich sind. Einmal erstellt bleiben diese Tabellen in der Geodatabase; alle Protokolldateieinträge werden jedoch gelöscht, wenn die verbindende Anwendung alle ihre Protokolldateien löscht.
Die folgende Liste enthält die Protokolldateitabellen, die in der Datenbank angezeigt werden, wenn Sie den Typ der Protokolldateitabellen ändern, die von der Geodatabase verwendet werden:
- Sitzungsbasierte Protokolldateitabellen: sde_sde_logfiles, <user_name>_sde_logfile_data und <user_name>_sde_session<sde_id>. Diese Tabellen werden im Schema des Benutzers erstellt, dessen Sitzung die Tabellen erzeugt hat. Nach ihrer Erstellung bleiben sde_sde_logfiles und <user_name>_sde_logfile_data in der Datenbank. <user_name>_sde_logfile_data wird nie ausgefüllt, wenn Sie sitzungsbasierte Protokolldateitabellen verwenden. Die Tabelle "sde_sde_logfiles" wird abgeschnitten, wenn die Benutzersitzung beendet wird. Die Tabelle <user_name>_sde_session<sde_id> wird abgeschnitten, wenn die verbindende Anwendung die Protokolldateidatensätze nicht mehr benötigt. Die Tabelle werden gelöscht, sobald die Sitzung getrennt wird.
- Pools von Protokolldateitabellen: Diese Protokolldateiimplementierung verwendet die Kernsystemtabelle sde_sde_logfile_pool und erstellt sde_sde_logpool_<table_Id>-Tabellen, um eine Auswahl basierend auf Objekt-IDs zu speichern. Der Geodatabase-Administrator definiert die Anzahl der sde_sde_logpool_<table_Id>-Tabellen, die erstellt werden muss, wenn die Geodatabase für die Verwendung dieses Typs der Implementierung von Protokolldateitabellen konfiguriert ist. Alle diese Tabellen befinden sich im Besitz des SDE-Benutzers.