论文部分内容阅读
GIS中的数据可以分为两类:空间数据和属性数据。传统的GIS软件由于无法解决空间数据的问题而采用文件系统或文件与关系数据库混合模式来管理GIS数据。随着数据库技术的发展,为了使GIS的数据能够表达更加现实的世界,并且能充分利用商用数据库中已经成熟的众多特性,如内存缓冲、快速索引、数据完整性和一致性保证、并发控制、安全和恢复机制及分布式处理机制,面向对象的全关系型数据库设计成为近年来GIS空间数据模型研究的趋势。 但是,无论采取那种数据存储机制,由于关系数据库本身的限制,对空间数据的查询和分析操作始终是一个棘手的问题。目前已经有一些数据库提供了对空间数据类型的支持,但是其操纵手段还比较原始和初等。因此,就目前的地理信息系统而言,比较系统地完成基于空间关系的查询和基于空间和属性的综合查询还较为困难。为此,众多GIS专家提出了空间查询语言以作为解决问题的方案,空间查询语言的研究已引起广泛的关注。 目前,关系数据库的标准结构化查询语言SQL发展的已经非常成熟,具有面向问题和接近自然语言的良好特征,已经被业界所普遍认可,因此,基于标准SQL的空间扩展查询语言——GSQL将是管理和分析空间数据的一个趋势。 新一代大型GIS产品MAPGIS7.0是武汉中地数码科技有限公司开发的面向网络海量空间信息的大型GIS基础软件平台。它采用全关系型数据库管理方案,采用面向对象的设计思想,实现了概念上的统一。空间查询语言就是其中的一个重要模块。 本文设计并实现的空间查询语言GSQL就是在研究OpenGIS规范和SQL3国际标准的基础上,结合MAPGIS7.0软件的空间数据模型设计,运用运用词法分析、语法分析等编译原理完成对输入GSQL语句脚本的解释,将其构造为一棵语法树,然后调用MAPGIS7.0客户端查询分析接口实现空间数据的查询分析操作,最后通过GSQL查询分析器输出查询分析结果。 具体地,论文的主要工作与创新点如下: 首先,论文阐述了空间查询语言的发展背景和主要特征,提出了本课题的重要研究意义和主要研究内容。 其次,对本课题完成所依赖的环境——MAPGIS7.0软件空间数据模型进行详细的介绍,目的在于阐述GSQL解释器设计和实现的要素类等空间数据概念和面向实体的空间数据模型。 第三,通过对GIS标准OpenGIS和SQL最新标准SQL3的研究,着重阐述了基于SQL的空间查询语言GSQL,主要是通过扩充空间数据类型和空间数据操作来实现的。 第四,重点讲述了本文所设计和实现的GSQL解释器。从语法规则的定义、语法分析