论文部分内容阅读
XML索引查询是XML技术研究的重要课题。虽然XML索引查询已经取得一些研究成果,但由于XML数据自身的特点,XML索引查询技术在理论上和实现上都还存在很多难点。本文对XML路径索引查询的一些关键技术进行了研究,包括XML多分支路径索引查询以及XML索引的动态更新技术,取得的成果体现在以下四个方面:(1)设计了XML索引动态更新算法目前XML路径索引已经得到较为全面的研究,但是XML索引地动态更新没有有效地解决。本文设计了一种XML索引pathvalueindex,它由两部分组成:路径索引和属性索引。其中路径索引查找正则路径,属性索引查找正则路径中带有谓词的等值查询。索引pathvalueindex能够实现XML索引地动态更新,当XML文档中插入新的文档片断,或删除XML文档中的某些结点,或修改XML文档中某些结点值时,XML索引也能动态更新。(2)提出了XML多分支路径索引查询算法DEPTHJOIN目前XML单路径查询和简单的分支路径查询已经得到了较好地解决,但如何高效地实现XML多分支路径查询还没有较好的方法。本文提出了基于索引的XML多分支路径查询算法DEPTHJOIN。该算法首先对XML文档进行编码并创建索引,然后在对查询树进行查询匹配的过程中,采用多栈存储多分支路径中的单路径,对分支结点采用索引判定其孩子结点是否具有共同的祖先结点或父结点。与现有的XML分支查询算法相比算法DEPTHJOIN充分利用索引,不需要进行单路径的连接操作。(3)提出了XML多分支路径索引查询算法MBPQ解决多分支路径查询算法的一般思路是将多分支路径拆分成单路径,分别对单路径进行查询,然后将单路径的查询结果进行多重循环匹配得到多分支路径查询结果,查询效率较低。本章提出了一种高效的XML多分支查询算法MBPQ。该算法首先对XML文档树进行编码,然后对多分支路径各结点进行编号,编号后将多分支路径拆分成单路径并对单路径进行查询,利用栈匹配具有共同祖先结点的单路径查询结果,最后得到多分支路径查询结果。与现有的XML多分支查询算法相比,算法MBPQ充分利用多分支路径的特点,大大减少循环匹配次数。(4)开发了XML路径索引查询及索引更新原型系统,通过功能测试表明系统能正确运行。