论文部分内容阅读
随着Internet的快速发展,XML已经成为网上数据表示和数据交换的标准格式。大量的Web数据多以XML文档形式出现,随之W3C开发了XQuery查询语言用来作为XML数据查询的标准语言,如何能够使此查询语言的效率更有效且快速地检索和处理XML文档,已经成为XML数据库查询优化的一个重要研究课题。本文的研究工作主要围绕XQuery查询语言的优化展开,分别从FLWOR表达式和路径表达式两个部分进行研究,具体为以下三个方面。首先在先前学者研究的基础上补充了对order by子句的重写规则,以及对整个XQuery查询语言中FLWOR表达式的查询重写方法,其中FLWOR表达式由for、let、where、order by和return子句组成,它的重写对XQuery查询优化起着重要的作用。对它的研究先前主要在FLWR表达式上,然而缺少了对order by子句的探讨,此子句是对返回结点集内的数据进行排序,并且执行是比较复杂和耗费时间的。因此,本文按for子句循环嵌套内和嵌套外把order by子句分成三种情况进行讨论,并提出了它与其他子句结合后如何对FLWOR表达式进行重写的方法,目的是减少结点排序的重复执行。实验结果表明重写后的语句执行时间总是优于之前的。其次提出一种基于路径表达式的快速确定XML结点间祖孙和父子关系的编码方法。此方法在结点插入和更新时,不需要对整个XML结点树进行重新编码,另外由于左子树是孩子结点,右子树是兄弟结点,因此在检索兄弟结点时,避免了访问左子树的检索时间。最后在使用自动机简化路径表达式的基础上,提出一种基于快表的快速定位XML结点的方法。此方法在路径导航时,避免了重复访问同一结点,从而提高了检索效率,并且通过实验证明了使用此方法后的语句执行时间低于之前的。