当前位置:文档之家› 关系型数据库存储空间数据的研究和应用

关系型数据库存储空间数据的研究和应用

关系型数据库存储空间数据的研究和应用李敏长安大学汽车学院西安 710054胡群袖中南大学信息科学与工程学院长沙 410083lilacesuefvy@摘要:对空间数据库的研究是当前的GIS领域的一个热点。

本文对于空间数据在关系数据库中的存储表示和查询过程进行了研究,开发出关系型数据库与MapGIS应用程序之间的中间件,能够将MapGIS明码文件数据转储到SQL SERVER数据库中,并从数据库中读取数据进行显示查询。

关键字:空间数据库,中间件,数据转储, MapGIS明码文件1. 引言空间数据是地理信息系统的血液,而如何有效地存储空间数据就成为地理信息系统的核心问题。

受以往数据库的限制,空间数据和属性数据是分开存储的,随着GIS应用向分布式管理系统领域的转移,在数据共享、网络通信、并发控制等方面出现了许多难以解决的问题。

大型关系型数据库技术的日益完善,促使GIS软件都在向集成管理的方向发展,即充分利用关系数据库管理系统的优势,真正实现了空间数据一体化管理。

在空间数据库的数据模型中能提供空间数据类型和查询语言,支持空间关系、空间特征和空间操作。

在空间数据库的实施中支持空间数据类型,可进行有效的检索和索引,支持空间选择和空间连接[1]。

利用现有的成熟关系型数据库技术进行空间数据的管理,涉及到怎样将空间数据导入到关系型数据库中,数据库的逻辑模型等方面。

本文结合当前的关系型数据库开发出一个中间件,将MapGIS的明码数据文件转储到关系型数据库中,使MapGIS应用程序能够通过中间件实现对数据库中的图形数据进行显示和查询。

2. 空间数据库空间数据库管理技术是当前数据库领域的一个研究热点。

目前GIS软件与大型商用关系型数据库管理系统(RDBMS)的集成采用面向对象技术和中间件技术两种方式来实现[2]。

面向对象技术是指通过对象的行为(空间数据操作)来控制对象的属性(空间数据及其属性数据),克服空间数据的非结构化特征。

如MapInfo公司的SpatialWare是第一个在“对象-关系”型数据库环境下基于SQL进行空间查询和分析的空间信息管理系统。

它不仅实现了在数据库中存储空间数据类型的目标,而且建立了一套基于标准SQL的空间运算符,使得空间查询和分析能在服务器端进行。

其高效的基于R-Tree的空间索引技术,保证了空间查询的快速性和准确性。

中间件是GIS平台与空间数据库之间的转换层,通过中间件的作用,将不同的操作系统平台和数据库平台的差异之处屏蔽在中间件之后,将面向空间数据管理及应用所需的技术高度专业化地实现出来,供不同的客户端高效地共享和互操作。

数据访问中间件为异构空间数据的共享和互操作性提供了良好的解决方案,通过提供统一的访问接口和操作模式,屏蔽- 1 -空间数据的异构性和分布性。

目前主要有三种类型的空间数据库:全关系型空间数据库(RDB)、面向对象型空间数据库(OODB)、“对象-关系”型空间数据库(ORDB)。

在不改变原有的关系数据库系统的情况下管理空间数据,一般可以通过“二次开发”来定义和处理不同“空间对象”的不同操作,把矛盾和困难“后推”,交给不得不解决问题的应用程序去完成。

与传统数据库系统不同,面向对象数据库的数据结构不是记录或元组,而是具有复杂结构的对象。

对象最适应于空间数据的表达和管理,它不仅支持变长记录,而且支持对象的嵌套、信息的继承与聚集。

但面向对象数据库的技术与理论都还不成熟。

对象关系型数据库(ORDB)通过使用用户定义的函数和索引方法,来定义、存储、检索和操纵数据库中用户定义的数据类型。

三种数据库各有各的优势和缺点,因而对空间数据采用何种数据库存储方式至今还没有完全统一的标准。

目前处理大量数据的全关系数据库已经比较成熟,形成了工业标准,依赖于全关系数据库系统的巨大的数据处理能力存储空间数据基本上可以满足工程项目的需求;而且就全关系型数据库采用的关系模型而言,将点、线、面等空间数据类型作为基本数据类型,建立全关系化的空间数据模型,并在标准SQL语言中扩充空间数据和空间数据项的表示方法,在数据库中采用这种空间数据模型在语言的用户表示上与标准SQL保持统一,并提供了数据模型、数据表示和数据完整性约束,而且减少了空间数据库扩展的开发量。

