天天看點

ArcSDE 注冊與壓縮

ArcSDE 版本編輯在國土行業資料管理中有着廣泛的應用,比如說一份資料被多個使用者同時編輯也能得到正确的結果。這種支援多使用者的操作,可以滿足國土部門日常對資料管理以及維護的需要。本文檔對ArcSDE 的注冊、反注冊、壓縮等操作做簡要的介紹。比如在資料編輯的過程中,會保留一些記錄資訊,不斷的編輯會導緻這些資訊不斷的膨脹,又如何去除這些記錄資訊呢?ArcSDE 版本的管理可以很好的解決這些問題。

u 版本簡介

簡單的說,版本(version)就是在ArcSDE 服務的基礎上實作多使用者編輯地理資料庫。地理資料庫在入到伺服器後,如果要使用版本,必須注冊後方可允許編輯。版本具有以下的特點:

²  所有版本的父親都是“default”版本(可以了解為最初的地理資料庫),可以衍生出若幹子版本,子版本又可成為“父版本”。

²  版本之間的本質差別是所記錄的行狀态的不同(狀态分為增、删以及改三種)。

多個子版本向父版本送出資料的時候,會發生沖突,比方界址點的位置畫的不一緻,在送出的時候就會彈出提示框,判斷采取何種畫法。但在實際的應用中,此種沖突并不多見,因為作業隊大都是分區域工作的,在送出編輯成功時,一般不會發生沖突的現象。

u 版本工作原理

前面說過,版本之間的本質差別是所記錄的行狀态的不同(狀态分為增、删以及改三種),維護這些狀态資訊的表存放在ArcSDE 中,稱之為Delta 表,Delta 表根據記錄資訊不同而分為A 表和D 表。A 表記錄的是增加和更新的資訊,D 表記錄的是删除和更新的資訊。ArcGIS記錄Delta 表中的記錄屬于哪個Version 的辦法是:A 表和D 表的每一行都用State ID 進行辨別。當編輯一個版本時,産生一個新的State,同時産生新的一行添加到A 表或者D 表。一個系列的States 記錄了版本從業務表(Base 表)到目前的狀态,該系列稱為Lineage。當你顯示或者查詢一個Version 時,ArcGIS 從版本Lineage 中得到State ID,然後從A 表和D 表中找到相應的資訊。

注:ArcSDE 有三類表:F 表記錄幾何資訊,B 表儲存屬性資訊,S 表儲存空間索引資訊。

三張表之間通過關鍵字進行關聯。

u 注冊

之前我們主要是介紹了一下版本,是因為注冊與版本之間類似于鎖鑰的關系,隻有了解透了鎖的作用後,才能更好的了解鑰的作用。通過注冊這把鑰,才能打開版本這把鎖。若想進行資料的版本化管理,必須先對資料進行注冊。目前大多數國土局都使用版本管理資料,是以,地籍軟體在資料庫,強制性的要求進行一次注冊操作,否則無法進行編輯操作。

u 反注冊

在反注冊的過程中,如果沒有儲存編輯的資料,則會丢失編輯的資料,是以在反注冊之前需要将資料進行壓縮儲存在base 表中,或者将編輯送出到Default 版本中。為了防止意外,在進行反注冊的過程中會提示進行壓縮操作。地籍軟體中也展現了此點。

u 資料壓縮

Delta 表的大小和State 的數量會随着編輯Geodatabase 不斷的在增加,Delta 表與State越多,每次處理時的速度就越慢,是以應該定期進行資料庫壓縮,注意,能進行壓縮的操作隻能是SDE 使用者。壓縮操作會删除所有不再被版本引用的資料庫狀态并将Delta 表中的所有記錄移到基本表Base 表中。資料壓縮可以了解為将紅旗拿到綠旗的位置,也就是資料的最終狀态,此時的反注冊才是保險的。同樣,對反注冊後的資料進行壓縮時沒有意義的。

在ArcGIS 中,将資料注冊後,多個使用者可以通過版本通路地理資料庫中的地理資料。多個使用者可以同時編輯相同的要素或記錄,而不用顯式用鎖防止其他使用者修改相同資料。版本化的操作大體過程是:多使用者的操作會産生沖突,将沖突進行調和并送出編輯形成最終的資料。資料經過一段時間的編輯後,會增大系統表的容量,使用壓縮操作就可以減少資料的

容量。反注冊将資料退回到編輯之前的狀态。

u 使用ArcCatalog 進行注冊、反注冊及壓縮

    1、注冊。選中需要注冊的資料集,可以使用滑鼠右鍵進行注冊,選中需要注冊的資料集,右鍵,選中“Register As Versioned”指令即可,如圖:

ArcSDE 注冊與壓縮

注冊後會在資料庫中多Delta 表,Delta 表包括A表,D表(資料集有三個Featureclass是以有三組Delta表)我安裝的Oracle資料庫,會在Oracle的SDE表空間中檢視到這三組,如圖:

ArcSDE 注冊與壓縮

進行版本編輯之前,先進行注冊。否則版本編輯就沒有任何意義.在ArcMap中用Version1的版本進行添加了倆條記錄,再檢視SDE中的A表,會發現多了倆條記錄(添加了倆條線),相應的删除記錄也會在D表中添加記錄

ArcSDE 注冊與壓縮

如何要檢視該編碼33指定是哪個版本,可以通過SDE表空間中SDE.VERSIONS表檢視

ArcSDE 注冊與壓縮
ArcSDE 注冊與壓縮

補充:

SDE表空間表對應FeatureClass中的各個屬性和參考

比如:

1、代表空間參考表SDE.ST_SPATIAL_REFERENCES

2、代表圖層資訊表SDE.LAYERS