空间数据库引擎的关键技术及发展

周芹,李绍俊,李云锦,马柳青

(1 中国科学院地理科学与资源研究所,北京 100101;2 中国科学院研究生院,北京 100039; 3 北京超图地理信息技术公司,北京 100101 )

论文来源:中国地理信息系统协会第四次会员代表大会暨第十一届年会论文集

摘要:空间数据库引擎是一种介于应用程序和数据库管理系统之间的中间件技术,是 GIS软件平台的核心,主要解决文件管理系统在 GIS 应用中存在的问题和局限性。本文介绍了三种常见的空间数据库引擎体系结构,并以 Arc SDE、Oracle Spatial 和 SuperMap SDX+为例对比三种体系结构的特点…

关键词: GIS,空间数据库,空间数据库引擎

1、引言

空间数据是 GIS 的基本构成之一,GIS 应用领域的推广、应用系统中数据量的急速增长及数据来源的多样性,使得依赖于具体 GIS软件平台的文件型数据库不能满足实际需要,越来越多的 GIS 应用系统采用成熟的商业数据库来存储空间数据。

空间数据库引擎是一种处于应用程序和数据库管理系统之间的中间件技术,在用户和异构空间数据库之间提供开放接口。用户通过空间数据库引擎将不同形式的空间数据提交给数据库管理系统(DBMS),由 RDBMS 统一管理;也可以通过空间数据库引擎从 DBMS 中获取空间类型的数据,并转化为客户可以使用的格式。因此,DBMS 实质上是形式各异的空间数据的容器,而空间数据库引擎就是空间数据出入该容器的通道。

自 1995 年 ESRI 发布 ArcSDE1.0 以来,各 GIS 平台纷纷推出自己的空间数据引擎,各大数据库厂商也意识到支持空间数据的重要性,在原有关系数据库的基础上开发了空间扩展模块以支持空间数据的存储和操作。空间数据库引擎是与 GIS 平台或者数据库紧密结合的,在体系结构上必然存在差异,本文提取三种典型结构并以 Oralce Spatial、ArcSDE 和SuperMap SDX+为代表进行对比分析,并提出空间数据库引擎实现的关键技术和发展方向。

2、空间数据库引擎研究现状

各种空间数据库引擎在本质上都是通过利用和扩展符合工业技术标准的 RDBMS 的数据类型和功能,来实现空间数据在数据库中的物理存储。为了支持异构平台的访问和互操作,各种几何类型都遵循 OGC 等国际标准。借助 RDBMS 的强大功能,空间数据引擎实现了“矢量-栅格”一体化存储,数据完整性和一致性的维护,提供严格的规则/有效性检查,支持长事务处理和版本管理,用户权限管理和数据安全机制,并可实现分布式存储和用户透明的分布式数据库操作。

2.1 空间数据库模型

理论上空间数据库模型有:混合数据库模型(Hybrid Model)、统一数据模型(Integrated Model)、扩展结构模型(Extended Model)、面向对象模型(Object-Oriented Model)和时空数据模型(Spatial-Temporal Model)。随着各种商业数据库的发展,目前在 GIS 领域中应用比较成熟的是统一数据模型、混合数据模型和扩展结构模型。

混合数据库模型把空间数据和属性数据分开存储:空间数据及其拓扑关系存放在文件

中,属性数据存放在关系数据库中,二者通过唯一的标识符建立联系。SuperMap 的 SDB 和MapInfo 的Table 格式采用的都是混合模型。混合模型适用于小型 GIS应用系统,无法应对海量空间数据的处理,同时,数据的安全性、一致性难以保证,基于文件的存储系统也难以实现多用户并发操作。

统一数据模型是一种纯关系数据模型,空间数据和属性数据都用关系数据库的二维关系表来存储,使用标准关系连接机制建立空间数据与属性数据的关联。国内 SuperMap SDX+和国外 ESRI 的Arc SDE、MapInfo的 SpatialWare 均采用了统一数据模型。统一数据模型易于与数据库现有的功能相结合,保证数据的安全性;由于空间数据和属性数据都用关系表存储,数据的一致性容易维护,“空间数据-属性数据”一体化存储和“矢量-栅格”一体化都较容易实现;数据库提供的并发控制机制也可以用于空间数据的多用户并发操作。

更多内容请查看pdf