ArcSDE版本化

什麼是版本化

參考文檔:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/003n000000tq000000/
https://blog.csdn.net/kone0611/article/details/50259599
1、版本是整個地理數據庫在某個時刻的快照,其中包含地理數據庫中的所有數據集。
版本不僅僅備份地理數據庫。相反,版本及其內部進行的事務可通過系統表進行追蹤。這樣可隔離用戶在多個編輯會話中的工作,使得用戶進行編輯時不必鎖定生產版本中的要素或直接影響到其他用戶,且無需備份數據。
(個人認爲:版本化是針對多用戶對同一數據進行編輯時採用的一種數據管理方式。)

2、適用條件:僅支持企業地理數據庫(ArcSDE地理數據庫),而個人地理數據庫、文件型地理數據庫不支持;

3、版本的分類:
(1)DEFAULT 版本:每個 ArcSDE 地理數據庫都具有一個被稱爲 DEFAULT 的默認版本,默認情況下將連接到 DEFAULT 版本。因此,始終會爲地理數據庫啓用版本化。

與其他版本不同,DEFAULT 版本始終存在,且不能被刪除。在大多數工作流策略中,它是數據庫的發佈版本,表示要建模的系統的當前狀態。您可以將其他版本中的變更提交到 DEFAULT 版本,從而逐步維護和更新 DEFAULT 版本。此外,您還可以像編輯其他版本一樣,對 DEFAULT 版本直接進行編輯。

(2)子版本:從任意現有版本創建子版本或分支版本的方式來創建版本,如可以通過創建 DEFAULT 版本的子版本來創建第一個版本。子版本會從父版本從繼承所有相關數據。一個創建好的版本樹如下:版本管理器
https://images.cnitblog.com/blog/21794/201310/21163831-25b8a816349e477eb1b65904fe2a0893.png
一個地理數據庫可以有多個版本。上圖是版本管理器 對話框,可通過 ArcGIS for Desktop 對其進行訪問。本示例顯示了對話框的樹視圖,描繪了 DEFAULT 版本和其他四個版本以及這些版本的關聯方式。Cases 版本和 Base 版本是 DEFAULT 版本的子版本,而 Case1 和 Case2 版本則是 Cases 版本的子版本。

4、版本的控制原理

數據集(要素類、要素數據集或表)註冊爲版本後,數據庫中將會創建兩個增量表:用於插入和更新的 A(添加)表以及用於刪除的 D(刪除)表。每次更新或刪除數據集中的記錄時,都會向這兩個表或其中一個表添加行。如:我在數據庫中新建了一個Line要素類,然後將其註冊爲版本後,數據庫中出現瞭如下兩個表:a8,D8,8代表該要素類在[SDE_table_registry]表中的數據集的ID。

總的來說,基表、A 表和 D 表中的所有行表示要素類或表的所有版本。這表示任何一個版本都只能引用這三個表中的行的子集

A 表和 D 表中的各行使用被稱爲狀態 ID 的整型標識符進行標記,以在向表中添加行時提供參考。每次編輯版本時均會創建新的狀態,並向這兩個增量表或其中一個增量表添加新行。狀態可被看作是樹結構的一部分,在樹結構中,各分支記錄了版本的發展情況。記錄版本從基表到當前狀態之間一連串變更的一系列狀態稱爲譜系。顯示或查詢版本時,ArcGIS 會查詢版本的譜系以獲取狀態 ID,然後從 A 表和 D 表中檢索正確的記錄。

幾個專業術語:

父版本:是生成其他版本時所基於的地理數據庫版本。如果剛纔提到的其他版本仍然存在,則無法刪除父版本。

子版本:是通過父版本創建的地理數據庫版本。最初創建時,子版本包含與父版本相同的數據,狀態與父版本相同。在子版本中進行編輯後,通常會將這些編輯內容回發到父版本。

增量表:數據集的添加表和刪除表統稱爲增量表,因爲它們用於存儲對數據集所做的更改。

刪除表:可記錄在版本化數據集中所做的所有刪除。它還包含已更新記錄的記錄,因爲更新記錄的過程就是先刪除原有記錄,然後再添加修改過的記錄,因此更新記錄等同於刪除記錄。刪除表也稱爲 D 表。

基表:基表是要素類的核心表。它包含所有非空間屬性,如果使用 SQL 幾何類型,則它還包含空間屬性。術語“基表”用於將該核心表與其他端表(例如增量表、ArcSDE XML 表或 sdebinary 幾何存儲類型使用的 f 和 s 表)區分開來。基表也稱爲業務表。

5、如何註冊爲版本

在某個數據集上點擊右鍵,選擇創建爲版本

點擊創建爲版本後,會彈出如下對話框:勾選入基表

如果此處勾選,則在以後的編輯中,如果點擊保存,則所有數據將自動保存到基表中,並刪除所有在增量表的數據;如果不勾選,則保存後所有數據數據不會提交到基表中,

如果要查詢當前已經審覈入庫的所有數據只能通過查詢視圖的方式(視圖爲:數據集名稱_VW)。

6、如何切換版本

在將數據加載到地圖後,在TOC控件中,點擊”List by Source”視圖,可以看每個數據集的來源,如下圖,要素類pnt來源不同的版本:
https://images.cnitblog.com/blog/21794/201310/21163834-033f912db718486ba5b5575f3bf88482.png

那麼如何切換不同的版本進行編輯呢?我們可以在TOC控件中的數據上,點擊右鍵,並切換版本:

https://images.cnitblog.com/blog/21794/201310/21163834-a8c10465f3cf466080b5dda17629c29f.png,點擊切換版本,將彈出我上圖的版本管理視圖:

https://images.cnitblog.com/blog/21794/201310/21163835-c6a7ef49e60349dd9c1761fb9e980b39.png

7、版本的衝突與協調

在編輯工具欄中,選擇“Options”可以設置處理衝突的方式,可以看出ArcGIS支持在行級別以及屬性級別進行衝突處理,而提交的順序支持按照入庫順序或者編輯順序進行處理。

具體項目中要選擇哪種方式,應該具體情況具體分析。如圖:

https://images.cnitblog.com/blog/21794/201310/21163836-c66d3c20aa374ecf95f8d9ab0c9edd4c.png

https://images.cnitblog.com/blog/21794/201310/21163837-e9abbb8d243f4c7c96f2376ee7c7a803.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章