Wenn Sie die Archivierung für ein versioniertes Dataset aktivieren, wird die Archivklasse mit den aktuellen Daten aus der DEFAULT-Version erstellt und aufgefüllt. Die Archivklasse verwendet gdb_from_date und gdb_to_date, um den Zeitpunkt der Archivierung der Änderung zu verwalten. Durch die Aktivierung von nichtversionierten Daten werden die Felder gdb_from_date und gdb_to_date direkt in der Basistabelle der Klasse erstellt.
Darstellung von Zeit
Sie sollten sich bewusst sein, wie die Zeit beim Aufzeichnen von Änderungen in ArcGIS dargestellt wird. Zeitpunkte in der Vergangenheit können als gültige Zeit, Transaktionszeit oder koordinierte Weltzeit (Coordinated Universal Time, UTC) aufgezeichnet werden. Die gültige Zeit ist der eigentliche Moment, in dem eine Änderung tatsächlich geschah. Sie wird üblicherweise von dem Benutzer aufgezeichnet, der die Änderung erfasst. Die Transaktionszeit ist die Zeit, zu der ein Ereignis in der Datenbank erfasst wurde. Transaktionszeiten werden automatisch vom System generiert. UTC ist der primäre Standard, der zur Regulierung von Uhren und Zeit im Internet verwendet wird.
Um die Archivierung für versionierte Daten auszuführen, verwendet ArcGIS die Transaktionszeit, die auf der aktuellen Serverzeit basiert, um Änderungen an den Daten aufzuzeichnen, wenn Änderungen gespeichert oder in die DEFAULT-Version zurückgeschrieben werden. Die Transaktionszeit und die Zeit, zu der das Ereignis tatsächlich eingetreten ist, stimmen selten überein. Zwischen dem tatsächlichen Auftreten eines Ereignisses und dessen Erfassung in der Datenbank verstreicht in der Regel einige Zeit. Beispielsweise wird am 14. Mai 2006 ein Flurstück verkauft. Die Änderung wird jedoch erst am 5. Juni 2006 in den Daten dokumentiert. Die Transaktionszeit vom 5. Juni 2006 wird für diese Änderung in der Archivklasse erfasst.
Beim Auftreten der Änderung archiviert ArcGIS die Transaktion in der Archivklasse. Die Differenz zwischen dem realen Zeitpunkt des Ereignisses und der Transaktionszeit kann unwesentlich erscheinen, aber es wird deutlicher, wenn Abfragen der archivierten Informationen ausgeführt werden. In Produktionssystemen sind Rückstände beim Bearbeiten und Aktualisieren von Daten nicht selten. Dies führt zu Zeitunterschieden und Verzögerungen zwischen der gültigen Zeit und der Transaktionszeit.
Die Differenz zwischen der gültigen Zeit und der Transaktionszeit stellt auch in Situationen ein Problem dar, in denen vergangene Ereignisse von vielen Benutzern oder Abteilungen aufgezeichnet werden, die gemeinsam eine Datenbank nutzen. Die Reihenfolge, in der die Änderungen in der Datenbank aufgezeichnet werden, stimmt möglicherweise nicht mit der Reihenfolge überein, in der diese Änderungen tatsächlich aufgetreten sind.
Beim Ausführen der Archivierung für nichtversionierte Daten wird UTC zum Darstellen der Uhrzeit verwendet. Änderungen an den Daten werden beim Speichern von Änderungen während einer Editiersitzung erfasst.
Aktivierte Archivierung für nichtversionierte Daten
Beim Aktivieren der Archivierung werden die Attribute gdb_from_date und gdb_to_date der Basistabelle hinzugefügt. Das Attribut gdb_from_date erhält für alle Zeilen den Zeitstempel mit dem Datum und der Uhrzeit, zu der die Archivierung aktiviert wurde. Das Attribut gdb_to_date erhält für alle Zeilen den Zeitstempel vom 31.12.9999. Wenn für ein Attribut das Attribut gdb_to_date auf den Wert 31.12.9999 festgelegt wurde, handelt es sich um die aktuelle Repräsentation des Objekts. Wenn Änderungen gespeichert werden, werden diese folgendermaßen von der Geodatabase archiviert:
- Der Attributwert für das Attribut gdb_from_date ist bei neu erstellten Features auf den Zeitstempel des Archivierungsvorgangs festgelegt und das Attribut gdb_to_date ist auf den 31.12.9999 eingestellt.
- Wenn Features in einer Editiersitzung aktualisiert werden, wird die zugeordnete Zeile in der Basistabelle aktualisiert, indem der Attributwert für das Attribut gdb_to_date auf den Zeitstempel des Archivierungsvorgangs festgelegt wird. Es wird eine neue Zeile eingefügt, in der das Attribut gdb_from_date auf den Zeitstempel des Archivierungsvorgangs und das Attribut gdb_to_date auf den 31.12.9999 festgelegt wird.
- Wenn Features in einer Editiersitzung gelöscht werden, wird die zugeordnete Zeile in der Basistabelle aktualisiert, indem das Attribut gdb_to_date auf einen Wert festgelegt wird, der dem Zeitstempel des Archivierungsvorgangs entspricht.
Aktivierte Archivierung für versionierte Daten
Beim Aktivieren der Archivierung werden alle Zeilen, die die DEFAULT-Version für die betreffende Klasse darstellen, mit demselben Zeitstempel in die Archivklasse kopiert. Das Attribut gdb_from_date erhält für alle Zeilen den Zeitstempel mit dem Datum und der Uhrzeit, zu der die Archivierung aktiviert wurde. Das Attribut gdb_to_date erhält für alle Zeilen den Zeitstempel vom 31.12.9999. Wenn für ein Attribut das Attribut gdb_to_date auf den Wert 31.12.9999 festgelegt wurde, handelt es sich um die aktuelle Repräsentation des Objekts in der DEFAULT-Version. Wenn Änderungen gespeichert oder in die DEFAULT-Version zurückgeschrieben werden, archiviert die Geodatabase automatisch die Änderungen in der Archivklasse. Dies bedeutet Folgendes:
- In der DEFAULT-Version erstellte Features werden in der Archivklasse als Zeilen mit einem Attributwert für das Attribut gdb_from_date dargestellt, der auf den Zeitstempel des Archivierungsvorgangs festgelegt ist, und das Attribut gdb_to_date wird auf den 31.12.9999 festgelegt.
- Wenn Features in der DEFAULT-Version aktualisiert werden, wird die zugeordnete Zeile in der Archiv-Klasse aktualisiert, indem der Attributwert für das Attribut gdb_to_date auf den Zeitstempel des Archivierungsvorgangs festgelegt wird. Es wird eine neue Zeile eingefügt, in der das Attribut gdb_from_date auf den Zeitstempel des Archivierungsvorgangs und das Attribut gdb_to_date auf den 31.12.9999 festgelegt wird.
- Wenn in der DEFAULT-Version ein Feature gelöscht wird, wird die zugeordnete Zeile in der Archivklasse aktualisiert, indem das Attribut gdb_to_date auf einen Wert festgelegt wird, der dem Zeitstempel des Archivierungsvorgangs entspricht.
Die Aktualisierung der Archivtabelle wird innerhalb einer einzelnen Datenbanktransaktion ausgeführt. Bei Fehlern während der Transaktion wird der gesamte Archivierungsvorgang rückgängig gemacht. Der Speicher- oder Zurückschreibungsvorgang wird in diesem Fall nicht abgeschlossen. Sobald der Fehler berichtigt wurde, führen Sie den Speicher- oder Zurückschreibungsvorgang erneut aus.
Bei jedem Archivierungsvorgang wird die historische Kennzeichnung der DEFAULT-Version mit dem Wert des Archivierungsvorgangs aktualisiert. Bei Verwendung einer historischen Version wird auf diese Weise sichergestellt, dass beim Auswählen eines historischen Markers in der DEFAULT-Version die aktuelle Repräsentation der Archivklasse der Repräsentation der versionierten Klasse in der DEFAULT-Version der Transaktion entspricht.
Beim Zugriff auf die Archivklasse werden unter Umständen weniger Datenbankressourcen benötigt als bei der Arbeit mit der entsprechenden versionierten Klasse.
Abfragen für historische Versionen erfolgen auf der Archivklasse:

Abfragen für Transaktionsversionen erfolgen weiterhin auf den Basis- und Delta-Tabellen:

Feature-Ergänzungen
Dieses Feature in einer Parcel-Fabric zeigt die Flurstücknummer 116 und die zugehörige Zeile an. Für versionierte Daten wird diese Zeile in der Archivklasse angezeigt. Für nichtversionierte Daten wird diese Zeile in der Basistabelle für Flurstücke angezeigt. Das Attribut gdb_from_date enthält die Uhrzeit und das Datum der Erstellung, während gdb_to_date den 31.12.9999 enthält, weil das Feature seit der Aktivierung der Archivierung nicht geändert oder gelöscht wurde.

Wenn ein Feature eingefügt wird (Flurstück 117), wird eine Zeile mit dem Attribut gdb_from_date eingefügt, das mit dem Zeitstempel dieses Zurückschreibevorgangs aktualisiert wird. Das Attribut gdb_to_date in der neuen Zeile enthält den 31.12.9999, da dieses Feature noch nicht aktualisiert oder gelöscht wurde.

Hinweis:
Bei bestimmten Bearbeitungsvorgängen wie dem Erstellen von Features mit dem Werkzeug "Polygon automatisch schließen" und dem Validieren einer Geodatabase-Topologie werden Stützpunkte für vorhandene Features eingefügt, um die Lagegleichheit zwischen benachbarten Features beizubehalten. Wenn Sie beispielsweise das Werkzeug "Polygon automatisch schließen" zum Erstellen eines neuen Polygons verwenden, das an ein vorhandenes angrenzt, werden dem vorhandenen Polygon an den Stellen Stützpunkte hinzugefügt, an denen die Form des neuen Features das vorhandene Feature schneidet.
Feature-Aktualisierungen
Wenn ein Feature aktualisiert wird, wird das Attribut gdb_to_date auf den Zeitstempel dieses Archivierungsvorgangs festgelegt, und eine Zeile wird eingefügt, um die aktuelle Repräsentation des Features anzuzeigen. Das Attribut gdb_from_date in dieser neuen Zeile wird auf die Uhrzeit des Archivierungsvorgangs festgelegt, während das Attribut gdb_to_date den 31.12.9999 enthält, weil es noch nicht geändert oder gelöscht wurde.
Im folgenden Diagramm werden zwei Flurstücke, 116 und 117, mit den entsprechenden Attributen gdb_from_date und gdb_to_date vor dem Aktualisierungsvorgang veranschaulicht.

