5.2.1 Geodatabase概述
Geodatabase是ESRI公司在Arc GIS8引入的一个全新的空间数据模型,是建立在关系型数据库管理信息系统之上的统一的、智能化的空间数据库。Geodatabase数据模型是按照层次型的数据对象来组织地理空间数据(如图5.1所示)。这里的数据对象指对象类(Object Classes)、要素类(Feature Classes)和要素数据集(Feature Datasets)。
对象类是一种以表格(Table)的形式来存储非空间数据的类。这种特殊的类没有空间特征,其实例就是对象相关的表记录。
要素类是几何类型(点、线、面等)相同及属性一样的要素集合,如: 道路、河流、矿点、探矿权范围、采矿权范围等。要素类之间可以独立存在,也可具有某种关系。当不同要素类之间存在某种关系时,应考虑将它们组织到一个要素数据集。例如,矿山、矿山注记等这些要素类之间存在内在关系,我们就可以将其存储到同一要素数据集中。另外,描述空间对象及其属性的文本信息,在Geodatabase中通常也被存储为简单要素类,称为注释类。
要素数据集是共享空间参考系统并具有某种关系的多个要素类的集合。一般而言,在以下三种情况下,应考虑将不同的要素类组织到一个要素数据集中: (1)对同一专题的要素类通常组织为同一个要素数据集,例如,某区域内相同比例尺下的线状水系与面状水系被归在同一个要素集; (2)考虑要素类间的平面拓扑关系,比如行政边界、道路等,当其中一个要素空间位置发生改变,其公共的部分也需一起移动,从而保持公共边关系不变,这时我们也将其组织为同一要素集; (3)处于同一几何网络中的边、连接点等要素类,一般也组织在同一要素集内。
图5.1 Geodatabase数据组织结构
对象类、要素类和要素数据集是Geodatabase数据模型中的基本组成项。当在数据库中创建了以上项目后,就可以向数据库中加载数据,并进一步定义数据库,如建立索引、创建拓扑关系、创建子类、创建几何网络类、注释类、关系类等。
5.2.2 Geodatabase数据模型特征
由于Geodatabase数据模型融入了面向对象的核心技术,使得Geodatabase数据模型可以将所有空间地物以对象的形式进行封装(Encapsulation),并将对象的外部行为、语义和内部执行之间显著分离。因此,与CAD数据模型、Coverage数据模型相比,Geodatabase数据模型优势显著:
①数据的输入与编辑更加精确。由于Geodatabase数据模型数据存储机制的智能化,使用户在输入和编辑过程中引入的错误能够及时得到检测和纠正,为数据的正确性提供了保障。
②空间数据与非空间数据的统一存储。Geodatabase数据模型是建立在标准的关系数据库系统的基础之上,所以能够将矢量数据、栅格数据、非空间属性数据等统一存储在大型关系型数据库管理系统中,便于数据的管理和调用。
③用户的操作对象更加直观化。因Geodatabase数据模型是基于面向对象的空间数据模型,只要经过适当的设计,就可将用户的数据模型表达为一个Geodatabase所能包含的数据对象,这样,用户操作的就不再是一般意义的点、线、面,而是如道路、湖泊等空间实体对象。
④要素拥有更加丰富的上下文关系。通过空间表达、拓扑关系及一般关系,用户不仅可以定义要素的性质,而且还可以定义它与其他要素的上下文关系(Context)。这样,当与其相关的要素被移动、改变或删除时,能够使用户清楚地知道整个要素集发生了哪些改变,而且这种上下文关系(Context)也给用户查找或定位相关的要素提供了方便。
⑤要素集合的连续性。Geodatabase数据模型能够容纳庞大的要素集合,实现了无分区分块的海量要素的无缝存储。
⑥要素的形状特征得到了更好表现。Geodatabase数据模型提供直线、圆弧、椭圆曲线、贝赛尔曲线等多种方式来定义要素的外形。
⑦实现了多用户并发操作。Geodatabase数据模型支持多用户同时编辑同一区域内的要素,并对出现的差异进行相应的处理,使之达成一致。
虽然这种全新的面向对象的地理空间数据模型有着自身显著的优势,但因技术水平所限及空间数据本身的复杂性,Geodatabase数据模型依然有其局限所在:
①Geodatabase数据模型是低层次的面向对象。由于目前面向对象数据库技术还不够成熟,当对空间实体对象进行存储时,需通过中间件将其规则和属性分解后才能存储于对象—关系型数据库中,而对空间实体的访问也需通过中间件对空间数据重新组合完成。所以,Geodatabase数据模型只是一种逻辑模型,目前只在代码级实现了面向对象。
②Geodatabase数据模型的约束规则不能很好地描述空间实体复杂的组合关系。Geodatabase数据模型对两个要素类(Feature Class)之间的一对多的组合关系能够很方便地进行定义,但对组合与被组合的对象间的空间关系和属性信息的约束规则未给予描述。
③Geodatabase数据模型不能表达时空数据。由于Geodatabase数据模型中不存在时间维,与传统的数据模型一样,其描述的依然是静态的空间数据,而现实世界中,很多地理实体所涉及的数据都与时间变化相关。
尽管Geodatabase数据模型自身有一定的不足,但它将面向对象的思想引入到人们对现实世界的认识和模拟中,它是一种将空间对象的行为和属性结合起来的智能化空间数据模型。在Geodatabase模型中,空间实体被表示成具有行为、属性和关系的对象,因此,它不仅支持简单要素类及其拓扑关系,还能够对复合网络及其他面向对象要素提供支持。此外,因Geodatabase数据模型建立在标准的关系数据库系统基础之上,利用关系数据库管理系统能够对空间数据和非空间数据进行统一存储、管理,所以是当前行业应用中空间数据库构建的首选方案。
5.2.3 Geodatabase构建流程
构建Geodatabase空间数据库,首先是设计Geodatabase所要包含的空间参考系统、地理要素类、要素数据集、非空间对象表、几何网络类以及关系类等; Geodatabase设计完成之后,就可以利用Arc Catalog建立空间数据库: 首先,建立空的Geodatabase,接着,建立Geodatabase基本组成项,包括要素数据集、要素类、关系表等; 最后,将数据载入Geodatabase数据库。
当关系表和要素类中加入数据后,可以在适当的字段上建立索引,以便提高查询效率。建立了Geodatabase的要素数据集、要素类和关系表后,可以进一步建立空间要素的几何网络、空间要素或非空间要素类之间的关系类等对空间数据库进行优化。(www.daowen.com)
1. Geodatabase设计
Geodatabase设计是Geodatabase空间数据库构建的首要问题,应根据项目应用需求进行规划和反复设计。在设计一个Geodatabase时,需要重点考虑以下几个问题: 数据库中将要存储什么数据、数据存储采用什么投影、如何组织对象类和子类、是否需要维护不同类型对象间的特殊关系、是否需要建立数据的修改规则、数据库是否存储定制对象、数据库中是否包含网络。
2. Geodatabase建立
借助Arc Catalog软件平台,可以采用三种不同的方式来创建一个新的Geodatabase。具体选择何种方式取决于建立Geodatabase的数据源及是否需要在Geodatabase中存放定制对象。而实际建库操作中,通常会结合几种或全部方式来创建Geodatabase空间数据库。
(1)从头开始创建一个新的Geodatabase
当没有任何可装载或需要装载的数据,或者已有数据只能部分地满足数据库设计时,可以利用Arc Catalog软件直接创建一个新的Geodatabase数据库。
(2)移植已经存在的数据到Geodatabase
对于已经存在的多种格式的数据: Shapefile、Coverage、INFOTable、d BASETables等,可以通过Arc Catalog来转换并输入到Geodatabase中,并进一步定义数据库,包括建立几何网络(Geometric Networks)、子类型(Subtypes)、属性域(Attribute Domains)等。
(3)使用CASE工具建立Geodatabase
可以用CASE工具建立新的定制对象,或从UML(Unified Modeling Language)创建Geodatabase数据库模式。
3. 创建Geodatabase基本项
一个空的Geodatabase的基本组成项主要包括要素数据集、要素类、关系表。当在Geodatabase中创建了其基本项,并载入数据之后,一个简单的Geodatabase数据库便创建完毕。
4. 向Geodatabase加载数据
可以在Arc Map中建立新的对象,或调用已经存在的Shapefile、Coverage、INFO Table、d BASETables等,通过Arc Catalog将其载入到Geodatabase空间数据库中。
5.Geodatabase空间数据库的优化
对于加载到Geodatabase空间数据库中的数据,可以在适当的字段上建立索引,以便提高查询效率。并可以在建立了数据库的基本组成项后,进一步创建如几何网络、空间要素与非空间要素类之间的关系类等,以便进一步优化Geodatabase空间数据库。一个Geodatabase空间数据库只有定义了这些高级项后,才能显示出其在数据组织和应用上的强大优势。
5.2.4 Geodatabase数据存储实现方式
通过上面的分析可知,Geodatabase是一个用于存储GIS数据集的集合,Geodatabase支持多种数据库管理系统(DBMS)。从Arc GIS9.2开始,Geodatabase能够将地理空间数据存储到MDB文件、文件(File)及大型DBMS中。目前,Geodatabase模型的数据存储实现有三种方式: Personal GDB(Personal Geodatabase)、File GDB(File Geodatabase)和Arc SDE Geodatabase。如图5.2所示。
图5.2 Geodatabase数据存储实现方式
以上三种实现方式满足了从单用户、小数据量的文件数据库到多用户、大数据量、支持并发操作的企业级数据库管理系统的不同层次的应用需求。其主要区别如下:
Personal Geodatabases从Arc GIS8.0版本开始被引入,采用Microsoft Jet Engine数据文件结构,将GIS数据存储到Access数据库中(mdbfile)。支持的Geodatabase容量小于等于2GB,实际有效的数据库容量仅在250MB~500MB之间。一旦超出此范围,数据库整体性能将显著降低。运行环境也仅限于Microsoft的Windows操作系统,只支持单用户编辑,不支持版本管理。就适用环境而言,在比较小的工作组级别应用中,使用Personal Geodatabases还是比较可行的。
File Geodatabase是Arc GIS9.2版本新发布的一种Geodatabase数据模型。它以文件系统中的文件夹进行存储,每个数据集被存储为一个文件,存储容量可达到TB级。但File Geodatabase与 Personal Geodatabase 一样,也被设计为单用户编辑模式,不支持Geodatabase版本管理。该种Geodatabase数据模型比较适合于基于文件数据集的GIS项目的数据管理。
Arc SDEGeodatabases是一个可供多个用户同时编辑和使用的多用户Geodatabase。通过使用Arc SDE数据库中间件,Arc SDEGeodatabase支持多种数据库管理系统(Oracle, SQLServer,IBMDB2,Informix等),而且在数据的存储容量及用户数量上没有限制。利用企业级大型关系数据库系统存储海量的GIS数据,正是Arc SDEGeodatabase的最大优势所在。Arc SDEGeodatabase支持多用户并发操作,提供长事务及版本管理工作流。目前在工作组级、部门级及企业级GIS应用领域被广泛使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。