版本化地理数据库包含一些非版本化地理数据库中不存在的附加表格和记录。这些附加表和记录有助于长时间执行并行编辑。如果不进行版本化处理,则编辑者需要锁定数据并防止其他用户对数据进行编辑或查看。要使用此功能,您需要进行规划和管理。

为进行版本化编辑,各用户需要将数据注册为版本。各用户还可创建其他版本的地理数据库。您必须预先进行规划,才能确保以下几方面内容:

  • 需要访问数据和版本的用户具有适当权限。例如,如果版本所有者以外的用户需要访问某个版本,则必须将该版本的权限设置为受保护(其他用户可查看版本)或公共(其他用户可查看和更新版本)。
  • 对已编辑的版本化数据进行协调的所有用户都应了解如何定义版本间的冲突:按行或按列。
  • 解决冲突时特定用户将决定要保存的编辑内容的版本。
  • 每个编辑者都知道应使用哪个版本进行编辑。
  • 您确定是否将复制用作版本化工作流的一部分。
  • 您确定是否将存档用作版本化工作流的一部分。
  • 具有一组用于压缩地理数据库的时间表。

将数据注册为版本

将表或要素类注册为版本时,会在数据库中创建两个附加表:添加表和删除表。这两个表追踪对表或要素类所做的编辑。系统会为每个版本化数据集新建一组添加表和删除表。将要素数据集注册为版本时,会针对要素数据集中的每个要素类创建添加表和删除表。

要将数据注册为版本,您必须是该数据的所有者。有关说明,请参阅 将数据注册为版本

创建其他版本并授予对它们的访问权限

所有地理数据库都至少拥有一个版本:默认版本(创建地理数据库时存在的版本)。任何用户都可根据现有版本来创建其他版本。这些新版本用于对数据的更改内容进行分组。

创建新版本并非创建地理数据库的副本。无论您拥有多少个地理数据库版本,每个表和要素类都只会在数据库中存储一次。不同版本的地理数据库将被在 VERSIONS 系统表中进行追踪,并与添加表和删除表中的记录以及各种追踪数据状态的系统表相关联。

创建一个新版本后,该版本的所有者将确定允许用户对该版本进行何种类型的访问。可能的访问级别如下:

  • 公共:任何用户都可查看版本。任何具有数据集读/写(更新、插入和删除)权限的用户都可以修改版本中的数据集。
  • 受保护的:任何用户都可以查看版本,但只有所有者或地理数据库管理员可以编辑版本中的数据集或版本自身。
  • 私有:只有所有者或地理数据库管理员可以查看版本和修改已版本化的数据或版本自身。

协调版本

协调版本将目标版本的更改同步到正在编辑的版本。同时,ArcGIS 会检查您正在编辑的版本与目标版本之间是否存在冲突。这样便为您提供了一种查看和解决由不同编辑者所进行的编辑之间的任何冲突的方法。有关说明,请参阅 协调版本

提交父版本的更改内容

将更改内容从已协调的版本提交到目标版本可将更改内容合并到目标版本中。两个版本现已完全相同。

有关说明,请参阅 提交更改

压缩地理数据库

随着对地理数据库不时进行编辑,添加表和删除表的大小会有所增加。表越大,每次显示或查询版本时 ArcGIS 所必须处理的数据就越多。如果添加表和删除表变得很大,则会对地理数据库性能造成负面影响。

要保持地理数据库性能,地理数据库管理员必须定期压缩地理数据库以移除未被版本引用的编辑内容,并将所有版本的常见编辑内容重新压缩到业务表中。地理数据库压缩操作必须由地理数据库管理员执行。

地理数据库 (Geodatabase) 版本管理的更多相关文章

  1. 2013年arcgis培训

    关于开展“GIS空间分析及应用案例解析”培训班的通知   各企事业单位: 随着信息技术的发展,地理信息系统(简称GIS)产业异军突起,在国民经济各个行业中的应用日益广泛,物联网.智慧地球.3S技术等等 ...

  2. 2013Esri全球用户大会之ArcGIS for Desktop

    Q1:ArcGIS 10.2 for Desktop中有哪些新特性?     增强的质量和性能        扩展并行处理能力        许多软件质量的改进        优化的文件处理     ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  4. AE开发概念辨析

    樱木 原文 AE开发之概念辨析2,AE开发涉及相关概念,AE开发相关概念 1 AE中的类库 AE总共包括了21个子库,分别是SYSTEM,SYSTEMUI,GEOMETRY,DISPLAY,SERVE ...

  5. GIS基础软件及操作(十)

    原文 GIS基础软件及操作(十) 练习十.网络分析 (1) 加深对网络分析基本原理.方法的认识:(2) 熟练掌握ARCGIS下进行道路网络分析的技术方法:(3) 结合实际.掌握利用网络分析方法解决地学 ...

  6. 地理数据库的类型geodatabase类型

    地理数据库的类型geodatabase类型 地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩 ...

  7. ARCGIS10.1 GeoDatabase深入理解:客户端连接与退出地理数据库时系统表的初始化

    平台软件:ARCIGS10.1 ,SQL Server2008R2 目的:了解客户端在连接arcgis 空间地理数据库后,地理数据库会做些什么样的初始化工作 准备工作: 1.准备好数据库日志文件查看工 ...

  8. [ArcGIS]Oracle RAC下创建地理数据库(Create Enterprise Geodatabase)失败的解决方法

    转载请注明原文地址:http://www.cnblogs.com/litou/p/8028843.html 环境:Oracle 11g 11.2.0.1.0(双节点RAC群集),ArcGIS Desk ...

  9. 【ArcGIS】文件地理数据库,个人地理数据库与ArcSDE的局别

    地理数据库的类型   地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩展至 1 TB.建议使 ...

随机推荐

  1. 【Win 10 应用开发】Toast通知激活应用——前台&后台

    老周最近热衷于讲故事,接下来还是讲故事时间. 有人问我:你上大学的时候,有加入过学生会吗?读大学有没有必要加入学生会? 哎哟,这怎么回答呢,从短期来说,加入学生会有点用,至少可以娱乐一下,运气好的话, ...

  2. AngularJS之ng-class(十一)

    前言 本节我们来讲讲指令中的ng-class,通过添加ng-class来生成对应的样式,有时候得根据不同的条件来选择对应的样式,本节我们来看看ng-class的灵活性用法. ng-class使用字符串 ...

  3. 应用程序框架实战十五:DDD分层架构之领域实体(验证篇)

    在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识.相等性比较.输出实体状态等.本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石.为了 ...

  4. Javascript正则构造函数与正则表达字面量&&常用正则表达式

    本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...

  5. Lua 学习笔记(十)数据结构

    在Lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础.其他语言提供的数据结构,如数组.记录.线性表.队列.集合等,在Lua中都可以通过table来表示.而且使用Lua实现这些数据 ...

  6. C# 将内容写入txt文档

    <1>  FileStream fs = new FileStream(@"D:\text.txt", FileMode.Append); StreamWriter s ...

  7. IO多路复用之poll总结

    1.基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制.poll和selec ...

  8. Android Toast cancel和show 不踩中不会知道的坑

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

  9. javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)

    类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些. 比较常用之一的就是窗帘切换了. ...

  10. linq lambda left join

    //var list = table1.Join(table2, ee => ee.Id, ff => ff.table1_Id, (ee, ff) => new { ee, ff  ...