Wenn die Flurstücksgrenze für Flurstück 117 ausgedehnt wird, wird das Attribut gdb_to_date mit dem Zeitstempel des Archivierungsvorgangs aktualisiert, und eine neue Zeile wird erstellt. Das Attribut gdb_from_date in dieser neuen Zeile wird auf das Datum und die Uhrzeit des Archivierungsvorgangs festgelegt.

Bei Abfragen, die Zeiten vor der Aktualisierung (12.07.2005, 17:34:22) untersuchen, wird das Flurstück 117 in dem Zustand angezeigt, in dem es vor der Aktualisierung vorlag. Wenn Zeiten vor dem 09.07.2005, 14:23:43 abgefragt werden, wird das Flurstück 117 nicht angezeigt, da es noch nicht erstellt worden war. Für alle Momentabfragen nach der Aktualisierung (12.07.2005, 17:34:22) wird Flurstück 117 in der aktuellen Repräsentation mit der erweiterten Grenze angezeigt.
Feature-Löschung
Wenn ein Feature gelöscht wird, wird das Attribut gdb_to_date mit dem Zeitstempel des Archivierungsvorgangs aktualisiert. Im folgenden Diagramm werden die Flurstücke 116 und 117 mit den entsprechenden Attributen gdb_from_date und gdb_to_date veranschaulicht.

Wenn das Flurstück 117 nun gelöscht wird, wird das Attribut gdb_to_date mit dem Zeitstempel des Archivierungsvorgangs aktualisiert.

Technischer Hinweis zum Archivieren mit versionierten Daten
Im folgenden Szenario kann in der Archivklasse eine zeitliche Lücke entstehen:
Ein Bearbeiter bearbeitet die DEFAULT-Version in einer Editiersitzung direkt und löscht ein Objekt.
Anschließend speichert der Bearbeiter die Änderungen, wodurch das Attribut gdb_to_date der Archivklasse mit dem Zeitstempel des Löschvorgangs für dieses Objekt aktualisiert wird.
Wenn dasselbe Objekt in einer Child-Version aktualisiert und mit der DEFAULT-Version abgeglichen wird, entsteht ein Konflikt.
Wenn während der Konfliktlösung ein Bearbeiter den Konflikt durch die aktualisierte Repräsentation der Zeile ersetzt, wird die Zeile beim Zurückschreiben der Version in der DEFAULT-Version wiederhergestellt. Mit dem Archivierungsvorgang wird in der Archivklasse eine neue Zeile eingefügt. Das Attribut gdb_from_date wird auf den Zeitstempel und gdb_to_date auf den 31.12.9999 festgelegt.
Wenn der Bearbeiter die Lineage des Objekts über den Zeitraum anzeigt, weisen die Datumsangaben eine Lücke zwischen den Attributen gdb_to_date und gdb_from_date auf, als das Objekt in der DEFAULT-Version nicht vorhanden war.