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

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

ID:38711122

大小:145.00 KB

页数:4页

时间:2019-06-18

基于ARCSDE的版本管理与历史回溯的设计与实现_第1页
基于ARCSDE的版本管理与历史回溯的设计与实现_第2页
基于ARCSDE的版本管理与历史回溯的设计与实现_第3页
基于ARCSDE的版本管理与历史回溯的设计与实现_第4页
资源描述:

《基于ARCSDE的版本管理与历史回溯的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于ArcSDE的版本管理与历史回溯的设计与实现陆建波(江苏欧索软件有限公司,江苏南京,210029)摘要:本文根据在国土资源管理信息系统中对数据并行编辑和时空数据管理需要,基于ESRI的SDE和ArcObjects提出了系统中版本管理和历史回溯的设计方案,利用C#和ArcObjects编程实现,并在苏州市国土资源管理信息系统中的进行应用,取得了理想的效果。关键词:GIS;时空数据管理;版本管理;历史回溯1引言在国土资源管理信息系统中时空数据管理一直是GIS技术应用的重点。目前,空间数据管理方式已脱离了传统的文件系统,直接由数据库系统

2、统一管理,这使多用户并发操作成为可能。实现多用户并发操作的基础是并发控制,传统的数据库采用的悲观锁和乐观锁技术能解决一般数据操作的并发控制问题,但不太适用于GIS系统的长事务处理的需求。目前支持长事务处理的最有效的技术是在数据库引擎中引入版本管理。版本管理能同时完成数据备份、模拟不同场景与方案、保留历史记录等多重功能,在时空数据管理中应用较广,但对于GIS应用系统的某些功能需求也存在不足。2传统数据库的版本管理单记录锁定是通过在数据库中增加一个“单记录锁定表”来实现的。“单记录锁定表”由两个字段组成,一个是记录的唯一标识码UID,另一

3、个是锁定标识。“锁定标识”字段由用户编辑的版本名称和系统生成的流水号组成。要锁定某一条记录,只需将该记录的唯一标识码、正在编辑该记录的版本名称和编辑操作的系统流水号填入单记录锁定表的对应字段即可。单记录锁定的原则是先修改先锁定,即第一个编辑某记录的用户锁定该记录。当其他用户在自己的版本中编辑该记录并要保存编辑时,系统会提示该记录已被锁定,而不能对该记录进行编辑。直到用户提交自己的版本后,该记录才被解锁。现举例说明单记录锁定的工作流程:在版本A中,用户A对记录1进行编辑,分割生成记录2和3。在用户完成修改之前,记录1就被版本A锁定。如果

4、版本B的用户B要对记录1进行编辑,这时因为记录1已经被锁定,用户B对记录1不能再作修改,直到用户A提交版本A。单记录锁定方法的加锁过程主要包括判断记录是否锁定、进行加锁、保存并标识编辑结果3个步骤。通过在单记录锁定表中查找记录的UID是否存在,可判断记录是否锁定。通常有3种情况发生:(1)记录的UID在单记录锁定表中不存在,表示该记录未被编辑过,则继续进行加锁过程的后面步骤。(2)记录UID存在,表示此记录在该版本中曾被编辑过,但锁定标识字段中的版本名称不是用户正在编辑的版本,则用户只需要将该字段值中的流水号改成本次编辑对应的流水号,

5、继续进行加锁过程的后面步骤。(3)记录UID存在,且锁定标识字段中的版本名称为用户正在编辑的版本,表示此记录正在被其他用户编辑锁定,该用户不能编辑,因此加锁过程的后面步骤不能进行。保存并标识编辑结果是指在用户编辑的版本中保存新生成的记录。由于在用户提交版本之前,其他用户不能编辑这些新生成的记录,因此,也要将这些记录添加到单记录锁定表中进行锁定,其锁定标识字段中的系统流水号与变更前记录的相同。按上例,在版本A中编辑记录1后,记录1记录,UID分别为1,2,3,而锁定标识字段都为A0032(0032为编辑操作对应的系统流水号)。当用户提交

6、版本后,编辑结果融合到Default版本中,这时,需对这些记录进行解锁,以便其他用户编辑。删除单记录锁定表中所有锁定标识字段中版本名称等于用户版本的记录,即完成记录的解锁过程。43ArcSDE中版本管理的基本原理版本实际上是整个数据的快照,但不是数据库的硬拷贝,它只保存数据库中变化的内容,对于没有更新变化内容,只物理存储一次。在ArcSDE的数据库中,系统允许数据的多个版本同时存在,可为每个用户生成版本。用户在自己的版本中可对数据进行长时间的编辑,而不影响其他用户的操作,因此,可解决多用户并发操作和长事务处理问题。在ArcSDE中,版

7、本按树状结构组织,版本之间保持着父子关系,最上面的是“Default”版本,其他子版本都由此版本衍生下来。Default版本反映了数据库当前的状态,各子版本只保存了对数据库的修改,要使这些修改生效,必须向Default版本提交。当不同子版本用户修改同一记录并向父版本提交修改时,会产生冲突。解决版本之间的冲突是通过协调(Reconcile)和提交(Post)实现的。Reconcile是通过父版本来解决各子版本之间的冲突,即各子版本之间不直接进行冲突的协调,而是通过各子版本与父版本分别进行协调实现的。Post是将子版本的修改提交到父版本中

8、去,并释放子版本的存储空间,解决过程是先协调后提交。4基于ArcSDE的版本管理与历史回溯设计方案系统中的版本管理与历史回溯是相互关联的,任何有权对数据进行更新、编辑的部门都在自己的用户版本上进行数据编辑,来进行并发控制

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。