空間數(shù)據(jù)管理一直是GIS研究的重點,隨著人們對地理空間認知程度的加深以及計算機技術的飛速發(fā)展,目前空間數(shù)據(jù)管理方式已經(jīng)脫離了傳統(tǒng)的文件系統(tǒng),直接由數(shù)據(jù)庫系統(tǒng)統(tǒng)一管理。由于空間數(shù)據(jù)庫規(guī)模擴大和用戶激增,GIS的數(shù)據(jù)處理工作流和數(shù)據(jù)共享機制需要長事務支持,以完成多用戶同時對空間數(shù)據(jù)的編輯修改和歷史數(shù)據(jù)的回溯管理。本文詳細分析了ESRI面向對象地理模型(Geodatabase)版本控制的基本原理,為有效控制多用戶并發(fā)操作沖突、維護空間數(shù)據(jù)的完整性和一致性、提高歷史數(shù)據(jù)的管理水平提供參考。
一、 Geodatabase簡介
地理數(shù)據(jù)模型是地理實體及其關系的形式化抽象和數(shù)學描述。隨著數(shù)據(jù)庫、面向對象等技術的發(fā)展,面向對象的地理數(shù)據(jù)模型成為大型空間數(shù)據(jù)庫的首選方案,它克服了傳統(tǒng)地理數(shù)據(jù)模型的局限性,將具有復雜結構的一個邏輯整體視為一個對象,提供了概念模型到邏輯數(shù)據(jù)模型以至物理模型的一致描述,從而大大提高了管理效率,同時也為版本管理、動態(tài)模式修改等功能的實現(xiàn)創(chuàng)造了條件。
Geodatabase是ESRI公司在其ArcGIS產(chǎn)品中引入的全新面向對象空間數(shù)據(jù)模型,是建立在標準關系型DBMS之上的統(tǒng)一的、智能化的空間數(shù)據(jù)庫。它在同一模型框架下對GIS通常所處理和表達的地理空間要素,如:矢量、柵格、三維要素、網(wǎng)絡及要素間的關系和拓撲規(guī)則等,進行統(tǒng)一的描述。圖1描述了Geodatabase中的元素及其組織。

