Kurzer Überblick über die Versionierung
Dieses Thema gilt nur für ArcGIS for Desktop Standard und ArcGIS for Desktop Advanced.
Die Versionierung ermöglicht es mehreren Benutzern, dieselben Daten in einer ArcSDE-Geodatabase zu bearbeiten, ohne Sperren anwenden oder Daten duplizieren zu müssen.
Zum Bearbeiten von Feature-Classes in einer Topologie, in einem Netzwerk-Dataset oder in einem geometrischen Netzwerk oder zum Bearbeiten eines Parcel-Fabric müssen Sie die Daten als versioniert registrieren. Wenn Sie ein Feature in einem Netzwerk, in einer Topologie oder in einem Parcel-Fabric bearbeiten, werden nicht alle Features gesperrt, was bedeutet, dass andere Bearbeiter einen anderen Teil des Netzwerks, der Topologie oder des Parcel-Fabric bearbeiten können und diese Änderungen eventuell mit Ihren Änderungen in Konflikt stehen.
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 Strategien zum Workflow 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 Versions-Manager gezeigt, auf das Sie über ArcGIS for Desktop zugreifen können. In diesem Beispiel wird die Strukturansicht des Dialogfeldes veranschaulicht: Die DEFAULT-Version sowie vier andere Versionen und die Beziehung der Versionen untereinander werden dargestellt. Die Versionen "Cases" und "Base" sind Child-Versionen der DEFAULT-Version. Die Versionen "Case1" und "Case2" sind Child-Versionen der Cases-Version.
Beim Erstellen einer Version erhalten Sie unter Umständen fälschlicherweise den Eindruck, dass Sie eine Kopie der gesamten Geodatabase 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.
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 ganzzahligen 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 (Abstammung) 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 ausführen, um nicht verwendete Daten zu löschen. Anschließend müssen die Datenbankstatistiken mit dem Befehl Analysieren 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. Auf Delta-Tabellen kann mit den Anwendungen nicht zugegriffen werden. Wenn Sie die Versionierung verwenden und die Änderungen nicht in die Basistabelle verschieben, umfassen diese Anwendungen keine Änderungen, 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 Eigentümer der Version (also die Person, die die Version erstellt) kann festlegen, welche Benutzer auf die Version zugreifen können. Die Optionen im Bereich Zugriffsberechtigungen lauten wie folgt:
- Privat: Nur der Eigentümer der Version kann die Datasets in dieser Version anzeigen und ändern.
- Geschützt: Jeder Benutzer kann die Datasets in der Version anzeigen, jedoch nur der Eigentümer kann diese ändern.
- Öffentlich: Alle Benutzer können die Datasets anzeigen und ändern, sofern Ihnen eine Berechtigung für die Datasets vorliegt.
Der Versionszugriff wird beim Erstellen der Version festgelegt. Allerdings kann dieser auch im Dialogfeld Versions-Manager geändert werden. Unter Erstellen von Versionen und Festlegen von Berechtigungen und Versionseigenschaften finden Sie weitere Informationen.
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. Nur Eigentümer von Daten können das Schema eines Datasets ändern.
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- 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 keine 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 Workflows 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.
Statt manuell abzugleichen, können Sie das Geoverarbeitungswerkzeug Version abgleichen verwenden, um mehrere Versionen abzugleichen, oder ein Python-Skript verwenden, um Versionen im Batch-Verfahren abzugleichen und zurückzuschreiben.
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 ist 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.