3. MapGIS明码文件的数据转储和显示MapGIS的明码数据文件是ASCII码的文件,是MapGIS矢量数据文件的明码表示方式。

明码文件以点、线、面的形式分开存储空间实体,易于读写。

MapGIS明码文件根据空间几何要素分为三类:点文件(*.wat)、线文件(*.wal)和区文件(*.wap),每一类文件都由文件头和数据区2部分组成。

文件头是固定长度的,表示文件的类型;而数据区则记录空间数据,视文件类型的不同而有区别,但是每种类型具有固定的格式。

图1 数据库逻辑模型为了实现MapGIS- 2 -明码文件数据转储到关系型数据库中,本文开发了一个中间件用来转储数据,并负责对数据的查询。

图形的显示是通过中间件与MapGIS 提供的图形显示控件进行绑定。

本文中数据库管理系统选用十分成熟稳定的商用关系型数据库SQL Server 2000来进行数据的存储;由于MapGIS 提供了VB 的开发控件,能够在VB 中方便的进行图形编辑和控制,因此中间件的开发工具采用Visual Basic 首先进行 6.0。

关系型数据库的、线、面分别用图2 转储流程图 设计,秉承一个总体设计原则:在关系型数据库中,对空间数据管理必须采用连续数据结构[3]。

遵照OpenGIS 的数据存储规范,使用全关系化的方式实现数据存储,并采用分层技术,即根据地图的某些特征,把它分成若干层,整张地图是所有层叠加的结构。

将地理空间数据归结为几何元素、空间实体、图层、地图四层结构,每一种结构都对应于空间数据的一种表达。

层是由空间实体组成,而空间实体则由几何要素组成,几何要素包括点、线、面等基本要素。

根据MapGIS 明码文件的特征,数据库设计的逻辑模型如图1所示:笔者将点不同的库进行分别存储,每个库中的元数据表记录了该库中所有空间实体的图层信息。

地图元数据表则将所有的空间实体和图层结合为地图。

具体数据库的结构篇幅所限,不一一列举。

利用中间件从数据库读取数据可以采用ODBC 、ADO 、DAO 等方式来连接数据库。

本程序中采用ODBC API 来进行连接。

图3 数据读取流程图- 3 -中间件的转储流程图如图2所示。

数据库读取显示的流程图如图3所示。

数据转储模块界面示意图如附图1所示。

转储之后某文件在数据库中的存储示意图如附图2所示。

从数据库读取数据进行显示的界面如附图3所示。

4.总结本文中所开发的中间件只是针对于MapGIS的明码文件作数据的转储和读取,实现了空间数据在关系型数据库中的存储,并能够通过中间件从数据库中进行读取查询。

接下来的工作就是需要将中间件进行扩展,使其能够将目前常用地理信息系统的文件数据转换到数据库中,并实现数据库的空间数据读取,屏蔽各GIS系统之间文件格式差异。

附图1 数据转储界面示意附图3 数据显示程序示意附图2 数据库中数据存储示意参考文献[1] 谢昆青,马修军,杨冬青等译空间数据库机械工业出版社 2004[2] 王春晓,李佳田,王定勇等.集成型空间数据库技术探讨与应用实例.遥感技术与应用[3] RALF Hartmut Guting. An introduction to spatial database systems. Journal of Very Large Databases, 1994[4] 李爱勤,龚健雅,李德仁.大型GIS地理数据库的无缝组织.武汉测绘科技大学学报,1998- 4 -[5] 刘光. 地理信息系统――组件开发篇. 中国电力出版社. 2003- 5 -- 6 -Research and application of storing spatial datain relational databaseLi MinSchool of Automobile Chang’An UniversityXi’an 710054Hu QunxiuSchool of Information Science and EngineeringCentral South University ChangSha 410083AbstractThe study on space database is a focus of present GIS field. This article studies the course of storage and inquires about the spatial data in the relational database. A middleware between relevant database and MapGIS application programs is developed. It can transfer the MapGIS plain-code file to storage in SQL SERVER database, and read data from database to show out and for inquires.Keywordsspatial database, middleware, data storage, MapGIS plain-code file。

相关主题