Geodatabase是圖形數(shù)據(jù)和屬性數(shù)據(jù)的容器,它們?nèi)看鎯υ陉P系數(shù)據(jù)庫(RDBMS)中,而且針對不同的關系數(shù)據(jù)庫提供了Geodatabase的兩個不同版本:Personal Geodatabase(個人版)和Multiuser Geodatabase(多用戶版)。Personal Geodatabase基于微軟公司的Access數(shù)據(jù)庫實現(xiàn),方便高效,一個Geodatabase為一個mdb文件,由于受Access數(shù)據(jù)庫本身限制,Personal Geodatabase許多功能也受到限制;針對Oracle、SQLServer一類的大型數(shù)據(jù)庫,ESRI提供了Multiuser Geodatabase,并通過ArcSDE(空間數(shù)據(jù)引擎)完成對其的訪問操作。相對于Personal Geodatabase,Multiuser Geodatabase沒有存儲容量的限制,而且還支持多用戶在線編輯、工作流、版本管理等高級特性。總之,相比其它空間數(shù)據(jù)模型,Geodatabase具有如下的特點:
(1) 在同一數(shù)據(jù)庫中統(tǒng)一管理各種類型的空間數(shù)據(jù);
(2) 通過合法性規(guī)則檢查,空間數(shù)據(jù)的錄入和編輯更加準確;
(3) 空間數(shù)據(jù)更面向實際的應用領域;
(4) 可以表達空間數(shù)據(jù)之間的相互關系;
(5) 可管理連續(xù)的空間數(shù)據(jù),無需分幅、分塊;
(6) 支持空間數(shù)據(jù)的版本控制和多用戶并發(fā)操作;
正是由于Geodatabase的上述特點,使其廣泛應用于國土、規(guī)劃等各個領域。
二、版本控制原理隨著空間數(shù)據(jù)庫應用擴大和用戶激增,對空間數(shù)據(jù)的處理和應用不再局限于單機模式,而是在一個相互連接的網(wǎng)絡環(huán)境中進行,這大大提高了空間數(shù)據(jù)的共享程度,擴展了GIS的應用范圍,但由此而來的就是對于需要長時間、多步驟才能完成的海量空間數(shù)據(jù)的處理,如何才能保證其完整、一致;如何才能保證網(wǎng)絡中多個用戶對同一目標編輯修改的正確性;如何再現(xiàn)現(xiàn)勢數(shù)據(jù)多次變更的歷史過程,對于這一系列的問題,Geodatabase通過版本控制提供了完備的解決方案,提供了對GIS的數(shù)據(jù)處理工作流和長事務的支持,通過數(shù)據(jù)緩沖和提交時的取舍判斷有效協(xié)調(diào)(Reconcile)多用戶同時對空間數(shù)據(jù)編輯修改的并發(fā)操作,還可實現(xiàn)空間歷史數(shù)據(jù)的回溯管理。本文將以 Geodatabase為例,講述空間數(shù)據(jù)庫版本管理的基本原理。
所謂版本控制,就是記錄并管理數(shù)據(jù)庫在變更、演化過程中各個階段的狀態(tài)信息,一個版本就是數(shù)據(jù)庫在一個階段的邏輯快照,它并不復制數(shù)據(jù)庫,但卻反映數(shù)據(jù)庫在那一階段的全貌。對于建立在關系數(shù)據(jù)庫基礎之上的面向對象地理數(shù)據(jù)模型,其版本管理的實質是在關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中利用一組特定模式的關系表格,實現(xiàn)空間數(shù)據(jù)庫狀態(tài)信息的管理維護。
2.1.數(shù)據(jù)庫狀態(tài)
數(shù)據(jù)庫狀態(tài)是記錄數(shù)據(jù)庫變化的一個容器,當修改某一特定數(shù)據(jù)庫時,其變更即被標示為一個狀態(tài)。由于數(shù)據(jù)庫的變更總是從其前一狀態(tài)開始,因此記錄數(shù)據(jù)庫變更的一系列狀態(tài)就形成了一棵狀態(tài)樹。
對樹中的每個狀態(tài)結點,都具有打開和關閉兩種狀態(tài),對數(shù)據(jù)庫的任何增、刪、修改都只能在打開狀態(tài)下進行。
2.2.空間數(shù)據(jù)庫版本
空間數(shù)據(jù)庫版本是指向某一特定數(shù)據(jù)庫狀態(tài)的數(shù)據(jù)庫記錄,創(chuàng)建空間數(shù)據(jù)庫的一個版本實際是生成并選擇了空間數(shù)據(jù)庫的某一狀態(tài),從而產(chǎn)生了整個空間數(shù)據(jù)庫的邏輯快照,DBMS通過維護各個版本的狀態(tài)信息使用戶在各版本中進行獨立的事務處理而互不影響。
當不同用戶編輯不同版本空間數(shù)據(jù)庫時,所有中間結果都緩存在各自的數(shù)據(jù)庫狀態(tài)之中,當對數(shù)據(jù)庫編輯完畢并提交數(shù)據(jù)成果時,空間數(shù)據(jù)庫管理系統(tǒng)通過對比各版本所指向的數(shù)據(jù)庫狀態(tài),檢查各狀態(tài)下空間數(shù)據(jù)庫的修改內(nèi)容,并以交互方式或事先設定好的取舍方案保留不同版本中的變更要素,這種協(xié)調(diào)機制解決了不同狀態(tài)中因對同一記錄的修改而引起的版本沖突,保證空間數(shù)據(jù)庫的完整一致性,實現(xiàn)多用戶對空間數(shù)據(jù)的并發(fā)操作、長事務處理,通過追蹤不同版本的數(shù)據(jù)庫狀態(tài)還可以實現(xiàn)歷史數(shù)據(jù)回溯等多項功能。
2.3.版本管理關系模式
對于通過記錄數(shù)據(jù)庫狀態(tài)維護空間數(shù)據(jù)庫版本的邏輯思想,在關系型數(shù)據(jù)庫中可以通過一組特定模式的關系表格在整個空間數(shù)據(jù)庫和要素層兩個層次上來控制實現(xiàn)。
對于Geodatabase空間數(shù)據(jù)庫,在數(shù)據(jù)庫層次上,系統(tǒng)利用VERSIONS,STATES,STATE_LINEAGES三個表分別記錄空間數(shù)據(jù)庫每個版本的名稱、創(chuàng)建者、創(chuàng)建時間、所指向的數(shù)據(jù)庫狀態(tài)以及數(shù)據(jù)庫狀態(tài)間的線索聯(lián)系等信息,同時還提供了利用一個名為MVTABLES_MODIFIED的表記錄那些被修改過的空間數(shù)據(jù)庫中的表以加速數(shù)據(jù)提交時的沖突判斷,提高數(shù)據(jù)提交效率。這四個表為整個系統(tǒng)所共享。
在要素層層次上,則利用BASE,ADDITIONS,DELETIONS三張表格和它們的版本化視圖,其中BASE表記錄原始狀態(tài)的數(shù)據(jù),ADDITIONS和DELETIONS分別記錄對BASE表的增加和刪除等修改信息,版本化視圖則提供以上三個表格重構的特定數(shù)據(jù)庫版本的內(nèi)容。
圖3給出了用于實現(xiàn)Geodatabase版本控制的數(shù)據(jù)庫模式的關系結構圖,該圖雖然是Geodatabase版本管理的實現(xiàn)模式,但它同樣表示了建立在關系數(shù)據(jù)庫基礎上的面向對象地理數(shù)據(jù)模型版本管理實現(xiàn)的一般方法。

