關健,王曉靜
(撫順市勘察測繪院,遼寧撫順 113008)
ArcSDE數據的應用
——歷史庫更新過程
關健?,王曉靜
(撫順市勘察測繪院,遼寧撫順 113008)
介紹了ArcSDE數據庫的邏輯結構和歷史庫更新的原理,主要說明ArcSDE數據在ArcGIS中歷史庫更新的過程。
ArcSDE數據庫;ArcGIS;歷史庫;數據更新
隨著城市建設和經濟社會的不斷發展,城市面貌在無時無刻地發生著改變,我們必須準確、及時地跟蹤這種變化,將其及時反映到空間基礎數據庫中,只有這樣,才能滿足各行各業對城市空間基礎數據的需求,所建設的數字城市空間基礎數據庫才有生命力。簡單地說,數據更新就是用新的數據取代舊的數據。城市空間基礎數據庫更新的核心問題有兩個:一是如何用新的數據取代數據庫中已有的數據;二是如何保存歷史數據,并根據需要進行歷史數據的回溯。我院現階段地形圖數據更新方法是采用分幅更新的方法,采取這種方法的缺點是,產生大量的數據文件,數據的調用和漫游要頻繁地聯接各個圖幅文件,當范圍較大、圖幅數很多時,將導致數據庫的聯接速度非常慢,以至于不可用。因此,對于這種范圍大、數據量大的基礎數據,如1∶500地形圖數據,采用分要素(即分層)組織進行。在ArcGIS下建庫管理的方法更科學、實用,ArcGIS 9.2新增加歷史庫更新的功能,可以避免分幅存儲的弊端,提高系統運行效率。本文主要介紹ArcSDE數據在ArcGIS中歷史庫更新的過程。
ArcSDE在多用戶DBMS上新建一個SDE服務時產生了一個多用戶GeoDatabase模型,為了實現該模型,ArcSDE會在DBMS中新建互相關聯的61個字典表和多個觸發器對象。
以SQL Server作為數據庫為例,ArcSDE在SQL Server中建立的字典表分為兩部分,一是以GDB開頭的系統表,它們與數據存儲有關;其他均為輔助表,用于記錄顯示信息、XML、License許可等信息。
在系統表中,有如下幾個重要的字典表:
GDB_OBJECTCLASSES表,該表記錄存儲在SDE中所有的對象類(objectclass)信息,包括這些對象類在數據庫中的唯一索引號。
GDB_FEATURECLASSES表,該表中記錄的對象類均為要素類;GDB_FEATUREDATASET表,記錄GeoDatabase中存在的要素數據集。

