基于ARCSDE的版本管理与历史回溯的设计与实现.doc

基于ARCSDE的版本管理与历史回溯的设计与实现.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARCSDE的版本管理与历史回溯的设计与实现

基于ArcSDE的版本管理与历史回溯的设计与实现 陆建波 ( 江苏欧索软件有限公司,江苏 南京,210029) 摘 要: 本文根据在国土资源管理信息系统中对数据并行编辑和时空数据管理需要,基于ESRI的SDE和ArcObjects提出了系统中版本管理和历史回溯的设计方案,利用C#和ArcObjects编程实现,并在苏州市国土资源管理信息系统中的进行应用,取得了理想的效果。 关键词:GIS;时空数据管理;版本管理;历史回溯 1 引言 在国土资源管理信息系统中时空数据管理一直是GIS技术应用的重点。目前,空间数据管理方式已脱离了传统的文件系统,直接由数据库系统统一管理,这使多用户并发操作成为可能。实现多用户并发操作的基础是并发控制,传统的数据库采用的悲观锁和乐观锁技术能解决一般数据操作的并发控制问题,但不太适用于GIS系统的长事务处理的需求。目前支持长事务处理的最有效的技术是在数据库引擎中引入版本管理。版本管理能同时完成数据备份、模拟不同场景与方案、保留历史记录等多重功能,在时空数据管理中应用较广,但对于GIS应用系统的某些功能需求也存在不足。 2 传统数据库的版本管理 单记录锁定是通过在数据库中增加一个“单记录锁定表”来实现的。“单记录锁定表”由两个字段组成,一个是记录的唯一标识码UID,另一个是锁定标识。“锁定标识”字段由用户编辑的版本名称和系统生成的流水号组成。要锁定某一条记录,只需将该记录的唯一标识码、正在编辑该记录的版本名称和编辑操作的系统流水号填入单记录锁定表的对应字段即可。单记录锁定的原则是先修改先锁定,即第一个编辑某记录的用户锁定该记录。当其他用户在自己的版本中编辑该记录并要保存编辑时,系统会提示该记录已被锁定,而不能对该记录进行编辑。直到用户提交自己的版本后,该记录才被解锁。现举例说明单记录锁定的工作流程:在版本A中,用户A对记录1进行编辑,分割生成记录2和3。在用户完成修改之前,记录1就被版本A锁定。如果版本B的用户B要对记录1进行编辑,这时因为记录1已经被锁定,用户B对记录1不能再作修改,直到用户A提交版本A。 单记录锁定方法的加锁过程主要包括判断记录是否锁定、进行加锁、保存并标识编辑结果3个步骤。通过在单记录锁定表中查找记录的UID是否存在,可判断记录是否锁定。通常有3种情况发生:(1)记录的UID在单记录锁定表中不存在,表示该记录未被编辑过,则继续进行加锁过程的后面步骤。(2)记录UID存在,表示此记录在该版本中曾被编辑过,但锁定标识字段中的版本名称不是用户正在编辑的版本,则用户只需要将该字段值中的流水号改成本次编辑对应的流水号,继续进行加锁过程的后面步骤。(3)记录UID存在,且锁定标识字段中的版本名称为用户正在编辑的版本,表示此记录正在被其他用户编辑锁定,该用户不能编辑,因此加锁过程的后面步骤不能进行。保存并标识编辑结果是指在用户编辑的版本中保存新生成的记录。由于在用户提交版本之前,其他用户不能编辑这些新生成的记录,因此,也要将这些记录添加到单记录锁定表中进行锁定,其锁定标识字段中的系统流水号与变更前记录的相同。按上例,在版本A中编辑记录1后,记录1记录,UID分别为1,2,3,而锁定标识字段都为A0032(0032为编辑操作对应的系统流水号)。 当用户提交版本后,编辑结果融合到Default版本中,这时,需对这些记录进行解锁,以便其他用户编辑。删除单记录锁定表中所有锁定标识字段中版本名称等于用户版本的记录,即完成记录的解锁过程。 3 ArcSDE中版本管理的基本原理 版本实际上是整个数据的快照,但不是数据库的硬拷贝,它只保存数据库中变化的内容,对于没有更新变化内容,只物理存储一次。在ArcSDE的数据库中,系统允许数据的多个版本同时存在,可为每个用户生成版本。用户在自己的版本中可对数据进行长时间的编辑,而不影响其他用户的操作,因此,可解决多用户并发操作和长事务处理问题。 在ArcSDE中,版本按树状结构组织,版本之间保持着父子关系,最上面的是“Default”版本,其他子版本都由此版本衍生下来。Default版本反映了数据库当前的状态,各子版本只保存了对数据库的修改,要使这些修改生效,必须向Default版本提交。当不同子版本用户修改同一记录并向父版本提交修改时,会产生冲突。解决版本之间的冲突是通过协调(Reconcile)和提交(Post)实现的。Reconcile是通过父版本来解决各子版本之间的冲突,即各子版本之间不直接进行冲突的协调,而是通过各子版本与父版本分别进行协调实现的。Post是将子版本的修改提交到父版本中去,并释放子版本的存储空间,解决过程是先协调后提交。 4基于ArcSDE的版本管理与历史回溯设计方案 系统中的版本管理与历史回溯是相互关联的,任何

文档评论(0)

juhui05 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档