ArcSDE版本编辑在国土行业数据管理中有着广泛的应用,比如说一份数据被多个用户同时编辑也能得到正确的结果。这种支持多用户的操作,可以满足国土部门日常对数据管理以及维护的需要。本文档对ArcSDE 的注册、反注册、压缩等操作做简要的介绍。比如在数据编辑的过程中,会保留一些记录信息,不断的编辑会导致这些信息不断的膨胀,又如何去除这些记录信息呢?ArcSDE 版本的管理可以很好的解决这些问题。
u 版本简介
简单的说,版本(version)就是在ArcSDE 服务的基础上实现多用户编辑地理数据库。地理数据库在入到服务器后,如果要使用版本,必须注册后方可允许编辑。版本具有以下的特点:
² 所有版本的父亲都是“default”版本(可以理解为最初的地理数据库),可以衍生出若干子版本,子版本又可成为“父版本”。
² 版本之间的本质区别是所记录的行状态的不同(状态分为增、删以及改三种)。
多个子版本向父版本提交数据的时候,会发生冲突,比方界址点的位置画的不一致,在提交的时候就会弹出提示框,判断采取何种画法。但在实际的应用中,此种冲突并不多见,因为作业队大都是分区域工作的,在提交编辑成功时,一般不会发生冲突的现象。
u 版本工作原理
前面说过,版本之间的本质区别是所记录的行状态的不同(状态分为增、删以及改三种),维护这些状态信息的表存放在ArcSDE 中,称之为Delta 表,Delta 表根据记录信息不同而分为A 表和D 表。A 表记录的是增加和更新的信息,D 表记录的是删除和更新的信息。ArcGIS记录Delta 表中的记录属于哪个Version 的办法是:A 表和D 表的每一行都用State ID 进行标识。当编辑一个版本时,产生一个新的State,同时产生新的一行添加到A 表或者D 表。一个系列的States 记录了版本从业务表(Base 表)到当前的状态,该系列称为Lineage。当你显示或者查询一个Version 时,ArcGIS 从版本Lineage 中得到State ID,然后从A 表和D 表中找到相应的信息。
注:ArcSDE 有三类表:F 表记录几何信息,B 表保存属性信息,S 表保存空间索引信息。
三张表之间通过关键字进行关联。
u 注册
之前我们主要是介绍了一下版本,是因为注册与版本之间类似于锁钥的关系,只有理解透了锁的作用后,才能更好的理解钥的作用。通过注册这把钥,才能打开版本这把锁。若想进行数据的版本化管理,必须先对数据进行注册。目前大多数国土局都使用版本管理数据,因此,地籍软件在数据库,强制性的要求进行一次注册操作,否则无法进行编辑操作。
u 反注册
在反注册的过程中,如果没有保存编辑的数据,则会丢失编辑的数据,所以在反注册之前需要将数据进行压缩保存在base 表中,或者将编辑提交到Default 版本中。为了防止意外,在进行反注册的过程中会提示进行压缩操作。地籍软件中也体现了此点。
u 数据压缩
Delta 表的大小和State 的数量会随着编辑Geodatabase 不断的在增加,Delta 表与State越多,每次处理时的速度就越慢,因此应该定期进行数据库压缩,注意,能进行压缩的操作只能是SDE 用户。压缩操作会删除所有不再被版本引用的数据库状态并将Delta 表中的所有记录移到基本表Base 表中。数据压缩可以理解为将红旗拿到绿旗的位置,也就是数据的最终状态,此时的反注册才是保险的。同样,对反注册后的数据进行压缩时没有意义的。
在ArcGIS 中,将数据注册后,多个用户可以通过版本访问地理数据库中的地理数据。多个用户可以同时编辑相同的要素或记录,而不用显式用锁防止其他用户修改相同数据。版本化的操作大体过程是:多用户的操作会产生冲突,将冲突进行调和并提交编辑形成最终的数据。数据经过一段时间的编辑后,会增大系统表的容量,使用压缩操作就可以减少数据的
容量。反注册将数据退回到编辑之前的状态。
u 使用ArcCatalog 进行注册、反注册及压缩
1、注册。选中需要注册的数据集,可以使用鼠标右键进行注册,选中需要注册的数据集,右键,选中“Register AsVersioned”命令即可,如图:
注册后会在数据库中多Delta表,Delta表包括A表,D表(数据集有三个Featureclass所以有三组Delta表)我安装的Oracle数据库,会在Oracle的SDE表空间中查看到这三组,如图:
进行版本编辑之前,先进行注册。否则版本编辑就没有任何意义.在ArcMap中用Version1的版本进行添加了俩条记录,再查看SDE中的A表,会发现多了俩条记录(添加了俩条线),相应的删除记录也会在D表中添加记录
如何要查看该编码33指定是哪个版本,可以通过SDE表空间中SDE.VERSIONS表查看
补充:
SDE表空间表对应FeatureClass中的各个属性和参考
比如:
1、代表空间参考表SDE.ST_SPATIAL_REFERENCES
2、代表图层信息表SDE.LAYERS