使用地理数据的工作流在持续时间和复杂性方面可能千差万别。 企业级地理数据库支持两种数据管理策略:版本化数据管理和非版本化数据管理,这两种数据管理策略使得用户和应用程序对数据执行短期和长期事务时的工作流需求得到了平衡。 非版本化方法用于管理短期事务的编辑,而版本化方法则适用于长期事务。
无论是版本化还是非版本化,针对不同的要素类或表可以应用不同的策略,因此可以在同一企业级地理数据库中同时使用这两种策略。 版本化数据管理可以进一步展开为三个选项:分支版本化、传统版本化和选择将编辑内容移动到基表的版本化。 由于您能编辑的数据和您能执行的工作流类型有所不同,因此您选择的策略取决于您想要在 GIS 中实现的功能。
下表提供了适用于企业级地理数据库中的这些数据集类型的编辑工作流选项的汇总:
数据集类型 | 分支版本化 | 传统版本化 | 传统版本化(将编辑内容移动到基表) | 非版本化编辑 |
---|---|---|---|---|
要素类 | ||||
表格 | ||||
注记 | ||||
尺寸注记 | ||||
关系类 | ||||
3D 对象要素类 | ||||
追踪网络 | ||||
公共设施网络 | ||||
宗地结构 | ||||
拓扑 | ||||
网络数据集 | ||||
Terrain 数据集 |
非版本化数据管理
此策略不涉及处理多个版本的数据;它将使用基础 DBMS 事务模型。 非版本化编辑相当于标准数据库短期事务。
要对数据进行编辑,请单击功能区中的编辑选项卡;然后执行所需操作,如添加、删除或移动要素,以及更新属性等。 在编辑会话中的首次编辑将使事务启动,而执行的各个编辑操作则均将作为单个事务提交至数据库。 在 ArcGIS Pro 中编辑非版本化数据时,无须保存编辑,所有事务就将自动提交至数据库。 事务结束后,您所做出的全部更改将对访问数据的所有其他用户及应用程序可用。
编辑时,任何使用 DBMS 在数据上定义的索引、约束和触发器均适用。 所有相同的锁定行为均适用,如同您直接使用 DBMS 对数据执行事务一样。 用户或组织访问或修改相同数据时,其中一个用户或应用程序可能会阻止另一方的操作。
注:
在多用户编辑环境中使用非版本化编辑时,您应了解隔离级别和锁定操作在 DBMS 中如何工作,并在必要时先在 DBMS 中设置正确的隔离级别再开始使用 ArcGIS。
此策略适用于简单要素(这些要素不包含版本之间数据的多种表示)。 由于此策略不使用版本,因此在需要 GIS 和非 GIS 应用程序共享对公用数据库的访问权限时,此策略也非常有用。
优势
非版本化数据管理的优势包括以下内容:
- 通过允许第三方应用程序(不是使用 Esri 软件创建的应用程序)读取或修改 ArcGIS 应用程序访问的同一数据,将地理数据集成到现有应用程序中。 例如,Esri 的合作伙伴频繁地构建加载项和扩展应用程序,这些加载项和应用程序需要开放式访问权限来更新存储在基础 DBMS 中的数据。
- 使用简单的工作流程和编辑操作管理项目。 如果事务始终非常简单并且持续时间很短,则可以直接修改数据,而不合并更改以及定期管理版本所需的附加表。
局限性
非版本化数据管理的局限性包括以下内容:
- 只能编辑简单要素:点、线、面、注记和关系。 您无法编辑参与拓扑、公共设施网络、宗地结构或其他具有高级功能的数据集的要素类。
- 由于是直接对数据源进行编辑,因此无法撤消或恢复单次编辑。
- 使用非版本化编辑时,不会检测冲突。 如果一名用户更新要素并保存其更改,随后另一用户更新同一要素并且也进行保存,则最后所做的更改会覆盖第一次更改。
- 在多用户编辑场景中,当一个用户编辑某一要素时,DBMS 会将该要素锁定,以防止其他编辑者同时编辑同一要素。
版本化数据管理
企业级地理数据库使用版本化来适应多用户编辑场景和长期事务。 地理数据库对标准 DBMS 事务模型进行了扩展,允许数据库同时存在多个并发状态(即版本)。 这使得多个用户可同时对地理数据库中的同一数据进行编辑,而无需锁定或复制数据。
编辑者可以在他们的个人版地理数据库中工作,这样其他用户便不会看到未完成的工作,编辑者之间也无需互相阻止对方访问数据。
每个版本可以表示正在进行的工作(如一个设计或一组工作指令)、可跨越多个数据库连接,时间可以长达几周或几个月,视需要而定。 编辑者完成工作后,可将所作更改集成回父版本中。
以下是一些版本化工作流示例:
- 需要假设分析的工程 - 在另一版本中创建设计。 如果设计通过批准,可以将其与数据库的其他部分合并。 如果未通过批准,可以将其丢弃。
- 具有特定质量保证要求的工程 - 在独立于其他数据库用户的版本中收集对数据的更改,如批量导入。 在与数据库的发布版本合并之前,测试并批准更改。
- 将工作分为功能单元和地理单元的工程 - 例如,一个设计并新建购物中心的工程可能具有几个不同的建造阶段,会细分为东区和西区或按建造活动细分,如建筑、公共设施安装或景观美化。 每个单元的工作在一个单独的版本中进行;每个版本完成时,会提交到数据库的发布版本中。
- 通过指定或规定的阶段组形成的工程,其中每个阶段都需要工程设计、管理或经依法批准,才能视为完成 - 这些工程的工作流可以使用单独的版本来管理每个阶段,如初始设计或建议版本、批准版本以及建造阶段的版本。 随着项目逐步向前推进,每个阶段都会经过审核和批准,然后被下一版本取代,直至达到并完成最后一个阶段。
- 需要维护队员在外业中使用移动设备更新数据的工程 - 外业编辑者可以使用他们自己的版本工作,并将其所作的更改与办公室编辑者所作的更新合并。
每个企业级地理数据库都有一个名为 Default 的版本。 与其他版本不同,Default 版本始终存在,且不能被删除。 在大多数工作流策略中,它是数据库的发布版本,表示要建模的系统的当前状态。 可随时将其他版本中的变更发布到 Default 版本,从而维护和更新 Default 版本。 此外,您还可以像编辑任何其他版本一样,对默认版本直接进行编辑。 Default 版本为根版本,是其他所有版本的祖先版本。
版本化允许您的数据管理策略具有灵活性和可扩展性。 有两种可用的版本化类型,每种版本化均适用于特定的工作流和部署选项: