Kurzer Überblick über die Versionierung
Dieses Thema gilt nur für ArcEditor und ArcInfo.
Die Versionierung ermöglicht es mehreren Benutzern, dieselben Daten in einer ArcSDE-Geodatabase zu bearbeiten, ohne Sperren anwenden oder Daten duplizieren zu müssen.
Benutzer können stets über eine Version auf eine ArcSDE-Geodatabase zugreifen. Wenn Sie in eine Verbindung mit einer Mehrbenutzer-Geodatabase herstellen, geben Sie die gewünschte Version an. In der Standardeinstellung wird eine Verbindung mit der DEFAULT-Version hergestellt.
DEFAULT-Version
Jede ArcSDE-Geodatabase hat eine DEFAULT-Version. Daher ist die Versionierung für die Geodatabase stets aktiviert. Dies ist eine grundlegende Funktion von ArcGIS und muss nicht eigens installiert oder konfiguriert werden.
Im Gegensatz zu anderen Versionen ist die DEFAULT-Version immer vorhanden und kann nicht gelöscht werden. In den meisten Arbeitsablaufstrategien entspricht sie der veröffentlichten Version der Datenbank und stellt den aktuellen Zustand des modellierten Systems dar. Sie verwalten und aktualisieren die DEFAULT-Version laufend, indem Sie die Änderungen aus anderen Versionen in diese zurückschreiben. Sie können die DEFAULT-Version wie jede andere Version auch direkt bearbeiten.
Die DEFAULT-Version ist die Stammversion und daher der Vorgänger aller anderen Versionen.
Erstellen anderer Versionen
Sie erstellen eine Version, indem Sie Child-Versionen einer vorhandenen Version erstellen. Die erste Version erstellen Sie, indem Sie eine Child-Version der DEFAULT-Version erstellen. Wenn die neue Version erstellt wurde, ist sie mit der DEFAULT-Version identisch. Im Laufe der Zeit weichen die Versionen immer mehr voneinander ab, wenn an der DEFAULT-Version und auch an der neuen Version Änderungen vorgenommen werden.
Eine Geodatabase kann zahlreiche Versionen aufweisen. In der folgenden Abbildung wird das Dialogfeld Version-Manager gezeigt, auf das Sie über ArcGIS Desktop zugreifen können. In diesem Beispiel werden die DEFAULT-Version und drei andere Versionen dargestellt: Eine Qualitätssicherungsversion (QA) sowie die Projektversionen "ProjectA" und "ProjectB".
Im folgenden Diagramm werden die Beziehungen zwischen diesen Versionen gezeigt. Die Qualitätssicherungsversion ist eine Child-Version der DEFAULT-Version, die Versionen "ProjectA" und "ProjectB" sind Child-Versionen der Qualitätssicherungsversion.
Beim Erstellen einer Version erhalten Sie unter Umständen fälschlicherweise den Eindruck, dass Sie eine Kopie der gesamten Datenbank erstellen. Der Grund dafür liegt darin, dass jede Version alle Tabellen und Feature-Classes in der Geodatabase enthält. Wenn Sie eine Feature-Class oder Tabelle in einer Version bearbeiten, entspricht diese nicht mehr der Feature-Class oder Tabelle in der Parent-Version, daher nehmen Sie möglicherweise an, dass Sie die Feature-Class oder Tabelle in jeder Version speichern. Unabhängig von der Anzahl der Versionen wird jedoch jede Tabelle und Feature-Class nur einmal in der Datenbank gespeichert. ArcGIS belässt jede Feature-Class und Tabelle im ursprünglichen Format, erfasst aber alle Änderungen in so genannten Delta-Tabellen.
Benutzer können alle Versionen gleichzeitig bearbeiten. Zudem können mehrere Benutzer dieselbe Version zur gleichen Zeit bearbeiten.
Im oben aufgeführten Beispiel können die Versionen ProjectA und ProjectB von mehreren Bearbeitern gleichzeitig bearbeitet werden. Für die Qualitätssicherungsversion empfiehlt es sich jedoch, die Anzahl der Benutzer zu beschränken, die Bearbeitungen vornehmen dürfen.
Funktionsweise von Versionen und versionierten Bearbeitungen
Versionierte Bearbeitungen von Daten in einer beliebigen Version können erst vorgenommen werden, nachdem die Datasets als versioniert registriert wurden.
Beachten Sie dabei, dass das Registrieren eines Datasets als versioniert nicht mit dem Erstellen einer Version identisch ist. Beim Erstellen einer Version wird eine "Ansicht" der Geodatabase erstellt, in der Sie versionierte Daten bearbeiten und die Änderungen sofort erkennen können. Anderen Benutzern, die eine Verbindung mit derselben Version hergestellt haben, werden die Änderungen erst nach einer Aktualisierung angezeigt. Benutzern, die mit anderen Versionen verbunden sind, werden Ihre Änderungen jedoch erst angezeigt, nachdem Sie sie abgeglichen und in eine Vorgängerversion zurückgeschrieben haben. Im oben aufgeführten Beispiel sind die Änderungen sichtbar, sobald sie in die DEFAULT-Version zurückgeschrieben wurden. Dabei spielt es keine Rolle, mit welcher Version Sie verbunden sind. Im Gegensatz dazu erfolgt beim Registrieren von Datasets (Feature-Classes, Feature-Datasets oder Tabellen) als versioniert eine Vorbereitung für das versionierte Bearbeiten. Beim Registrieren eines Datasets als versioniert werden zwei Delta-Tabellen erstellt, die A-Tabelle für Einfügungen und Aktualisierungen (Adds-Tabelle) und die D-Tabelle für Löschungen (Deletes-Tabelle). Jedes Mal, wenn ein Datensatz im Dataset aktualisiert oder gelöscht wird, werden einer oder beiden Tabellen Zeilen hinzugefügt. Ein versioniertes Dataset besteht daher aus der Originaltabelle (als Basistabelle bezeichnet) sowie sämtlichen Änderungen in den Delta-Tabellen. In der Geodatabase wird protokolliert, mit welcher Version Sie eine Verbindung hergestellt hatten, als Sie die Bearbeitungen vornahmen, mit denen die Delta-Tabellen gefüllt wurden. Wenn Sie ein Dataset in einer Version abfragen oder anzeigen, fasst ArcGIS die relevanten Zeilen aus der Originaltabelle und den Delta-Tabellen zusammen, um eine nahtlose Darstellung der Daten für die jeweilige Version zu erzielen.
Alle Änderungen an der Feature-Class oder Tabelle werden unabhängig von der Version, in der die Änderungen vorgenommen wurden, in den gleichen Delta-Tabellen erfasst. Zusammen stellen alle Zeilen in der Basistabelle sowie den A- und D-Tabellen alle Versionen der Feature-Class oder Tabelle dar. Dies bedeutet, dass jede beliebige Version nur auf eine Teilmenge der Zeilen in den drei Tabellen verweist. Wie erkennt ArcGIS jedoch, welche Zeilen in den Delta-Tabellen zu welcher Version gehören?
Jede Zeile in den A- und D-Tabellen ist mit einer Integer-Kennung, der State-ID, markiert. Auf diese wird verwiesen, wenn die Zeile der Tabelle hinzugefügt wird. Jedes Mal, wenn Sie eine Version bearbeiten, wird ein neuer State erstellt, und einer oder beiden Delta-Tabellen wird eine Zeile hinzugefügt. States sind wie ein Teil einer Baumstruktur, in der jeder Zweig die Entwicklung einer Version darstellt. Eine Folge von States, die eine Reihe von Änderungen von der Basistabelle bis zum aktuellen State einer Version darstellen, wird als Lineage bezeichnet. Wenn Sie eine Version anzeigen oder abfragen, fragt ArcGIS die Lineage einer Version ab, um die State-IDs abzurufen, und ruft dann die richtigen Datensätze aus den A- und D-Tabellen ab.
Wenn eine Geodatabase über einen Zeitraum hinweg bearbeitet wird, erhöhen sich die Größe der Delta-Tabellen und die Anzahl der States. Je umfangreicher die Tabellen und je zahlreicher die States, desto mehr Daten müssen von ArcGIS jedes Mal verarbeitet werden, wenn Sie eine Version anzeigen oder abfragen. Zur Aufrechterhaltung der Datenbank-Performance müssen ArcSDE-Administratoren in regelmäßigen Abständen den Befehl "Komprimieren" von ArcCatalog ausführen, um nicht verwendete Daten zu löschen. Anschließend müssen mit dem ArcCatalog-Befehl "Analysieren" die Datenbankstatistiken aktualisiert werden. Weitere Informationen zum Geodatabase-Komprimierungsvorgang
Registrieren von Daten als versioniert mit der Option zum Verschieben von Änderungen in die Basistabelle
Wenn Sie Daten als versioniert registrieren, die nicht Teil von Netzwerken oder Topologien sind, können Sie angeben, ob Sie Änderungen an der DEFAULT-Version in die Basistabellen verschieben möchten. Wenn Sie diese Option aktivieren, werden die Änderungen weiterhin in den Delta-Tabellen erfasst. Beim Speichern einer Version werden die Änderungen jedoch aus den Delta-Tabellen in die Basistabelle verschoben. Sie verbleiben nicht in den Delta-Tabellen.
Die Aktivierung dieser Option beim Registrieren der Daten als versioniert kann nützlich sein, wenn für die vorgenommenen Änderungen nur wenige Minuten erforderlich sind und Sie mit einer Anwendung eines Drittanbieters eine Verbindung mit einer versionierten Geodatabase herstellen.
Anwendungen von Drittanbietern sind meist so eingerichtet, dass nur die Basistabelle abgefragt wird; die Delta-Tabellen können von den Anwendungen nicht eingesehen werden. Wenn Sie die Versionierung verwenden und die Änderungen nicht in die Basistabelle verschieben, können diese Anwendungen Änderungen nicht einsehen, die in anderen Versionen vorgenommen, aber nicht abgeglichen und in die DEFAULT-Version zurückgeschrieben wurden. Außerdem werden Änderungen in denselben Delta-Tabellen erfasst, wenn Sie andere Versionen als die DEFAULT-Version bearbeiten. Wenn Sie die Version speichern, verbleiben die Änderungen in den Delta-Tabellen. Wenn Sie jedoch Änderungen in der DEFAULT-Version zusammenführen, werden diese aus den Delta-Tabellen in die Basistabellen verschoben. Beim Zusammenführen von Änderungen in andere Versionen als der DEFAULT-Version werden Änderungen in den Delta-Tabellen so beibehalten, als wäre die Option zum Verschieben von Änderungen in Basistabellen nicht aktiviert.
Berechtigungen und das Bearbeiten einer Version
Der Besitzer der Version (der Ersteller) kann Berechtigungen für eine Version festlegen und das Anzeigen und Bearbeiten der Version beschränken. Die Optionen für Berechtigungen lauten "Privat" (nur der Besitzer kann die Datasets der Version anzeigen und bearbeiten), "Geschützt" (alle Benutzer können die Datasets der Version anzeigen, aber nur der Besitzer kann sie bearbeiten) und "Öffentlich" (alle Benutzer können die Datasets der Version anzeigen und bearbeiten, sofern sie über die Berechtigung für die Datasets verfügen).
Im nachfolgend dargestellten Dialogfeld Version-Manager ist die DEFAULT-Version geschützt und die anderen Versionen sind öffentlich.
Weitere Informationen zu Versionsberechtigungen finden Sie unter Erstellen von Versionen und Festlegen von Berechtigungen.
Sie können die Daten in einer bestimmten Version in ArcGIS durch Verbinden mit einer bestimmten Version und Hinzufügen von Daten, die für ArcMap als versioniert registriert wurden, bearbeiten.
Sie können auch die Version umschalten, mit der sie in ArcMap verbunden sind. Weitere Informationen hierzu finden Sie unter Ändern von Versionen in ArcMap.
In der Standardeinstellung handelt es sich bei allen Editiersitzungen in ArcMap um versionierte Editiersitzungen. Wenn Sie also in der Karte versionierte Daten verwenden, können Sie direkt nach dem Öffnen einer Editiersitzung mit dem Bearbeiten beginnen. Zum Öffnen einer Editiersitzung klicken Sie auf der Werkzeugleiste "Editor" auf die Dropdown-Liste Editor und anschließend auf Bearbeitung starten.
An einer Version vorgenommene Änderungen gelten nur für diese Version. Eine Ausnahme bilden Schemaänderungen. Wenn Sie das Schema in einer Version ändern, z. B. einer Tabelle ein neues Feld hinzufügen, wird die Änderung auch auf alle anderen Versionen angewendet.
Nach der Bearbeitung müssen Sie die Änderungen abgleichen und in eine Vorgängerversion zurückschreiben.
Abgleichen und Zurückschreiben von Änderungen
Durch das Abgleichen und Zurückschreiben werden Ihre Änderungen in eine Version integriert, die eine Vorgängerversion der Version darstellt, in der Sie arbeiten, z. B. die Parent-Version oder DEFAULT-Version. Beim Abgleich werden die Änderungen in der von Ihnen bearbeiteten Version mit der Version verglichen, mit der Sie sie zusammenführen möchten.
Wenn Sie Daten in einer Version ändern, werden auf die Daten kein Sperren angewendet. Wenn zwei Bearbeiter an denselben Daten arbeiten, sei es in derselben Version oder in unterschiedlichen Versionen, können Konflikte entstehen. Ein Konflikt liegt vor, wenn eine Zeile in den verglichenen Versionen Unterschiede aufweist. Beim Abgleichvorgang wird jeder Konflikt angezeigt, sodass Sie entscheiden können, welche Repräsentation der Zeile Sie beibehalten möchten.
In der Praxis sind Bearbeitungskonflikte jedoch recht selten, da die Anzahl der Änderungen im Vergleich zur Menge der geographischen Daten gering ist. In ordnungsgemäß entworfenen Arbeitsabläufen sind die Kosten für die Abgleichungskonflikte gering im Vergleich zu den Einsparungen, die durch das Wegfallen von Sperren und dem Auschecken von Daten für die Dauer einzelner Transaktionen entstehen.
Nachdem Sie den Abgleich abgeschlossen haben, können Sie die Änderungen zurückschreiben. Dabei werden die vorgenommenen Änderungen auf die andere Version angewendet. Wenn Sie die Version, aus der das Zurückschreiben erfolgte, nicht mehr benötigen, können Sie sie löschen. Sie können sie auch weiter bearbeiten und später erneut Änderungen abgleichen und zurückschreiben.
Je nach den Berechtigungen, die für die Versionen im Beispiel mit dem Qualitätssicherungsprojekt zugewiesen wurden, verläuft der logische Workflow zum Abgleichen und Zurückschreiben von den Projektversionen zur Qualitätssicherungsversion und dann zur DEFAULT-Version.
Versionen: Beispiel
Beachten Sie dieses Szenario aus einem städtischen Wasserversorgungsunternehmen zur Veranschaulichung der Verwendung von Versionen. Der Wasserversorger verfügt über eine Geodatabase mit Features, die den aktuellen Zustand aller Wasserleitungen, Ventile, Pumpen und anderen Bestandteile des Wassersystems darstellen. Der Versorger muss dem Wassersystem eine neue Verlängerungsleitung hinzufügen.
Aus der DEFAULT-Version wird eine neue Version erstellt und "Verlängerungsprojekt" benannt. Diese enthält die Pläne der neuen Verlängerung. Die Mitarbeiter des Versorgers sind sich jedoch nicht sicher, ob die Verlängerung mit 16-Zoll- oder 24-Zoll-Rohren ausgeführt werden soll. Aus der Version "Verlängerungsprojekt" wird daher eine Version erstellt, um den Entwurf mit 16-Zoll-Rohren zu untersuchen, und eine andere, um die Verwendung von 24-Zoll-Rohren zu untersuchen.
Letztlich wird ermittelt, dass mit 24-Zoll-Rohren der Wasserbedarf für 12 weitere Jahre gedeckt werden kann und die anfänglich höheren Baukosten gerechtfertigt sind. Der 24-Zoll-Entwurf wird genehmigt, auf Genauigkeit überprüft und anschließend in die Version "Verlängerungsprojekt" zurückgeschrieben.
Einige Monate später wird der Bau der neuen Verlängerungsleitung abgeschlossen. Um die veröffentlichte Version der Datenbank zu aktualisieren, wird die Version "Verlängerungsprojekt" auf Genauigkeit überprüft, abgeglichen und in die DEFAULT-Version zurückgeschrieben.