论文部分内容阅读
随着Internet技术的迅速崛起和在全球范围内应用的飞速发展,信息共享已经成为一种必然的要求,地理信息也不例外。集成分布式的、异构的信息一直是数据库领域的一个活跃的研究方向。在空间数据库领域,由于空间数据结构复杂,在GIS发展初期没有一定的工业标准可循,因而这些GIS平台所采用的数据结构、数据组织方法和数据在系统中的存储和表现形式都各不相同。而且大量的空间数据被存储在不同的物理位置上,这使得GIS的数据共享问题变得尤为突出。
本课题组设计并开发了一个基于GML/XML和扩展XQuery的空间数据集成系统的原型,该系统用中间件的方式集成空间和非空间数据。空间数据集成系统屏蔽了分布式的空间数据源之间的差异,以透明的方式向用户提供了一致的访问接口,实现了空间数据资源的共享和互操作。
本文主要探讨了面向空间数据集成的XQuery语言的设计和实现,以及在此系统中使用的查询分解算法。XQuery是W3C提出的XML查询语言标准,它能够对各种结构复杂的XML文档进行数据的检索、处理和转换。作者在此系统中主要负责扩展XQuery语言的设计与实现,其核心是XQuery的查询分解算法。
分布式XQuery查询需要从多个分布式的数据源中获取数据,用户在编写分布式查询时,只需考虑从不同的数据源中获取什么样的数据,以及最后的查询结果用什么样的形式返回,而无需考虑查询是如何由中间件分配给各个数据源的。因此,需要一个有效的查询分析和变换算法,根据各个数据源的能力,将全局的针对多数据源的查询分解为多个单数据源子查询。本文介绍的查询分解算法实现了空间数据库分布式查询的功能。用户在编写分布式查询时,可以简单地将多个数据源理解为多个XML文档,而无需对分布式查询的处理做任何的干预。
我们把XQuery标准语言到XQuery核心语言的转化过程称为XQuery的规范化。XQuery的规范化是XQuery语言实现和优化的基础。XQuery核心语言是XQuery标准语言的子集,它能够精确地表达查询的语义。本文给出了空间数据集成系统的XQuery规范化算法。我们以W3C的形式语义为基础,在考虑了执行效率、空间数据集成的要求等因素后,设计了XQuery的规范化算法,给出了XQuery标准文法到核心文法的映射关系。
最后,本文介绍的XQuery翻译算法在语义不变的基础上把XQuery核心表达式树转变为由FXQL语言表达式树。FXQL语言是本系统的查询计划描述语言,翻译为FXQL语言后,其形式更为简单,语义更为清晰,精确地描述了查询的执行动作。