关系型数据库存储空间数据的研究和应用
- 格式:pdf
- 大小:431.39 KB
- 文档页数:6
关系型数据库存储空间数据的研究和应用
李敏
长安大学汽车学院西安 710054
胡群袖
中南大学信息科学与工程学院长沙 410083
lilacesuefvy@
摘要:对空间数据库的研究是当前的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 -