空间数据管理一直是 GIS研究的重点,随着人们对地理空间认知程度的加深以及计算机技术的飞速发展,目前空间数据管理方式已经脱离了传统的文件系统,直接由 数据库系统统一管理。由于空间数据库规模扩大和用户激增,GIS的数据处理 工作流和数据共享机制需要长事务支持,以完成多用户同时对空间数据的编辑修改和历史数据的回溯管理。本文详细分析了ESRI面向对象地理模型(Geodatabase)版本控制的基本原理,为有效控制多用户并发操作冲突、维护空间数据的完整性和一致性、提高历史数据的管理水平提供参考。
一、 Geodatabase简介
地理数据模型是地理实体及其关系的形式化抽象和数学描述。随着数据库、面向对象等技术的发展,面向对象的地理数据模型成为大型空间数据库的首选方案,它克服了传统地理数据模型的局限性,将具有复杂结构的一个逻辑整体视为一个对象,提供了概念模型到逻辑数据模型以至物理模型的一致描述,从而大大提高了管理效率,同时也为版本管理、动态模式修改等功能的实现创造了条件。
Geodatabase是ESRI公司在其ArcGIS产品中引入的全新面向对象空间数据模型,是建立在标准关系型DBMS之上的统一的、智能化的空间数据库。它在同一模型框架下对GIS通常所处理和表达的地理空间要素,如:矢量、栅格、三维要素、网络及要素间的关系和拓扑规则等,进行统一的描述。图1描述了Geodatabase中的元素及其组织。
Geodatabase是图形数据和属性数据的容器,它们全部存储在关系数据库(RDBMS)中,而且针对不同的关系数据库提供了Geodatabase的两个不同版本:Personal Geodatabase(个人版)和Multiuser Geodatabase(多用户版)。Personal Geodatabase基于微软公司的Access数据库实现,方便高效,一个Geodatabase为一个mdb文件,由于受Access数据库本身限制,Personal Geodatabase许多功能也受到限制;针对Oracle、SQLServer一类的大型数据库,ESRI提供了Multiuser Geodatabase,并通过ArcSDE(空间数据引擎)完成对其的访问操作。相对于Personal Geodatabase,Multiuser Geodatabase没有存储容量的限制,而且还支持多用户在线编辑、工作流、版本管理等高级特性。总之,相比其它空间数据模型,Geodatabase具有如下的特点:
(1) 在同一数据库中统一管理各种类型的空间数据;
(2) 通过合法性规则检查,空间数据的录入和编辑更加准确;
(3) 空间数据更面向实际的应用领域;
(4) 可以表达空间数据之间的相互关系;
(5) 可管理连续的空间数据,无需分幅、分块;
(6) 支持空间数据的版本控制和多用户并发操作;
正是由于Geodatabase的上述特点,使其广泛应用于国土、规划等各个领域。
二、版本控制原理随着空间数据库应用扩大和用户激增,对空间数据的处理和应用不再局限于单机模式,而是在一个相互连接的网络环境中进行,这大大提高了空间数据的共享程度,扩展了GIS的应用范围,但由此而来的就是对于需要长时间、多步骤才能完成的海量空间数据的处理,如何才能保证其完整、一致;如何才能保证网络中多个用户对同一目标编辑修改的正确性;如何再现现势数据多次变更的历史过程,对于这一系列的问题,Geodatabase通过版本控制提供了完备的解决方案,提供了对GIS的数据处理工作流和长事务的支持,通过数据缓冲和提交时的取舍判断有效协调(Reconcile)多用户同时对空间数据编辑修改的并发操作,还可实现空间历史数据的回溯管理。本文将以 Geodatabase为例,讲述空间数据库版本管理的基本原理。
所谓版本控制,就是记录并管理数据库在变更、演化过程中各个阶段的状态信息,一个版本就是数据库在一个阶段的逻辑快照,它并不复制数据库,但却反映数据库在那一阶段的全貌。对于建立在关系数据库基础之上的面向对象地理数据模型,其版本管理的实质是在关系数据库管理系统(RDBMS)中利用一组特定模式的关系表格,实现空间数据库状态信息的管理维护。
2.1.数据库状态
数据库状态是记录数据库变化的一个容器,当修改某一特定数据库时,其变更即被标示为一个状态。由于数据库的变更总是从其前一状态开始,因此记录数据库变更的一系列状态就形成了一棵状态树。
对树中的每个状态结点,都具有打开和关闭两种状态,对数据库的任何增、删、修改都只能在打开状态下进行。
2.2.空间数据库版本
空间数据库版本是指向某一特定数据库状态的数据库记录,创建空间数据库的一个版本实际是生成并选择了空间数据库的某一状态,从而产生了整个空间数据库的逻辑快照,DBMS通过维护各个版本的状态信息使用户在各版本中进行独立的事务处理而互不影响。
当不同用户编辑不同版本空间数据库时,所有中间结果都缓存在各自的数据库状态之中,当对数据库编辑完毕并提交数据成果时,空间数据库管理系统通过对比各版本所指向的数据库状态,检查各状态下空间数据库的修改内容,并以交互方式或事先设定好的取舍方案保留不同版本中的变更要素,这种协调机制解决了不同状态中因对同一记录的修改而引起的版本冲突,保证空间数据库的完整一致性,实现多用户对空间数据的并发操作、长事务处理,通过追踪不同版本的数据库状态还可以实现历史数据回溯等多项功能。
2.3.版本管理关系模式
对于通过记录数据库状态维护空间数据库版本的逻辑思想,在关系型数据库中可以通过一组特定模式的关系表格在整个空间数据库和要素层两个层次上来控制实现。
对于Geodatabase空间数据库,在数据库层次上,系统利用VERSIONS,STATES,STATE_LINEAGES三个表分别记录空间数据库每个版本的名称、创建者、创建时间、所指向的数据库状态以及数据库状态间的线索联系等信息,同时还提供了利用一个名为MVTABLES_MODIFIED的表记录那些被修改过的空间数据库中的表以加速数据提交时的冲突判断,提高数据提交效率。这四个表为整个系统所共享。
在要素层层次上,则利用BASE,ADDITIONS,DELETIONS三张表格和它们的版本化视图,其中BASE表记录原始状态的数据,ADDITIONS和DELETIONS分别记录对BASE表的增加和删除等修改信息,版本化视图则提供以上三个表格重构的特定数据库版本的内容。
图3给出了用于实现Geodatabase版本控制的数据库模式的关系结构图,该图虽然是Geodatabase版本管理的实现模式,但它同样表示了建立在关系数据库基础上的面向对象地理数据模型版本管理实现的一般方法。
2.4.控制过程示例
在对版本控制基本 理论介绍之后,本节作者给出一个Geodatabase版本控制的过程示例,说明了版本控制如何应用于多用户同时对空间数据库的操作以及历史数据回溯管理。
设有A、B两用户共同操作一个Geodatabase的V0版本:首先用户A创建新版本,向其中增加1、2两个要素,并提交数据;接着B用户生成新版本,增加3号要素、修改2号要素;与此同时,A再次生成新版本,删除2号要素、修改1号要素并提交;最后B提交数据成果。对上述的各步操作,图4给出了数据库状态树图示,表1给出Geodatabase的版本、内容以及相应数据库状态变化的全过程。
上述的实例中,当用户B最终提交数据成果时,其版本中的1、2号元素和V0版本中的产生冲突,用户可选择自己的协调方案,取舍用户的修改结果,表1给出了用户B接受V0版本中1号元素,使用V2中2号元素这一方案下的结果。
该示例描述了多用户对空间数据库的并发操作,以及版本冲突时确保数据完整一致的协调解决方法,用户可通过追踪上表中空间数据库的各个状态,获取任一状态的数据库变更情况,从而实现历史数据的回溯与管理。
三、应用实例
广州市国土信息数据库管理系统是广州市国土资源和房屋管理局信息化建设的重要组成部分,为广州市国土资源数据提供了标准化的集中管理,并且建立起了国土数据生产、入库、更新、分发和应用的完整机制,为全局的业务办理提供了最大程度的自动化和数据服务。系统主要具有如下特征:
① 数据量大:系统存储并管理了整个广州市1:500到1:10000等不同比例尺的地形地籍、土地利用现状、土地利用规划、房地产测绘以及用地红线等各类图形及其属性数据;
② 变更频繁:由于广州市城市建设发展日新月异,土地的利用类型、权属和面积等也都将频繁发生变化,系统需要保持各类数据的现势性,同时还要记录相应的历史情况;
③ 多用户操作及长事务处理:由于系统为整个广州市国土资源和房屋管理局的各个处室提供空间数据服务,且各部门对数据的操作通常需要较长时间的多个连续步骤才能完成,保证多用户同时操作空间数据库并保持空间数据的完整一致性是系统的基本要求;
针对广州市国土信息数据库管理系统的功能特征,在系统的开发建设中就充分利用了空间数据库的版本管理技术,有效的解决了上述问题。
系统开发的软件环境为:应用服务器操作系统Windows 2003 Server,数据服务器操作系统SOLARIS,开发语言为VB.NET,支撑平台ArcGIS Engine,ArcSDE,Oracle9i。硬件环境为:应用服务器内存512M、CPU P4 2.8G,数据服务器为内存1G的SUN880小型机。
系统将海量的空间数据存储在小型机的Oracle数据库中,并在管理系统中通过 ArcSDE接口访问操作空间数据库,图3为该系统运行的主界面,在这个管理系统中,用户可完成数据的检查、入库、编辑与更新,还可对空间历史数据进行回溯管理,用户可以浏览不同时期的数据版本,还可以根据需要选择对比不同版本的数据情况或者将一段时间的版本整理合并,图4中就显示了两个不同版本空间数据对比显示的情况,红色线框所围的两个地块是先前的版本,在另一个版本中它们被合并成了一个地块;除了具备管理功能,系统还提供了一组空间数据访问接口,为局内各处室建立业务应用系统访问操作空间数据提供了通道,在这些接口的实现中,也充分利用了ArcGIS的版本管理功能,确保了整个空间数据库为全局所有用户提供稳定的并发处理,并且较好解决了多用户操作的版本冲突,维护了空间数据的完整性、一致性。
四、结论
Geodatabase版本管理充分利用了DBMS特性,是大型空间数据库管理的一项基本技术,能有效的控制多用户并发操作的冲突,简化冲突的解决机制,实现历史数据的回溯管理,同时还维护了空间数据的完整性和一致性,可广泛应用于大型空间数据库的建设。
参考文献[1]王家耀.空间信息系统原理[M].北京:科学出版社2001.
[2]冯建华等.数据库系统设计与原理[M].北京:清华大学出版社2004.
[3]徐立臻、徐宏炳.面向对象数据库系统中的版本管理[J].东南大学学报,1999,29(3):34-38
[4]徐保民,徐爱琴.协同编辑器中版本管理的设计与实现[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国土信息系统解决方案[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