论文部分内容阅读
XML已经成为网络上数据描述和数据交换的标准;在数据存储领域,XML也发挥着重要的作用。因此,对XML数据的查询的需求也越来越广泛。W3C组织在满足XML查询需求的基础上,针对XML数据的特点,提出了XQuery语言,其1.0版本在2007年已经成为XML查询的推荐标准。XQuery在XML数据查询中有着至关重要的作用,它与XML数据的关系正如SQL语言与传统关系数据库的关系。
但是,XML查询的效率是一个不容回避的问题。人们考虑种种方法对XML查询进行优化。其中,参考关系数据库领域的经验,提出XML查询代数和基于查询代数的优化是手段之一。一套代数系统包括数据模型和在数据模型上定义的一组操作,相应地,XML查询代数是对遵循一定数据模型的XML文档集合的操作集。建立在XQuery数据模型(XDM)上的XQuery形式语义是W3C提出的XML查询代数。严格的形式语义确保了XQuery语义的完整性,是XQuery实现重要的参考文献。
但XQuery形式语义只确保了XML查询的正确性,对优化没有进行太多考虑。因此作者参考关系代数,提出了一种XML查询代数XQA。XOA把XQuery数据模型(XDM)中的序列扩展为广义表,并采用一种函数式XML查询语言FXQL组织查询计划。XQuery查询可以翻译为FXQL表达式。在XQA的基础上,作者提出了去除相关性方法。XQA中的相关性指的是在一个FXQL嵌套循环查询中,内层查询使用了外层查询的迭代子;去除相关性主要应用连接算子代替嵌套相关查询。此优化能够提高查询效率,解除数据依赖,提高可并行性。
作者把以上设计在GeoQuery系统中实现。GeoQuery系统是作者所在课题组设计并实现的面向空间数据集成的XQuery查询系统。它采用XML作为统一的数据格式,并采用XQuery作为查询语言。
作者修改了W3C用例中的部分例子,使用GeoQuery系统进行执行,对比优化前和优化后的执行时间,结果显示去除相关性方法能够提高查询效率。