本节书摘来自异步社区《ArcGIS Engine 地理信息系统开发从入门到精通(第二版)》一书中的第6章,第6.4节,作者: 邱洪钢 , 张青莲 , 熊友谊 更多章节内容可以访问云栖社区“异步社区”公众号查看。
6.4 Geodatabase体系结构
ArcGIS Engine 地理信息系统开发从入门到精通(第二版)
6.4.1 Geodatabase介绍
随着关系数据库技术的完善,变长信息的存储成为可能,人们开始采用关系数据库技术管理空间数据,并逐渐成为主导。利用关系数据库管理空间几何信息、属性信息、拓扑信息、三维信息以及多媒体信息,使得GIS软件能够充分地利用商用数据库中已经成熟的众多特征,如快速索引、数据完整性和一致性、并发控制等机制。在此情况下,ESRI公司推出了Geodatabase,该数据模型采用全关系数据库管理空间数据,与各种商用关系数据库兼容。Geodatabase充分利用面向对象技术,将空间要素的属性和行为有机地结合在一起,采用现代化的、标准的方式实现对象,对象都定义为一个COM组件,并允许用户在这些基本模型的基础上扩展自己的面向对象数据模型。
Geodatabase是面向对象的空间数据存储模型,ArcSDE是ESRI公司针对空间数据的存储问题推出的一套空间数据库管理软件。通过SDE,用户可以将多种数据产品按照Geodatabase模型存储于商用数据库系统中,并获得管理和检索服务。
Geodatabase提供了可伸缩的空间数据存储方案,提供了两种存储方式:personal database和Enterprise Geodatabase。Personal database适用于单机环境下的GIS应用,实际上就是一个Access数据库,Personal database通过Microsoft Jet Engine将空间数据存放在Access数据库中。Enterprise Geodatabase主要用于在网络环境下工作的GIS,适合大型数据库在网络环境下进行多用户并发操作和版本控制。GIS用户可以通过建立版本来并发访问Geodatabase中的空间数据。
Geodatabase 提供了4种空间数据的表述形式:描述要素的矢量数据、描述影像和网格的栅格数据、描述表面不规则三角网络、用于地址定位的Addresses 和Locator。
6.4.2 Geodatabase的体系结构
Geodatabase的基本体系结构包括要素数据集、栅格数据集、TIN数据集、独立的对象类、独立的关系类和属性域等。其中要素数据集又由对象类、要素类、关系类等构成。
(1)对象类(Object Class)。
对象类表示的是非空间实体,不在地图上直接表示,但与地图上的直接表示的图形要素关联。对象类可以组织到一个要素数据集中,也可以单独存在。
(2)要素类(Feature Class)。
要素类表示的是具有相同几何形状的空间实体。要素类可以独立存在,也可以具有拓扑关系。当不同的要素类之间存在拓扑关系时,应组织到一个要素数据集中。要素类可细分为点状要素类、线状要素类、面状要素类等。
要素类与对象类的主要区别在于:要素类中存储了空间信息,而对象类中却没有。
(3)要素数据集(Feature Datasets)。
要素数据集由一组具有相同空间参考(spatial reference)的要素类组成,用于存放矢量数据。
(4)栅格数据集(Raster Datasets)。
栅格数据集用于存放栅格数据,可以支持海量栅格数据,支持影像镶嵌。可以通过建立“金字塔”索引,从而提高海量栅格数据的检索速度和显示效率。
(5)TIN数据集(Tin Datasets)。
TIN数据集由一系列不规则的三角形构成,这些不规则的三角形表示了地表的起伏。
(6)关系类(Relationship Class)。
关系类用于定义两个不同的要素类或对象类之间的关联关系。
(7)属性域(Domain)。
属性域用于定义属性的有效取值范围,可以是连续的变化区间,也可以是离散的。
(8)几何网络(Geometric Network)。
几何网络是在若干要素类的基础上建立的一个新的类。几何网络包括网络的边要素和点要素,例如供水系统中的几何网络,水管是边要素,点要素就是阀门。