arcgis 版本相关理解

来源:互联网 发布:oecd怎么下载数据啊 编辑:程序博客网 时间:2024/06/03 10:17

版本注册

确定如何注册数据以进行编辑时

首先需要考虑的始终是高级数据模型,要编辑拓扑、几何网络、网络数据集或地形中的要素类,对数据进行存档或通过复制对数据进行管理时,必须将数据注册为版本但不将编辑内容移动到基表。这样做的优势在于用户可以利用地理数据库的所有高级事务处理功能,包括撤消和恢复编辑内容。

如果要优先考虑与第三方应用程序轻易的共享数据的能力,可将数据保持为取消注册状态或将数据注册为版本并将编辑内容移动到基表。如果既需要版本化带来的好处,又需要与非 ArcGIS 应用程序共享更新内容,则将数据注册为版本并将编辑内容移动到基表会非常有帮助。

 

非版本化

版本化并将编辑内容移动到基表

版本化但不将编辑内容移动到基表

支持的数据类型

除拓扑、几何网络、网络数据集或地形中的要素类以外的所有数据类型

除拓扑、几何网络、网络数据集或地形中的要素类以外的所有数据类型

所有数据类型

支持的工作流

简单工作流

带有版本的简单和高级工作流

不支持:存档和复制

包括版本、复制和存档的简单和高级工作流

事务

限制为单一编辑会话

可跨越多个编辑会话

可跨越多个编辑会话

支持撤销/恢复

支持 DBMS 数据完整性功能

编辑 DEFAULT 版本时:是,但仅当保存时

在编辑其他版本时:否

可由非 ArcObjects创建的客户端应用程序(第三方应用程序)读取

DEFAULT 版本:有

其他版本中的要素类:否

其他版本中的表:是,通过版本化视图

要素类:否

表:是,通过版本化视图

版本注册相关流程:

在使用非版本化方式处理数据时,仅适用与单用户编辑。同时仅用于编辑简单数据 - 点、线、面、注记以及关系。无法编辑拓扑、网络数据集或几何网络中的要素类。这是因为编辑网络或拓扑中的要素时,网络或拓扑中的要素并未全部锁定,这就意味着,其他编辑者对网络或拓扑中的其他部分进行编辑的方式可能与您的编辑相冲突,从而导致拓扑数据或者其他数据的一致性与完整性。

版本的定义

可以把ArcGIS版本理解为对数据库的快照,版本代表着一种状态,它只记弽编辑变化的数据,所谓变化的数据就存储在相关的变化表中,没有变化的数据在物理上只存储一次,ArcGIS版本可以为多个用户创建属于该用户自己的版本,每个用户在对应的版本上可以迚行长时间的编辑也就是长事务的编辑,而且他们之间互不影响,因为各自编辑的数据都存储在变化表中。在用户编辑事务完毕后,可以将对应版本协调相关的父版本,如果有冲突解决相关冲突,协调完毕后可以提交到上一版本了。

所有的子版本都可以利用相关的操作过程迚行提交,将所有子版本的相关编辑信息都提交到最终的Default版本,也就完成了一个多版本、多用户并发协作一个项目。

版本专用术语

术语

描述

地理数据库版本

地理数据库版本表示整个 ArcSDE 地理数据库在某个时刻的快照。它允许对地理数据库所做的编辑彼

此孤立,即使编辑会话持续很长时间,也能够防止锁定。版本是通过现有版本创建的。

这会生成父版本和子版本的谱系。

DEFAULT 版本

DEFAULT 版本是 ArcSDE 地理数据库的原始版本。所有其他地理数据库版本都是

DEFAULT 版本的派生版本。

父版本

父版本是生成其他版本时所基于的地理数据库版本。如果刚才提到的其他版本仍然存在,

则无法删除父版本。

子版本

子版本是通过父版本创建的地理数据库版本。最初创建时,子版本包含与父版本相同的数据,

状态与父版本相同。在子版本中进行编辑后,通常会将这些编辑内容回发到父版本。

版本树

版本树是相关地理数据库版本的组织图。与族树类似,版本树显示如何将父版本与子版本相关联,

您可以将特定子版本的祖先版本追溯到 DEFAULT 版本。

注册版本

将要素类注册为版本可创建添加表和删除表。这些表会追踪对数据集所做的编辑,

您无需阻止其他用户访问或编辑数据集即可对该数据集进行编辑。

将数据集注册为版本时,可以将其注册为完全版本(默认选项)或使用“将编辑内容移动到基表”选项。

添加表

添加表可存储插入到版本化数据集或在版本化数据集中更新的所有记录。

删除表

删除表可记录在版本化数据集中所做的所有删除。它还包含已更新记录的记录,

因为更新记录的过程就是先删除原有记录,然后再添加修改过的记录,因此更新记录等同于删除记录。

删除表也称为 D 表。

增量表

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

基表

基表是要素类的核心表。它包含所有非空间属性,如果使用 SQL 几何类型,则它还包含空间属性。

术语“基表”用于将该核心表与其他端表(例如增量表、ArcSDE XML 表或 sdebinary 几何存储类型

使用的 f 和 s 表)区分开来。

通过数据库管理系统的用户界面查看要素类时,您会看到基表。例如,如果地理数据库包含名

为 prj_sites 的版本化要素类,您即可在数据库中找到名为 prj_sites 的表。该表就是基表。

基表也称为业务表。

将编辑内容移动到基表

这是将数据注册为版本时可用的选项。对地理数据库的 DEFAULT 版本进行编辑后,使用该选项

可以立即将编辑内容从增量表移动到基表中。

在将数据注册为版本时,如果所做的修改仅需要数分钟即可完成并且使用第三方应用程序连接到版

本化地理数据库,则指定此选项会很有帮助。

您不能对包含拓扑或网络的数据集(存档或加入复制)使用“将编辑内容移动到基表”选项。

状态

地理数据库状态是对版本所做更改的记录。每次编辑版本中的要素时,即会创建一个新状态。

状态谱系或状态树

状态谱系或状态树是一系列状态,以开始状态开始,以当前状态结束。它表示对地理数据库所做的

一系列更改。树或谱系记录中的每个分支用于记录版本的演化过程。

显示或查询版本时,ArcGIS 会查询版本的谱系以获取“状态 ID”,然后从 A 表和 D 表中检索正确

的记录。

编辑版本

编辑版本是当前正在更新的子版本。

在数据库中,编辑版本是一组在编辑会话过程中所做的状态更改。在协调过程中,将该状态谱系

与目标(父)版本的状态谱系进行比较以检测冲突。

目标版本

目标版本是将编辑内容与其进行协调的父版本的状态谱系。

协调

协调过程是版本化编辑工作流的一部分,该编辑工作流将编辑版本的状态谱系与目标版本的状态

谱系进行比较以查找两者之间的冲突。当其他用户对目标版本所做的编辑与您所做的编辑相矛盾时

会出现冲突。

您可以设置定义冲突的规则 - 冲突是在行中所做的更改还是在列中所做的更改,以及解决冲突的

默认行为 - 编辑版本更改优先还是目标版本更改优先。

协调过程仅更新编辑版本,以便 ArcGIS 可以检查冲突;此过程不会将更改内容合并到目标版本中。

您必须查看和解决在协调过程中检测到的任何冲突,才可以将更改内容与目标版本合并(提交)。

提交

提交过程会将来自编辑版本的更改合并至目标版本。

只有在完成协调操作后未对目标版本做出任何修改时,才能完成提交操作。如果在此期间修改了

目标版本,则必须在提交前重新进行协调。

压缩

对版本化地理数据库执行压缩操作。其主要用途是移除未引用状态及其关联的增量表行,将所有版本

共有的增量表中的表项移动到基表中。这会减少数据库在搜索每个版本查询时所需的数据量,从而

提高查询性能和系统响应时间。

经常编辑的版本化地理数据库必须定期压缩(每天或每周,取决于编辑量)。执行压缩操作的间

隔时间越长,完成压缩操作需要花费的时间就越长。

版本和版本化编辑的工作原理

对任意版本中的数据开始执行版本化编辑之前,必须将数据集注册为版本。

请注意,将数据集注册为版本与创建版本有所不同。创建版本时所创建的是地理数据库的某种“视图”,您可以通过该“视图”编辑版本化数据并随即查看所做的更改。连接到同一版本的其他用户将会在刷新之后看到这些更改。但是,在您对这些更改进行协调并提交到祖先版本之前,连接到其他版本的用户将不会看到这些更改。

相反,将数据集(要素类、要素数据集或表)注册为版本会为版本化编辑做好准备。将数据集注册为版本时,会创建两个增量表:用于插入和更新的 A(添加)表以及用于删除的 D(删除)表。每次更新或删除数据集中的记录时,都会向这两个表或其中一个表添加行。因此,版本化数据集由原始表(称为基表)和增量表中的所有更改组成。进行可填充增量表的编辑时,地理数据库会追踪您所连接的版本。查询或显示版本中的数据集时,ArcGIS 聚合原始表和增量表中的相关行,呈现出数据的无缝视图。

无论在哪个版本中进行编辑,对要素类或表所做的全部编辑都会被记录到同一增量表。总的来说,基表、A 表和 D 表中的所有行表示要素类或表的所有版本。这表示任何一个版本都只能引用这三个表中的行的子集。那么,ArcGIS 如何“记住”增量表中的哪些行属于哪个版本呢?

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

随着对地理数据库不时进行编辑,增量表的大小和状态的数量会有所增加。表越大、状态越多,每次显示或查询版本时 ArcGIS 所必须处理的数据就越多。要保持数据库的性能,ArcSDE 管理员必须定期运行压缩命令以移除不使用的数据,之后再使用分析命令更新数据库统计数据。

版本权限

版本所有者(创建该版本的人员)可以设置能够访问该版本的人员。访问权限选项如下:

私有:只有版本的所有者可以查看和编辑该版本中的数据集。

受保护的:所有用户均能查看版本中的数据集,但只有版本的所有者可以进行编辑。

公共:所有用户都可以查看和编辑数据集,只要他(她)被授予对数据集的权限。