FAQ: 针对版本数据可以做哪些schema变更?
文章编号 : 29885
软件: ArcSDE 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcEditor 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcInfo 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1, 10
操作系统: N/A
软件: ArcSDE 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcEditor 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcInfo 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3, 9.3.1, 10
操作系统: N/A
1 个回复
易智瑞技术支持
赞同来自:
回答: Geodatabase是针对记录的改变来进行版本追踪的,而不是schema,例如字段,域,子类,关系类,拓扑,几何网络,等等。
什么是schema?
在ArcGIS应用程序中schema锁是自动处理的,当需要通过Geodatabase ApI执行同样的操作时,开发者必须管理schema锁。在关于geodatabase的How to Schema Locks这篇文章讨论了schema 锁的使用用于实现schema变更。
某些schema变更,仍然可以针对版本数据集执行。既然schema不是版本的,这些schema变更会在所有版本可见。例如,在版本化后,字段仍然可以添加到表。新建的字段,在所有版本都是可见的并且是空的。然后可以在每一个版本,对那个字段进行编辑。
Schema变更和锁定
在geodatabase中有两种类型的锁:共享锁和排它锁。在geodatabase的schema更新期间,排它schema锁会自动应用以锁定数据集,以避免被其他用户对其进行改变;例如,在feature class中添加一个字段。一旦变更完成,锁会被自动释放,使数据集对所有用户可用。在这篇文档中讨论的所有schema变更,都需要一个排它schema锁。
如果用户想要变更 geodatabase schema, 无论是数据集或是被修改的对象一定不能被其它用户使用。换句话说,为了对数据集进行变更,共享锁一定不能在那个数据集或对象上存在。例如,当更新要素类的子类信息时,要素类不能被其它的应用打开。更多关于schema锁如何工作的信息,可以参考Schema Locking。
在How to use Schema Locks这篇geodatabase文章中也讨论了通过ArcObjects API使用schema锁用于schema 变更。
表和要素类
以下的schema变更可以针对注册为版本的表和要素类执行:
—版本化的要素类或表可以使用与非版本化的要素类或表相同的限制被删除或重命名。
—添加或移除字段。
—在字段或子类级别,添加、移除或修改缺省值。
—在字段或子类级别,添加或移除属性域。
—遵从子类属性的修改,添加或移除子类。
—添加,移除或修改属性和空间索引。
要素数据集
下面的schema变更可以针对基于版本的要素数据集执行:
— 删除包含在要素数据集中的版本化的要素类。
— 在要素数据集中创建要素类;但是,要素类将无法注册为版本。
关系类
下面的schema变更可以用于版本数据的关系类:
— 在版本要素类间创建关系类。
— 删除关系类。
— 添加,移除,或修改关系类规则。
注记要素类
下面的schema变更可以针对版本化的注记要素类进行:
— 所有针对版本化的要素类的变更都可以做。
— 添加,移除,修改,或重命名注记类。
— 添加,移除,导入或重命名符号集合。
Dimension要素类
下面的schema变更可以针对版本化的dimension要素类进行:
— 针对版本化要素类的所有变更都可以做。
— 添加,移除,导入,或重命名Dimension样式。
几何网络
下面的schema变更可以针对版本化的几何网络进行:
— 删除几何网络 。
— 添加新的,空要素类到几何网络,它将自动注册为版本。
— 为几何网络添加权重(从ArcGIS9.2开始)。
— 添加、移除或修改几何网络的联通规则。
拓扑
下面的schema变更可以针对版本化的拓扑进行:
— 删除拓扑。
— 重命名拓扑。
所有其它的schema 变更需要拓扑为非版本,例如:
— 添加或移除要素类。
— 修改要素类级别。
— 添加或移除拓扑规则。
— 修改拓扑群集容差。
网络数据集
下面的schema改变可以用于在版本环境中的网络数据集:
— 删除网络数据集。
在ArcGIS 10和以后的版本,网络数据集和源要素类都可以是版本的。在10之前的ArcGIS , 源要素类可以是版本的,然而网络数据集本身是非版本的。因此,当要素数据集和所有它的源要素类注册为版本时,所有的网络数据集属性可以被修改。为了重建包含在注册为版本的要素数据集中的网络数据集,查看下列文章:
— Are network datasets in an ArcSDE geodatabase versioned?
— Cannot build a network dataset when its feature dataset is registered as versioned.
—
Schematic 数据集
在版本环境中,以下schema变更可以针对schematic 数据集:
- 删除 schematic数据集。
注意:当源feature classes被注册为版本时, schematic数据集本身是非版本的。因此,当源feature classes被注册为版本后,所有的schematic 数据集属性都可以修改。查看下列链接,获得关于Schematics和版本的更多信息:
- About generating and updating diagrams while an edit session is open.
Terrains
以下schema的变更可以针对版本的terrain:
- 删除terrain.
- 重命名terrain
注意:所有其它针对terrain的schema变更都必须是非版本的,例如:
- 添加或移除要素类。
- 添加或移除金字塔级别。
- 变更参加要素类得分辨率范围框
- 改变金字塔级别的参考比例尺。
-
对于更多关于terrains和版本的信息,参见:Modifying terrains in a geodatabase.
Representations
在版本环境中,以下schema变更可以针对representation来做:
- 添加或移除representations;
- 添加、移除或修改representation规则;
- 应用对要素的representation 规则;
- 应用对要素的shape 重写;
- 重写representation规则的属性;
- 在属性变更时,转换要素representation为自由representation.
对于更多信息,参考:Working with representations in a versioned environment
Cadastral Fabrics
下列schema变更可以针对版本的cadastral fabric 来执行:
- 所有可以针对版本化的要素类执行的操作,都可以针对cadastral fabrics 类执行。
- 添加、移除和修改没有参与拓扑的cadastral fabric类;
- 添加、删除和修改带有源的关系类,作为一个cadastral fabric类。
注意:Cadastral fabric允许用户从其它要素数据集关联要素类,以便他们可以在fabric空间变更后被自动更新。无论是版本或非版本的要素类都可以被关联。然而,如果cadastral fabric是版本的,关联的要素类必须也被调成版本的。
反注册版本数据
如果表或要素类是版本的,要想做任何不能针对版本化数据做的schema改变,它必须是非版本的。当地理数据库中存在版本时,非版本化表或要素类可能导致编辑丢失。为了非版本化数据,并保存所有已有的编辑,参考:Registering and unregistering data as versioned。
反注册版本工具在ArcCatalog中的Customize对话框中是可用的。导航到Tools > Customize > Commands 选项卡 > Geodatabase tool 分类> Unregister As Versioned 命令。
创建时间:2005-06-11
最近更新: 2011-07-22
【原文链接】
http://support.esrichina.com.c ... .html
要回复问题请先登录或注册