gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
阅读:1266回复:1

ArcGIS 数据模型Geodatabase

楼主#
更多 发布于:2004-03-10 02:26

Geodatabase是ArcGIS最新版本支持的空间数据模型,是一种对象-关系的数据模型。这套数据模型对于上层的表现是面向对象的,其实现及数据存储是基于关系数据库。

1数据类型
1.1 GIS中的数据类型
地理对象(空间相关对象):对应于现实世界中具有形状、位置和其他属性的实体,如道路建筑物等;
一般对象(空间无关对象):现实中与空间信息无关的实体,如土地的主人;
对象之间的关系(包括约束规则)
光栅数据
TIN数据

以下部份讨论Geodatabase对于上述数据表示的数据模型

1.2简单地理对象类feature class
Feature 是具有行为和属性的地理对象,feature class相同类型的feature的集合,其中的feature具有唯一的几何类型(point, line, polygon),对于每一个featureclass 在全局的GDB_FEATURECLASSES表中保存此class空间相关的信息,全局的GDB_OBJECTCLASSES表中保存了空间无关(创建者、别名、所属DataSet等)信息,同一class的feature数据在DBMS中以一张表存储。

地理对象还包括标注(Annotation), dimension,和用户自定义的feature类型,这些在后面专题叙述

1.3空间无关对象类object class
相同类型(schema)空间无关对象的集合。每个object class 在全局的GDB_OBJECTCLASSES表中保存了相关信息(创建者、别名、所属DataSet等)。同一class的object数据在DBMS的一张表中。

1.4子类型(subtypes)和属性约束(attribute domain)
子类型(subtypes)就是具有相同schema的class其内部的对象可能呈现几种不同的特征,可以由此分为几个子类型,如公路可根据等级分为一级公路、二级公路等。
属性约束(attribute domain)是对于某个属性字段的取值约束规则,包括default value, value range等。
在一个class中可以选择一个long或者int型来标识子类型,同一类型的对象存放在同一张表中,因此他们的属性相同,子类型之间的不同仅在于可以受不同的规则约束(topology rules, connectivity rules, relationship rules, custom rules)

attribute domain是一个全局可见,保存于GDB_DOMAIN中。为了实现这些对于属性字段的约束和别名等机制,每一个具有额外信息的属性字段都会在全局表GDB_FIELDINFO中保存相关信息。
1.5对象间关系(Relationship)的表示
DBMS中关系是通过primary key 和 foreign key的关联表示。
在Geodatabase中通过Relationship class来表示对象之间的关系及对象间的控制操作。

对象之间的关系类型:
Simple Relationship:Origin Object 和Destination Object都可以独立存在
Composite Relationship: Destination Object不能独立于Origin Object存在,只能是一对多(-)的关系。
可以给Relationship定义一些rules,如:规定只能是某些子类的对象之间关联。

在数据库中的表示:
one to one(many)的关系,直接在destination class 对象表中加入foreign key关联origin class表中的primary key;(origin 控制destination,为什么在destination中记录??)
many to many(one)的关系,必须要建立一张新的表用以记录关联信息

在全局的GDB_RELCLASSES表中保存一项此Relationship class的信息
关系rule记录在GDB_RELRULES中

在ArcMap中对于Relationship的编辑和利用:
ArcMap中可以根据一个对象选择related 对象,可以对于对象间的关系进行验证(依据rules)

1.6标注类型(Annotation class)
        ArcGIS最新版本中对于标注主要有两种支持方式Label和Annotation Class.
Label是不能在服务器持久化的标注信息,可以在ArcMap中动态修改用来label对象的属性字段,label不可编辑,根据对象的状态动态调整,Label的信息可以保存在本地。
Annotation Class作为feature class的一种,可以有位置、外形、符号等信息,克服了label不能控制和持久的缺点,Annotation显示的不仅可以是文字,也可以是点箭头等形状。

类型:
Nonfeature linked annotation没有和任何地理对象关联的标注类;
Feature linked annotation和特定地理对象关联的标注类。


标注对象在GDB_OBJECTCLASS中保存一项信息,Annotaion Class中的Element(blob)可能记录了标注了显示内容(或是关链的feature属性字段),显示方式。Shape??

1.7光栅数据
1.8 TIN
2 NetWorks
2.1概念:
在Geodatabase中,network的概念有两种:Geometric Network 和Logical Network
每一个Geometric NetWork有一个Logical Network与之对应。Geometic Network 就是组成网络的Feature classes的集合,Logical Network是Geometric Network的连接表示。