2.4.控制過程示例
在對版本控制基本理論介紹之后,本節(jié)作者給出一個Geodatabase版本控制的過程示例,說明了版本控制如何應用于多用戶同時對空間數(shù)據(jù)庫的操作以及歷史數(shù)據(jù)回溯管理。
設有A、B兩用戶共同操作一個Geodatabase的V0版本:首先用戶A創(chuàng)建新版本,向其中增加1、2兩個要素,并提交數(shù)據(jù);接著B用戶生成新版本,增加3號要素、修改2號要素;與此同時,A再次生成新版本,刪除2號要素、修改1號要素并提交;最后B提交數(shù)據(jù)成果。對上述的各步操作,圖4給出了數(shù)據(jù)庫狀態(tài)樹圖示,表1給出Geodatabase的版本、內(nèi)容以及相應數(shù)據(jù)庫狀態(tài)變化的全過程。
上述的實例中,當用戶B最終提交數(shù)據(jù)成果時,其版本中的1、2號元素和V0版本中的產(chǎn)生沖突,用戶可選擇自己的協(xié)調(diào)方案,取舍用戶的修改結果,表1給出了用戶B接受V0版本中1號元素,使用V2中2號元素這一方案下的結果。

該示例描述了多用戶對空間數(shù)據(jù)庫的并發(fā)操作,以及版本沖突時確保數(shù)據(jù)完整一致的協(xié)調(diào)解決方法,用戶可通過追蹤上表中空間數(shù)據(jù)庫的各個狀態(tài),獲取任一狀態(tài)的數(shù)據(jù)庫變更情況,從而實現(xiàn)歷史數(shù)據(jù)的回溯與管理。
三、應用實例
廣州市國土信息數(shù)據(jù)庫管理系統(tǒng)是廣州市國土資源和房屋管理局信息化建設的重要組成部分,為廣州市國土資源數(shù)據(jù)提供了標準化的集中管理,并且建立起了國土數(shù)據(jù)生產(chǎn)、入庫、更新、分發(fā)和應用的完整機制,為全局的業(yè)務辦理提供了最大程度的自動化和數(shù)據(jù)服務。系統(tǒng)主要具有如下特征:
① 數(shù)據(jù)量大:系統(tǒng)存儲并管理了整個廣州市1:500到1:10000等不同比例尺的地形地籍、土地利用現(xiàn)狀、土地利用規(guī)劃、房地產(chǎn)測繪以及用地紅線等各類圖形及其屬性數(shù)據(jù);
② 變更頻繁:由于廣州市城市建設發(fā)展日新月異,土地的利用類型、權屬和面積等也都將頻繁發(fā)生變化,系統(tǒng)需要保持各類數(shù)據(jù)的現(xiàn)勢性,同時還要記錄相應的歷史情況;
③ 多用戶操作及長事務處理:由于系統(tǒng)為整個廣州市國土資源和房屋管理局的各個處室提供空間數(shù)據(jù)服務,且各部門對數(shù)據(jù)的操作通常需要較長時間的多個連續(xù)步驟才能完成,保證多用戶同時操作空間數(shù)據(jù)庫并保持空間數(shù)據(jù)的完整一致性是系統(tǒng)的基本要求;
針對廣州市國土信息數(shù)據(jù)庫管理系統(tǒng)的功能特征,在系統(tǒng)的開發(fā)建設中就充分利用了空間數(shù)據(jù)庫的版本管理技術,有效的解決了上述問題。
系統(tǒng)開發(fā)的軟件環(huán)境為:應用服務器操作系統(tǒng)Windows 2003 Server,數(shù)據(jù)服務器操作系統(tǒng)SOLARIS,開發(fā)語言為VB.NET,支撐平臺ArcGIS Engine,ArcSDE,Oracle9i。硬件環(huán)境為:應用服務器內(nèi)存512M、CPU P4 2.8G,數(shù)據(jù)服務器為內(nèi)存1G的SUN880小型機。
系統(tǒng)將海量的空間數(shù)據(jù)存儲在小型機的Oracle數(shù)據(jù)庫中,并在管理系統(tǒng)中通過 ArcSDE接口訪問操作空間數(shù)據(jù)庫,圖3為該系統(tǒng)運行的主界面,在這個管理系統(tǒng)中,用戶可完成數(shù)據(jù)的檢查、入庫、編輯與更新,還可對空間歷史數(shù)據(jù)進行回溯管理,用戶可以瀏覽不同時期的數(shù)據(jù)版本,還可以根據(jù)需要選擇對比不同版本的數(shù)據(jù)情況或者將一段時間的版本整理合并,圖4中就顯示了兩個不同版本空間數(shù)據(jù)對比顯示的情況,紅色線框所圍的兩個地塊是先前的版本,在另一個版本中它們被合并成了一個地塊;除了具備管理功能,系統(tǒng)還提供了一組空間數(shù)據(jù)訪問接口,為局內(nèi)各處室建立業(yè)務應用系統(tǒng)訪問操作空間數(shù)據(jù)提供了通道,在這些接口的實現(xiàn)中,也充分利用了ArcGIS的版本管理功能,確保了整個空間數(shù)據(jù)庫為全局所有用戶提供穩(wěn)定的并發(fā)處理,并且較好解決了多用戶操作的版本沖突,維護了空間數(shù)據(jù)的完整性、一致性。
四、結論
Geodatabase版本管理充分利用了DBMS特性,是大型空間數(shù)據(jù)庫管理的一項基本技術,能有效的控制多用戶并發(fā)操作的沖突,簡化沖突的解決機制,實現(xiàn)歷史數(shù)據(jù)的回溯管理,同時還維護了空間數(shù)據(jù)的完整性和一致性,可廣泛應用于大型空間數(shù)據(jù)庫的建設。
參考文獻[1]王家耀.空間信息系統(tǒng)原理[M].北京:科學出版社2001.
[2]馮建華等.數(shù)據(jù)庫系統(tǒng)設計與原理[M].北京:清華大學出版社2004.
[3]徐立臻、徐宏炳.面向對象數(shù)據(jù)庫系統(tǒng)中的版本管理[J].東南大學學報,1999,29(3):34-38
[4]徐保民,徐愛琴.協(xié)同編輯器中版本管理的設計與實現(xiàn)[J].計算機工程與應用,2002(5):134-136
[5] M.E. Easterfield, R.G. Newell. Version Management in GIS Applications and Techniques[A]. Harts.EGIS'90 Conference Proceedings[C]. Amsterdam:EGIS Foundation,1990.288-297.
[6] ESRI中國(北京)有限公司.ESRI ArcGIS國土信息系統(tǒng)解決方案[EB/OL]. http://www.esrichina-bj.cn/library/index.htm
Principles of Geodatabase Version Control
Ren Juan 1 Yang Ping 2
1. Land and Resource Information Center of Guangdong Province, Guangzhou 510075
2. Real estate Surveying and Mapping Office of Guangzhou, Guangzhou 510030
Abstract: Along with the development of GIS, Multi-user concurrent operation, long transactions and historical data backtracking management have become basic requirements of the large spatial database. Through Geodatabase version control, ESRI can provide effective resolution to meet above requirements. The basic principle of Geodatabase version control is analyzed in this paper, providing references for the construction and management of large spatial database and the development of a new object-oriented spatial database management system.Keywords: GIS; Spatial Database; Geodatabase; Version control