圖1 一個要素類的組成關系圖
GEOMETRY_COLUMNS表是一個關聯表,用于關聯一個要素類的B表和F表。要素類是一個邏輯概念,它并不是一張表組成的,而是通過如下幾個表共同維護,以要素類Test為例,它的組成表包括:
(1)Business Table——即B表,業務表的表名與要素類名相同,為Test。它在邏輯上表現要素類,它存儲了要素類所有的非空間信息和空間字段SHAPE,該字段并不存儲實際的空間數據,而是一個指向該要素類F表的索引值。
(2)Feature Table——即F表,它存儲一個要素類的空間信息和元數據。這些表以F開頭,如F110,110則是要素類在SDE中的唯一索引號。要素類中的空間信息由F表的POINTS字段存儲,它是Long Raw類型,用于保存二進制文件。
(3)Spatial Index Table——即S表,空間索引表,存儲索引相關的信息,ArcSDE使用網絡索引機制。
(4)Delta Table——如果一個要素類被注冊為版本(Version),則就會出現Delta表,這種表有兩種類型,即A表——Add Table,用于記錄被添加的要素類和D表,用于記錄被刪除的要素類。
當用戶通過ArcSDE在一個要素類中編輯要素的時候,B、F和S表(如果使用了版本機制,還有Delta表)會通過一種被稱為Trigger(觸發器)的過程性約束進行互動。如B表中刪除一條要素后,F表和S表中的相應記錄也會被觸發器刪除。
ArcSDE數據進行注冊,注冊后創建歷史圖層,歷史圖層的數據是原圖層的拷貝,但可以看到多了3個字段:GDB_FROM_DATE,GDB_TO_DATE,GDB_ARCHIVE_OID??吹竭@3個字段,前面兩個字段際是指明了圖形對象的存活時間,GDB_FROM_DATE即圖形的創建時間,GDB_TO_DATE是圖形的刪除或修改時間。圖形的操作可分為增、刪、改三種類型,修改又可以看成是先刪除再新增一個圖形對象,所以所有的操作又可歸為增、刪兩種操作,這就是那兩個字段的由來。GDB_ARCHIVE_OID,是對象 ID編號。通過ArcSDE實現的版本空間數據庫不會從物理上刪除數據,它通過Delta表來監測不同版本情況下的要素變化,在歷史圖層上記載圖形的刪除時間。在版本Geo-Database數據庫中,對一個要素類的編輯有如下幾種情況:
(1)插入一條要素,該要素的信息將被記錄在A表中;
(2)刪除一條要素,該要素的信息將被記錄在D表中;
(3)更新一條要素,更新要素是一個先刪除后插入的過程,ArcSDE會先在D表中記錄舊要素的信息,然后在A表中記錄新要素的信息。
首先需要安裝必要的軟件,主要有 SQL Server 2005、ArcGIS 9.2 Desktop、ArcSDE9 For Sql Server。更新歷史庫的具體步驟如下:
第一步,要建立數據連接 Add Spatial Database Connection,將地形圖數據導入新建數據集(Feature DataSet)中;
第二步,版本注冊,打開ArcCatalog新建一個到默認版本的連接,然后選擇該圖層,點擊右鍵,在彈出菜單中點擊Register As Versioned,這一點與9.1版本中一樣的,只有注冊版本,才能進行下一步“創建歷史庫”;
第三步,創建歷史庫,在 ArcCatalog中選擇該圖層,點擊右鍵,發現Archiving,包含兩個子菜單,Enable Archiving和Disable Archiving。點擊Enable Archiving,這時系統會自動為該圖層創建一個對應的歷史圖層,歷史圖層的名稱為SDE.SDE.ZD_H。
第四步,啟用歷史編輯選項,在ArcCatalog中,點擊Tools菜單下的Options,在“選項”窗口中,切換到Geoprocessing頁,選中Log geoprocessing operations to as historical model,這樣我們在編輯圖形時,編輯過程中產生的歷史數據會自動記錄到歷史圖層中。
第五步,編輯圖形,全部建完,就可以進行數據更新了,打開ArcMap,選擇圖層,將有變化的圖形進行刪除,增加更新的圖形,編輯完成后,Save Edit;
第六步,新建一個到歷史數據庫的連接,在Arc-Catalog或ArcMap的選擇數據對話框中都可以完成。在ArcMap中點Source,在圖層上點右鍵,選擇Change Version,在Version Type中選擇Historical,或在ArcCatalog中,在圖層上點右鍵,選擇Connection Properties,選擇Change我們選擇The connection refers to a historical version,并選擇是連接到歷史標記還是指定一個時間點。
第七步:歷史數據瀏覽,連接建好了之后,在Arc-Map我們用該連接打開數據sde.sde.zd。在ArcMap工具欄上點擊右鍵,點擊Geodabase History,會出現歷史庫工具條,如圖,該工具條有3個按鈕,分別是:
(1)Geodatabase History Viewer:即歷史數據瀏覽工具。
(2)Add Historical Archive:即添加歷史圖層到地圖上。
(3)Historical Marker Manager:即歷史標記管理器。
點擊Add Historical Archive工具按鈕,會將選中圖層對應的歷史圖層添加到地圖窗口中,可以看到,歷史圖層包括了編輯過程中產生的所有數據。查看屬性,可以看到它的數據源為SDE.SDE.ZD_H,還可以到字段列表中查看新增的字段情況。筆者創建了三個歷史標簽,分別是“初始狀態”,“新建AB”,“刪除A移動B”,點擊Historical Marker Manager工具按鈕,這樣就會一目了然,如圖2所示。
點擊Geodatabase History Viewer,會出現圖3所示界面。如果你是用歷史連接添加數據,這個界面會處于不可用的狀態。

圖2 管理、編輯歷史標簽

圖3 選擇瀏覽歷史數據
在Historical Date and Time中,可以選擇一個歷史標記,也可以選擇一個具體的時間,點擊Apply按鈕,就可以查看該歷史時點的數據了。如圖4、5、6所示,顯示的是不同歷史時點的圖形狀況。

圖4 時間:16:20:09初始狀態

圖5 時間:16:22:50創建圖形A、B

圖6 時間:16:26:06刪除圖形A、移動B
ArcSDE是目前最流行的空間數據管理軟件之一,它抽象了空間數據對象模型,使用戶可以利用標準DBMS存儲和管理海量的空間數據。通過ArcGIS平臺可以直接按日期屬性查詢,查詢某一時期的地理數據,這樣不但保證數據的現勢性,還可以瀏覽任意歷史時間數據。空間數據庫的存儲和管理是一個復雜而長期的動態過程,還需要我們不斷地去研究,在以后的工作中逐漸去改進。
[1]吳秀芹,張洪巖,李瑞改等.ArcGIS9地理信息系統應用與實踐.北京:清華大學出版社,2007
[2]郭微,韓曉竹.城市基礎地理信息數據在ArcSDE中的更新研究.遼寧測繪,2008(1)
ArcSDE Application Data-the Update Process History Database
Guan Jian,Wang XiaoJing
(Fushun Surveying and Mapping Institute,Fushun 113008,China)
This paper introduces the logic of ArcSDE database structure and update the principles of the history of the Treasury,inter alia,arcgis in ArcSDE data in the process of updating the history database.
ArcSDE database;ArcGIS;the history of the Treasury;Data Update
1672-8262(2010)02-62-03
P208
B
2009—07—16
關健(1978—),女,軟件設計工程師,現從事數據管理及GIS開發應用工作。