`

基于Geodatabase数据模型的版本机制

阅读更多

一、版本是什么?(What is Version?)


“版本”(version)是ArcGIS软件在多用户关系数据库基础上,依托ArcSDE服务而提供的长事务处理工具。在个人geodatabase中无法实现版本功能。

 

Versioning allows multiple users to edit spatial and tabular data simultaneously in a long transaction environment. Users can directly modify the database without having to extract data or lock features in advance. The object model provides functionality to create and administer versions, register and unregister classes as versioned, detect differences between versions, and reconcile and post versions.

 

Geodatabase数据模型提供的版本化机制允许多用户在长事务处理环境中同时编辑空间和属性数据,用户无须预先数据复制和锁定要素就可以直接编辑。这一数据模型提供了诸如以下的功能:创建和管理版本、注册和不注册要素类、检测各个版本之间的差异、协调及提交版本。

 

二、怎样来理解版本?(How to Understand Version?)

版本是命了名字的geodatabase状态,你可以使用版本来模拟工程设计、建造工作、以及geodatabase的一个快照,还有任何类型的涉及正在进展的“what if ”问题研究的流程。

 

版本跨越整个geodatabase并且拥有属性。在ArcCatalog中,你可以指定哪些对象在geodatabase中是版本化的,你可以选择性的指定哪些数据要素集、要素类还有表注册成为版本。通过设置权限你可以控制其它用户对你的数据的版本是否可见。

 

同一个geodatabase中允许多个版本的存在。

 

版本之间的本质区别在于行为状态而不是方案。版本创建之后,便呈现给你所有编辑工作的无中断视图。其中行的状态反应了所有的对象添加、删除以及修改操作。这些状态的变化都被保存在它的归档文件中。

 

每个版本geodatabase都有一个默认的(default)版本。默认版本实际是geodatabase本身。

 

三、版本与版本之间的关系

默认版本是所有版本的起始版本(ancestor)。除了默认版本,每个版本只能拥有一个父版本。在确保该版本的所有子版本被删除后,该版本可以被删除。

 

版本中的编辑变化可被协调并提交给另外一个版本。(这涉及到geodatabase复制,将另外专门讨论)

 

用户可以连接任意一个授权于他的版本。

 

四、AE提供的类图与接口

 


1、VersionedWorkspace类及其接口:

 

A VersionedWorkspace is a Workspace that supports multiuser editing and multiple representations of features classes and tables in a relational database system. VersionedWorkspaces support the IVersionedWorkspace interface.

 

VersionedWorkspace类是Workspace类的一个子类,在关系数据库系统中,它允许多用户编辑以及要素类及数据表多样化的表达。它向用户提供了IVersionedWorkspace接口。

 

A list of all versions to which the user has permissions can be retrieved using the Versions property. The versions returned are either owned by the connected user or have public access.

 

通过IVersionedWorkspace接口提供的Versions的属性,用户可以得到授予他们访问权限的VersionedWorkspace中的所有版本。

 

通过Versions属性得到的对象是一个枚举型变量——EnumVersionInfo。

 

通过IVersionedWorkspace接口提供的FindVersion方法,用户可以通过版本名称进行查找而得到该版本。

 

The IVersion interface is used to manage the properties of a version as well as create new versions. Creating a new version requires an existing version to be the parent of the new version. When the new version is created, the parent and child versions are identical。

 

IVersion接口向用户提供了创建及管理版本属性的功能。创建一个新版本要求一个已经存在的版本作为其父版本。当新版本被创建时,版本之间的关系(父与子)也就被确立了。

 

下面是更新版本属性的C#代码示例:

//假设你已经得到dataset的引用
IVersion version = (IVersion)dataset.Workspace;
IVersionInfo versionInfo = version.VersionInfo;
if(versionInfo.IsOwner)
{
   version.Access = esriVersionAccess.esriVersionAccessPublic;
}


2、DataSet类与IVersionedObject and IVersionedObject2接口:

 

通过IVersionedOjbect或IVersionedObject2接口提供的RegisterAsVersioned方法,用户可以注册或不注册要素数据集或要素类为版本。如果注册为版本,则将在数据库中创建两个额外的表,以记录版本的行为状态发生的变化。

 

3、Table类与IVersionedTable、IConflictClass接口:

 

在进行协调操作之前,一般需要通过IVersionedTabled接口提供的Differences方法来检测源版本与目标版本之间存在的冲突。

 

经过协调(Reconcile)处理后,IConflictClass接口提供了得到冲突选择集的机制。通过其提供的DeleteUpdate、UpdateDelete、UpdateUpdates属性用户可以得到相应的SelectionSet。

分享到:
评论

相关推荐

    Geodatabase数据模型及其几何网络拓扑分析

    ### Geodatabase数据模型及其几何网络拓扑分析 #### 概述 Geodatabase作为ArcGIS平台中的核心组件之一,提供了强大的数据管理能力和空间数据分析工具。该数据模型不仅支持传统的点、线、面等基本要素类型,还能...

    GeoDatabase数据编辑方案

    Geodatabase是ArcGIS软件中用于存储、管理和分析地理信息的一种数据模型,它支持多种数据类型,包括矢量数据、栅格数据、地形、网络、注释以及CAD数据。在Geodatabase中,数据被组织在要素类(Feature Classes)和表...

    Geodatabase中拓扑管理机制

    本文将深入探讨Geodatabase中的拓扑管理机制,这是一种基于规则的结构,旨在确保地理数据的准确性和一致性。 首先,我们要理解什么是拓扑。拓扑关系是指地理实体(如点、线、面)之间的空间关联,如相邻、包含、...

    Geodatabase 9.2 的数据复制技术

    这项技术允许用户在两个或更多个 Geodatabase (GDB) 中分布式的管理和应用数据副本,同时支持所有 Geodatabase 数据模型,包括拓扑结构和几何网络等复杂的空间数据类型。 #### 二、Geodatabase 复制技术的核心特点 ...

    Geodatabase高级开发指南

    《Geodatabase高级开发指南》深入探讨了地理数据库在高级应用层面的关键技术和实践,尤其聚焦于多线程处理、连接管理、锁机制以及游标在数据编辑中的运用。以下是基于标题、描述、标签以及部分内容提炼出的核心知识...

    Geodatabase的原理介绍资料

    Geodatabase的数据模型基于对象-关系(Object-Relational)模型,这种模型结合了传统数据库的关系模型和面向对象编程的概念。它允许用户创建复杂的空间实体,如多边形、网络、拓扑等,并且可以定义这些实体之间的...

    arcgis geodatabase

    网络数据模型用于表示像道路、水管这样的线性基础设施,允许进行复杂的网络分析。 第二部分:Geodatabase数据存储和模式 File Geodatabase是在9.2引入的新类型,它将空间数据存储在文件系统中,支持大容量数据,但...

    GIS二次开发:第七讲 GeoDatabase-2.ppt

    《GIS二次开发:GeoDatabase-2》主要讲解了ESRI公司ArcGIS系统中的核心概念——GeoDatabase模型,以及如何访问和操作GeoDatabase中的各种数据结构。以下是对这一主题的详细阐述: 1. Geodatabase模型概述 ...

    Geodatabase简介

    Geodatabase采用混合数据模型,结合了拓扑、对象-关系和矢量数据模型。这种混合模型允许用户在单一环境中处理多种类型的空间数据,如连续的栅格数据和离散的几何对象。拓扑规则的实施确保了空间关系的正确性,对象-...

    Geodatabase学习资料

    Geodatabase是一个基于关系数据库管理系统(RDBMS)的地理信息存储方案,它可以将空间对象(如点、线、面)和非空间属性数据(如人口数量、土地用途等)集成在一起,提供了一种统一的方式来组织和管理地理数据。...

    ESRI矢量数据格式简介

    然而,随着ESRI向geodatabase这一更先进的数据模型过渡,从ArcGIS 8.3版本开始,ESRI逐渐屏蔽了对coverage的编辑功能。对于希望继续使用coverage数据格式的用户,可以选择安装ARC/INFO workstation,或将coverage...

    地理数据库 (geodatabase) 概述.docx

    地理数据库(Geodatabase)是GIS(地理信息系统)领域中用于存储、管理和分析地理信息的重要数据结构。它不仅仅是一个简单的数据集集合,而是包含了复杂的逻辑和模型,旨在满足GIS特有的需求。以下是关于地理数据库...

    GeoDatabase工作手册

    - **版本控制**:通过版本控制机制,地理数据库支持多用户同时编辑同一数据库而不发生冲突。 - **元数据管理**:良好的元数据管理对于确保数据质量和可发现性至关重要。地理数据库提供了丰富的工具来管理和维护元...

    基于ArcSDE的空间数据库技术研究

    - **空间数据建模**:根据数据特点选择合适的空间数据模型,例如Geodatabase。 - **空间数据存储**:将处理好的数据存储到空间数据库中,利用ArcSDE提供的工具和技术。 综上所述,ArcSDE作为一种先进的空间数据库...

    ArcGis图形数据格式及连接方法

    Personal Geodatabase 利用了第三代地理数据模型的优势,如拓扑和版本管理。访问 Personal Geodatabase 需要使用 GeodatabaseWorkspaceFactoryClass,打开数据库文件(.mdb 或 .gdb),再通过 IFeatureWorkspace ...

    基于Oracle的国土资源基础数据组织方法.pdf

    - **空间数据**:对于空间数据(如矢量、栅格和XML数据),Oracle结合ArcSDE for Oracle和ArcGIS Geodatabase模型来处理。Geodatabase允许在Feature、FeatureClass和FeatureDataset三个层次进行空间数据的分级管理。...

    一个基于arcgis server 90开发的点线面编辑程序

    - 数据模型:首先,需要设计合理的数据模型,如使用Geodatabase存储空间数据,并定义点、线、面的属性字段。 - 编辑接口:利用ArcObjects提供的IGeoFeatureLayer、IGeoFeature等接口,实现对地图图层的交互式编辑...

    ArcGIS_Engine中的8种数据访问

    Access 数据库,是一种轻量级、易于管理的空间数据库。它非常适合小型项目和个人使用。...理解这些数据访问方式对于开发基于 ArcGIS 的应用程序至关重要,能够帮助开发者有效地管理和操作各种类型的空间数据。

    arcgis介绍文件

    它继承了ArcInfo中的原始数据模型,虽然在现代版本的ArcGIS中已不再作为首选格式,但在某些特定情况下仍然保留使用。Coverage格式包含了丰富的元数据,如拓扑关系、属性数据等,能够提供更精细的数据控制和分析能力...

Global site tag (gtag.js) - Google Analytics