版本化快速浏览

此主题仅适用于 ArcEditor 和 ArcInfo。

利用版本化,多个用户可对 ArcSDE 地理数据库中的同一数据进行编辑,而无需应用锁或复制数据。

用户始终可以通过版本访问 ArcSDE 地理数据库。连接到多用户地理数据库时,需要指定将连接的版本。默认情况下将连接到 DEFAULT 版本。

DEFAULT 版本

每个 ArcSDE 地理数据库都具有一个被称为 DEFAULT 的默认版本;因此,始终会为地理数据库启用版本化。它是 ArcGIS 操作方式的基础部分,无需单独安装或配置。

地理数据库的 DEFAULT 版本

与其他版本不同,DEFAULT 版本始终存在,且不能被删除。在大多数工作流策略中,它是数据库的发布版本,表示要建模的系统的当前状态。您可以将其他版本中的变更提交到 DEFAULT 版本,从而逐步维护和更新 DEFAULT 版本。此外,您还可以像编辑其他版本一样,对 DEFAULT 版本直接进行编辑。

DEFAULT 版本为根版本,因此它是其他所有版本的祖先版本。

创建其他版本

您可通过从任意现有版本创建子版本或分支版本的方式来创建版本。您可以通过创建 DEFAULT 版本的子版本来创建第一个版本。创建新版本时,该版本与 DEFAULT 版本相同。随着时间的推移,版本将会随着对 DEFAULT 版本和新版本所做的更改而出现差异。

一个地理数据库可以有多个版本。以下是版本管理器 对话框,可通过 ArcGIS Desktop 对其进行访问。本示例显示了 DEFAULT 版本和其他三个版本:质量保证版本 (QA) 和项目版本 ProjectA 与 ProjectB。

一个地理数据库可以有多个版本

下面的图解表明了版本的关联方式。QA 版本为 DEFAULT 版本的子版本,而 ProjectA 和 ProjectB 版本为 QA 版本的子版本。

创建版本

创建版本会给您造成一个正在复制整个地理数据库的假象。这是因为各版本都具有地理数据库中的所有表和要素类。在版本中编辑的要素类或表将不再与父版本中的要素类或表相同,因此您会认为您正在各版本中存储要素类或表。然而,无论有多少个版本,各表和要素类将仅在数据库中存储一次。ArcGIS 会保留各要素类或表的原始格式,但会在被称为增量表的表中记录所有更改。

用户可同时编辑所有版本。多个用户还可同时编辑同一版本。

在以上版本示例中,多个编辑器可同时编辑 ProjectA 和 ProjectB 版本。在 QA 版本中进行更改的用户人数可能会较少。

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

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

请注意,将数据集注册为版本与创建版本有所不同。创建版本时所创建的是地理数据库的某种“视图”,您可以通过该“视图”编辑版本化数据并随即查看所做的更改。连接到同一版本的其他用户将会在刷新之后看到这些更改。但是,在您对这些更改进行协调并提交到祖先版本之前,连接到其他版本的用户将不会看到这些更改。在上面的示例中,将更改提交回 DEFAULT 版本后,无论您连接的是哪个版本,这些更改都是可见的。相反,将数据集(要素类、要素数据集或表)注册为版本会使其为版本化编辑准备就绪。将数据集注册为版本时,会创建两个增量表:用于插入和更新的 A(或“添加”)表以及用于删除的 D(或“删除”)表。每次更新或删除数据集中的记录时,都会向这两个表或其中一个表添加行。因此,版本化数据集包含原始表(称为基表)以及增量表中的所有更改。进行可填充增量表的编辑时,地理数据库会追踪您所连接的版本。查询或显示版本中的数据集时,ArcGIS 对原始表和增量表中的相关行进行组合,呈现出数据的无缝视图。

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

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

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

通过用于将编辑内容移动到基表的选项将数据注册为版本

在将不参与网络或拓扑的数据注册为版本时,您可以指定是否要将对 DEFAULT 版本进行的编辑移动到基表中。如果指定此选项,则仍将更改记录到增量表中。但是在进行保存时,会将更改从增量表中移动到基表,而增量表中不会保存更改。

在将数据注册为版本时,如果所做的修改仅需要数分钟即可完成并且使用第三方应用程序连接到版本化地理数据库,则指定此选项会很有帮助。

