ArcGIS Geodatabase版本控制机制的学习总结

本文是最近内部的一个学习的自我整理,只有关键信息,若是须要详细了解,请参阅ArcGIS帮助文档:html

http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/003n000000tq000000/(关于版本机制)数据库

一、适用条件:仅支持企业地理数据库(ArcSDE地理数据库),而我的地理数据库、文件型地理数据库不支持;工具

二、定义:版本是整个地理数据库在某个时刻的快照,其中包含地理数据库中的全部数据集。利用版本化,多个用户可对 ArcSDE 地理数据库中的同一数据进行编辑,而无需应用锁或复制数据。学习

三、版本的分类:3d

DEFAULT 版本:每一个 ArcSDE 地理数据库都具备一个被称为 DEFAULT 的默认版本,默认状况下将链接到 DEFAULT 版本

子版本:从任意现有版本建立子版本或分支版本的方式来建立版本,如能够经过建立 DEFAULT 版本的子版原本建立第一个版本。子版本会从父版本从继承全部相关数据。一个建立好的版本树以下:htm

image

四、版本的控制原理blog

数据集(要素类、要素数据集或表)注册为版本后,数据库中将会建立两个增量表:用于插入和更新的 A(添加)表以及用于删除的 D(删除)表。每次更新或删除数据集中的记录时,都会向这两个表或其中一个表添加行。如:我在数据库中新建了一个Line要素类,而后将其注册为版本后,数据库中出现了以下两个表:a8,D8,8表明该要素类在[SDE_table_registry]表中的数据集的ID。继承

总的来讲,基表、A 表和 D 表中的全部行表示要素类或表的全部版本。这表示任何一个版本都只能引用这三个表中的行的子集文档

A 表和 D 表中的各行使用被称为状态 ID 的整型标识符进行标记,以在向表中添加行时提供参考。每次编辑版本时均会建立新的状态,并向这两个增量表或其中一个增量表添加新行。状态可被看做是树结构的一部分,在树结构中,各分支记录了版本的发展状况。记录版本从基表到当前状态之间一连串变动的一系列状态称为谱系。显示或查询版本时,ArcGIS 会查询版本的谱系以获取状态 ID,而后从 A 表和 D 表中检索正确的记录。get

几个专业术语:

父版本:是生成其余版本时所基于的地理数据库版本。若是刚才提到的其余版本仍然存在,则没法删除父版本。

子版本:是经过父版本建立的地理数据库版本。最初建立时,子版本包含与父版本相同的数据,状态与父版本相同。在子版本中进行编辑后,一般会将这些编辑内容回发到父版本。

增量表:数据集的添加表和删除表统称为增量表,由于它们用于存储对数据集所作的更改。

删除表:可记录在版本化数据集中所作的全部删除。它还包含已更新记录的记录,由于更新记录的过程就是先删除原有记录,而后再添加修改过的记录,所以更新记录等同于删除记录。删除表也称为 D 表。

基表:基表是要素类的核心表。它包含全部非空间属性,若是使用 SQL 几何类型,则它还包含空间属性。术语“基表”用于将该核心表与其余端表(例如增量表、ArcSDE XML 表或 sdebinary 几何存储类型使用的 f 和 s 表)区分开来。基表也称为业务表。

五、如何注册为版本

在某个数据集上点击右键,选择建立为版本,如图:

image

点击建立为版本后,会弹出以下对话框:

image

若是此处勾选,则在之后的编辑中,若是点击保存,则全部数据将自动保存到基表中,并删除全部在增量表的数据;若是不勾选,则保存后全部数据数据不会提交到基表中,

若是要查询当前已经审核入库的全部数据只能经过查询视图的方式(视图为:数据集名称_VW)。

六、如何切换版本

在将数据加载到地图后,在TOC控件中,点击”List by Source”视图,能够看每一个数据集的来源,以下图,要素类pnt来源不一样的版本:

image

那么如何切换不一样的版本进行编辑呢?咱们能够在TOC控件中的数据上,点击右键,并切换版本:

image,点击切换版本,将弹出我上图的版本管理视图:

image

七、版本的冲突与协调

在编辑工具栏中,选择“Options”能够设置处理冲突的方式,能够看出ArcGIS支持在行级别以及属性级别进行冲突处理,而提交的顺序支持按照入库顺序或者编辑顺序进行处理。

具体项目中要选择哪一种方式,应该具体状况具体分析。如图:

image

image

相关文章
相关标签/搜索