首页 理论教育 ArcSde数据库的版本化管理是如何进行的?

ArcSde数据库的版本化管理是如何进行的?

时间:2023-08-22 理论教育 版权反馈
【摘要】:Geodatabase扩充了标准关系数据库德功能,实现了地理数据表达的一些特定需求。其是ArcSDE Geodatabase中最为关键的功能之一。Geodatabase被注册为版本后,便可以实现多用户编辑地理数据以及管理工作流程。版本Geodatabase有一个成为Default的最高级版本,是Geodatabase的默认版本。“版本”是ArcGIS软件在多用户关系数据库基础上,依托于ArcSDE服务而提供的长事务处理工具。Geodatabase可以拥有多个交互出现的版本。方案的变化可以快速应用到Geodatabase的所有版本中。版本化管理工作流。

ArcSde数据库的版本化管理是如何进行的?

(1)Geodatabase概述。ESRI公司推出的GeoDatabase数据模型融入了面向对象技术,如类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)等思想和技术,是一种面向对象的空间数据库模型。

在一般商用关系数据库中存储地理数据具有以下优点:①使用数据库直接集成地理数据;②使用标准数据库管理工具管理地理数据;③创建了大型地理数据库,实现地理数据快速的显示和编辑;④可以依据所选商用数据库配置Geodatabase;⑤地理数据库可以服务许多客户端,包括只读的客户端应用、CAD应用或者互联网应用。

Geodatabase扩充了标准关系数据库德功能,实现了地理数据表达的一些特定需求。

下面说明Geodatabase所扩充的关系数据库功能:①可以使用栅格数据集、要素集、TIN数据以及地址数据等等格式来表达和存储地理数据;②可以实现地理数据的空间分析及拓扑分析;③实现精美的地图显示以及生产高质量的地图;④给要素添加智能化因素,如定义属性、拓扑关系、关联以及合法性规则等等;⑤实现多用户同时显示和编辑同一地理数据。最后这个功能,提供了多用户同时读写Geodatabase的功能,也就是“版本(version)”功能。其是ArcSDE Geodatabase中最为关键的功能之一。

(2)版本化管理概述。Geodatabase被注册为版本后,便可以实现多用户编辑地理数据以及管理工作流程。版本Geodatabase有一个成为Default的最高级版本,是Geodatabase的默认版本。

“版本(version)”是ArcGIS软件在多用户关系数据库基础上,依托于ArcSDE服务而提供的长事务处理工具。有了版本,不需要数据复制,就可以实现多用户编辑同一Geodatabase。在个人Geodatabase中无法实现版本功能。

版本是命了名字的Geodatabase状态,版本是Geodatabase的某个时刻的状态,是Geodatabase的一个快照。

版本跨越整个Geodatabase并且拥有属性。在ArcCatalog中,可以定义GDB中哪些要素是版本化的,可以选择性地指定哪些要素集、要素类、表被注册为版本。通过设置权限可以控制其他用户对数据的版本的是否可见。版本的权限设置如图7.6所示。

Geodatabase可以拥有多个交互出现的版本。每个版本Geodatabase都允许执行所用相同的显示和分析功能。

版本之间的本质区别在于行状态而不是方案。版本创建之后,便呈现所有编辑工作的无中断视图。其中行的状态反应了所有的对象添加、删除以及修改操作(保存在数据库的表中)。每个版本的行状态信息都存储在Geodatabase中。方案(schema),即表及其字段的定义,都可以在Geodatabase中修改。方案的变化可以快速应用到Geodatabase的所有版本中。版本的区别在于其数据库中行的记录不同。

每个版本Geodatabase都有一个默认(default)版本。而版本创建源由其他版本。从默认版本开始编辑,可以创建任意数量的版本。除了默认版本之外的每一个版本只能拥有一个父版本。可以根据机构的工作方案需求创建复杂的树状多级版本。版本可以删除,前提是它所有的子版本都已经全部被删除。在删除之前,版本中的编辑变化被协调并提交给另外一个版本,用于版本更新或者也可以放弃改变。

图7.6 版本的权限设置

(注:Private表示只有所有者可以浏览和编辑;Public表示所有的用户都可以浏览和编辑;Protected表示所有的用户都可浏览,但是只有所有者可以进行编辑)

随着时间推移,许多记录被添加到Geodatabase管理版本的各种表中,这时许多的行记录都被其他记录所取代。这时可以执行版本压缩,将多余的行记录删除,这样节约了硬盘空间并且保证数据访问的畅通。

使用版本,在进行数据要素集检查、数据集仓库的分块、或者数据要素集复制等操作时,相对于以前的数据管理系统,它的执行方便且效率显著提高。版本能够快速并良好运行的原因在于版本不需要数据复制及制作副本。实质上,版本Geodatabase使用内部验证,通过管理记录要素对象的添加、删除或者修改的附加表,便实现了快速和安全的管理。

将数据注册为版本,也可以使用ArcSDE中的sdetable命令。下面的一行命令即是将矢量数据dixing注册为版本:(www.xing528.com)

Sdetable-o alter_reg-t dixing-c objectid-c sde-v multi-u sde-p sde

数据存入数据库中,对数据访问权限的管理就十分重要。数据库管理员可以使用sdelayer命令来赋予用户一定的角色。如下面的命令即赋予xhx选择dixing的权限:

Sdelayer-o grant-l dixing,shape-U xhx-A select-u sde-p sde

除了赋予用户一定的读写权限,ArcSDE也可以收回已经赋予用户的权限,如下命令即是收回赋予xhx选择dixing数据的权限:

Sdelayer-o revoke-l dixing,shape-U xhx-A select-u sde-p sde

根据数据的访问权限,客户端通过ArcGISDesktop可以实现三峡库区空间数据多用户并发访问,实现数据网络编辑和管理。

(3)版本化管理工作流。

1)编辑版本。使用Arc MAP进行编辑时,版本将自动打开以被编辑,如果文档有多个版本,那么可以从中选择一个版本开始编辑。

2)协调版本冲突。协调版本冲突,是一个将目标版本中的要素及对象融合进入当前编辑会话过程的数据处理过程。目标版本可以是当前编辑版本的任意一个直系祖先版本。在向另一个版本提交编辑变化前版本协调必须完成。

在协调过程中,必须有足够的权限来修改在编辑会话过程中所进行编辑的目标版本中的要素类。如果没有足够的权限,将无法完成协调冲突操作。

版本协调的目的在于将更新变化反应到上一级的版本中。

3)解决冲突。在目标版本与编辑会话过程的比较中,有一小部分的要素对象将发生冲突。

一般情况下,有两种类型的冲突:①在目标版本和当前编辑会话过程中,同一要素都被更新;②同一要素在一个版本中被更新,然而在另一个版本中却被删除。

一般而言发生冲突通常在多用户同时编辑临近区域的要素时发生。冲突产生后,通过交互式冲突解决对话框就可以检查两个版本之间的任一冲突。对于每个冲突,都可以选择是否将编辑会话过程中的要素替代目标版本的冲突要素,将其作为所做的编辑操作保存,当然也可以放弃冲突,将它恢复到开始编辑会话时的初始状态。

4)版本提交。成功解决了版本冲突后,便可以向目标版本提交其编辑版本了。提交操作的同时,编辑会话过程中的行状态与目标版本的进行比较,这两个版本也进行了验证。

版本提交完成,便可返回ArcCatalog目录中把正在编辑的版本删除,这样就完成了一个工作流程,进行了空间数据库的更新。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