第三方应用程序通常仅可用于查询基表,而无法查看增量表。如果使用版本化,且未选择将编辑移动到基表,那么这些应用程序将无法查看尚未协调并提交到 DEFAULT 版本的在其他版本中进行的编辑。请注意,编辑 DEFAULT 之外的版本时,会在同一增量表中记录更改。保存时,更改会保留在增量表中。但是,将更改合并到 DEFAULT 版本时,更改会从增量表移动到基表。将更改合并到 DEFAULT 之外的版本时,更改将保留在增量表中,就像未指定将编辑移动到基表的选项一样。

权限及编辑版本

版本所有者(版本创建者)可为版本设置权限以限制可对该版本进行查看和编辑的用户。权限选项包括私有(只有所有者可以查看和编辑版本中的数据集)、受保护(任何用户都可以查看版本中的数据集,但只有所有者可以对其进行编辑)和公共(任何被授予数据集权限的用户都可以查看和编辑数据集)。

如下面的版本管理器 对话框所示,DEFAULT 版本为受保护版本,而其他版本均为公共版本。

一个地理数据库可以有多个版本

提示提示:

有关版本权限的详细信息,请参阅创建版本和设置权限

通过连接到特定版本并向 ArcMap 添加已注册为版本的数据,您可以在 ArcGIS 中编辑特定版本中的数据。

提示提示:

此外,您还可以在 ArcMap 中切换到数据所连接的版本。有关详细信息,请参阅在 ArcMap 中更改版本

默认情况下,ArcMap 中的所有编辑会话都是版本化编辑会话。因此,如果地图中存在版本化数据,那么打开编辑会话后便可立即开始进行编辑。要打开编辑会话,请在“编辑器”工具条的编辑器下拉列表中单击开始编辑

对各版本所进行的编辑仅适用于该版本本身。方案变更除外。在版本中更改方案时(例如,向表添加新字段),该变更适用于其他所有版本。

编辑完成后,需利用祖先版本对更改进行协调,并将更改提交到祖先版本。

协调并提交更改

协调并提交可将更改整合到当前使用的版本的任一祖先版本,例如父版本或 DEFAULT 版本。进行协调时,会将正在编辑的版本中的更改与用来合并更改的版本进行对比。

在版本中修改数据时,不会对数据应用任何锁。两个编辑器在同一版本或不同版本中对同一数据进行操作会导致冲突。某行在进行对比的两个版本中不相同时会产生冲突。协调过程可显示各冲突,您还可以利用该过程选择要保留的行的制图表达。

实际操作中,编辑冲突是较为罕见的,因为与涉及到的地理数据的量相比,编辑的量相对较小。在正确设计的工作流中,与在事务期间不必锁定或检出要素所节省的成本相比,协调冲突的成本相对较小。

完成协调后,可提交更改。这会将所做的更改应用到其他版本中。如果不再需要所提交的版本,则可将其删除。此外,您还可以进一步编辑该版本,然后进行协调并再次提交更改。

根据在 QA/Project 示例中分配给版本的权限,逻辑协调和提交工作流将从项目版本转到 QA 版本,然后再转到 DEFAULT 版本。

不同版本的权限

版本:示例

要了解如何使用版本,请见市政自来水公司的此情景。自来水公司具有存储要素的地理数据库,这些要素可表示所有供水管道、阀门、抽水机及供水系统中其他组件的当前状态。该公司需要向供水系统添加新的管线扩展。

该公司根据名为“扩展”项目的 DEFAULT 版本创建了的新版本,其中包含新扩展管线的设计。但是,公司职工不确定该为新扩展管线设计 16 英寸管道还是 24 英寸管道。因此,他们根据“扩展”项目版本创建了一个版本以研究 16 英寸设计,并创建了另一个版本以研究 24 英寸设计。

他们最终发现 24 英寸的管道可以满足计划的 12 年以上的供水需求,并证明其相应的初期建设成本也是较高的。24 英寸设计得到了认可,在对其进行精度检查之后,将其提交到“扩展”项目版本。

几个月后,新管线扩展的建设工程完工。要更新数据库的已发布版本,需要对“扩展”版本进行精度审核、协调,并将该版本提交到 DEFAULT 版本。

版本:市政自来水公司的示例

相关主题


3/7/2012