论文部分内容阅读
XML查询技术一直是国际和国内很多研究所关注的热点,随着Web应用的快速增长,XML数据逐渐成为数据存储的一种新的标准,由于XML数据半结构化和有序性的特点,针对XML数据的复杂Twig Query(CTQ)的应用也越来越多,受到研究者的广泛关注。相比于树状结构的Twig Query(TQ),CTQ包含following-sibling,following等偏序关系的XPah轴,不同用树状模型表示,处理也更加复杂。 现有的复杂XML查询的处理策略可以分为两大类,在基于关系存储系统中,一般将CTQ查询转化为多重连接关系查询执行;在Naive XML数据管理中,一般是将CTQ首先分解成树状查询TQ,然后将各个TQ查询的结果通过结构连接算法连接起来,构成CTQ的查询结果。后者将TQ作为整体求解,能够部分的减少冗余中间结果;但是,无论是Naive XML数据库还是基于关系数据库的XML查询引擎,由于在处理中包含连接操作,不可避免的都生成冗余的中间结果,查询执行中的连接往往需要耗费大量时间。 本文研究CTQ上的查询技术,提出了一种基于整体连接算法的CTQ查询处理方法。包含查询表示模型、查询处理算法和查询执行框架等三个方面的内容。这个全新的CTQ查询处理方法是一种基于XML索引的查询处理策略,可以基于最简单的标签索引,也可以扩展到更复杂的结构索引上已达到更优化的查询执行效率。本文的工作集中关注XML查询技术,也就是算法方面的研究,这些查询技术和新的查询处理方法与现有提出的各种XML查询优化技术是完全兼容的。 本文的主要贡献可以概括如下: 1.提出了CTQ的表示模型TQG,它能够表达各种形式的XML查询,表示简单灵活。TQG可以作为XML查询处理的底层框架;同一个TQG有若干等价的表示形式,它们之间可以自由的互相转化,为高效的查询处理过程提供选择。最后,TQG上允许多样化的XML查询处理优化,包括根据模式信息进行查询的约简等。 2.提出了基于层次缓冲的兄弟(LR)关系结构连接算法,同简单的归并连接算法相比,这种算法是CPU最优的,同时,它能够按照左兄弟或者右兄弟的顺序输出连接的结果,可以有效的集成到改进后的整体连接算法中。此外,它也是使用关系引擎处理CTQ查询的关键技术。 3.提出了基于层次缓冲的整体连接算法,引入了“层次缓冲区”的缓存策略,可以将偏序的兄弟关系的处理集成到整体连接算法中,极大的扩展了整体连接算法的适用范围,是高效的CTQ查询处理的技术基础。本文仔细的论证了算法的正确性。 4.提出了面向CTQ查询的新的查询处理方法。在这个处理方法中,首先将CTQ表示成TQG,并进一步转化为“优化TQG”表示;接着,调用基于层次缓冲的整体连接算法执行查询;如果查询包含following/preceding轴,则引入“变量谓词”的策略进行特别的处理。这种处理方法一遍扫描数据,并且不产生中间结果;能够处理包含各种XPath轴的CTQ查询。作为一般的查询处理方法,向上支持各种查询优化的技术。 5.分析了本文提出几个算法的性能,并且与现有工作中经典算法进行了比较,大量的实验结果表明,本文提出的兄弟关系结构连接算法和整体连接算法是非常有效的。