Geometric Network的组成feature中包括:edge network feature 和 junction network feature,也就是Geometric Network 的组成就是edge feature 和 junction feature,对应于Logical Network 的edge element 和 junction element。

Simple Edge Feature :对应于logical network 中的一个edge element
Complex Edge Feature:                       一个或多个edge elment
Simple Junction Feature :                      一个junction element
Complex Junction Feature :                     任意数目junction 和 edge

2.2构造:
选择同一个Feature DataSet中的Feature Class自定义相应的连接规则,自动生成Geometric Network 和 Logical Network,网络的连接性是基于位置计算的。之后数据库中建立一个表示连接关系的Relationship class,【是逻辑网络中element之间的关系还是几何网络中feature之间的关系?我想应该对于参加网络的Feature class 作为 geometric network 的组成部份保存在各个class自己的表中,系统中为logical network 建立两张表分别记录junction elements 和edge elements的信息(包括weight, 对应的feature part),这样Relationship只要表示junction class 和edge class 的关系即可,但是在数据库中没有找到支持此想法的信息,难道只是定义连接规则】

GDB_NETCLASSES, GDB_NETWEIGHTASOCS, GDB_NETWORK, GDB_NETWEIGHTS中保存了部份网络相关的信息

3 Topology
3.1 概念:
GeoDatabase中对于拓扑的定义如下:拓扑是一组规则、关系和一组特定的编辑工具及相关技术的集合,它使得Geodatabase能更准确的描述在现实世界中的各种几何关系。这种拓扑其实已经不是传统意义上拓扑的意义,更侧重于对于现实世界模型化的支持。

3.2 构造规则:
加入一个Topology的feature classes 必须在同一个feature dataset中。选择一组feature classes 和一组用来约束其中feature的rules,就可以生成topology,如:表示省的feature class: Province, 表示县的feature class:Country,定义规则如下:County must be overlayed by Province; Country must not be overlayed by Country; Province must not be overlayerd by Province; 系统可以根据定义生成拓扑,对于违反rules的部份为error。因此这里拓扑的重要意义在于对于规则的检查和修正,另外一点在于提供了一组拓扑编辑工具。

GDB_TOPOLOGIES, GDB_TOPOCLASSES, GDB_TOPORULES中保存了部份拓扑信息

4版本控制(Versioning)
Geodatabase 通过versioning提供对于长事务的支持。

4.1多用户对于同一数据的编辑操作过程:
从数据库中获得某一版本数据->编辑—>Reconcile到某个版本->修正冲突->提交
在一个用户显示提交之前,其他的用户无法看见数据的修改(相当于每个正在编辑的用户持有一个同源的临时版本直到用户显式提交),用户可以选择某个版本将其合并到它的祖辈版本(reconcile->post)。
一般的编辑和显示会对相应单元上读锁,对于Schema的修改,需要获得相应单元的写锁才能进行。

4.2冲突解决办法:
可以显示冲突的对象的三个版本:当前版本对象,冲突版本对象,当前修改前对象,其中冲突版本对象有效,用户可以对此对象修改,修正后提交服务器。

5 Disconnected Editing

对于远程或手机用户,为了减低网络费用,可能会选择离线编辑,ArcGis的Geodatabase通过对数据的chech out 和 check in 支持disconnected editing.

Master Geodatabase:其中的数据被checkout,必须是ArcSDE geodatebase;
Check-Out GeoDatabase:数据被checkout到其中,ArcSDE geodatabase或personal geodatabase


5.1 Check Out:
在ArcMap中对于checkout数据的选择:
Extent & Query
Network 和 topology中相关对象
Relationship默认的one-step原则,或自配置

checkout时,在master geodatabase的当前版本建立一个child version,在checkout geodatabase中建立一个表示checkout时状态的不可编辑版本和一个可编辑版本。

限制:
Checkout 和 checkin之间,无法从服务器刷新本地版本
Checkout的数据修改不能作用于schema


5.2 Check In:
pull model::master geodatabase 发起
push model:check-out geodatabase 发起
喜欢0 评分0
我是一个兵
路人甲
路人甲
  • 注册日期2004-02-03
  • 发帖数79
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-03-10 21:01
举报 回复(0) 喜欢(0)     评分
游客

返回顶部