论文部分内容阅读
为了实现XML的查询优化,近年来人们相继提出了很多索引技术和连接算法[12,13,14,15,16,23,24]。这些索引主要是根据边标签和元素值建立的。然而有的索引不包含所有的元素结点,因而在进行查询时许多路径仍需要检测;有的在向前或向后遍历时产生了大量的冗余数据,从而造成查询代价较大。另外,在所提出的算法中,尽管有的算法,如MPMGJN算法[23]优于标准的RDBMS连接算法,但是该算法为匹配基本的结构关系,特别是在父子关系情况下,执行了大量不必要的计算和占用了大量的I/O资源;有的算法虽然代表了结构连接算法的先进水平,如Stack-Tree-Desc[24]连接算法,但是它没有利用索引结构而是顺序浏览输入列表。这样,必然浪费I/O资源,影响连接的速度。针对以上情况,本文做了以下几个方面的工作:① 由于采用传统的Numbering Schema方法来表示XML文件结构不便于元素更新,本文在改进的基础上提出了Sparse Numbering Schema方法。与传统方法相比,其优点在于:由于在插入新结点时不需要重新计算其结点的start和end值,树结构更新效率得到提高;树的创建只需遍历一次文档,进一步地节省了建树开销;此外,它还能为索引提供一个相对持久和稳定的参考。② 鉴于目前关于Numbering Schema存储方法的研究较为少见,本文针对Sparse Numbering Schema进行研究,给出了在关系数据库中的存储方法。该存储方法不仅有利于根据start值快速建立索引,而且可以节省存储空间。③ 本文将关系数据库中B+树索引技术与Sparse Numbering Schema相结合,提出了一种新的XML文件索引结构——B~+树结构索引,它对XML查询中连接操作和元素定位操作的优化有着重要作用。进而,通过引入指针对该索引进行改进,提出了一种带有Sibling Pointer的B~+树结构索引(简称B~+-SP)。利用这种索引可以克服元素查找总是从树的根部开始进行的缺陷。④ 基于B~+-SP索引,本文还研究给出了Anc-Desc-B~+-sp连接算法。经理论分析,其算法的时间复杂度O(|A|+log|A|)比没有采用该索引的Stack-Tree-Desc算法[24]的时间复杂度O(|A|+|D|+|outlist|)明显降低,因|D|≥|A|,故|D|+|outlist|>>log|A|。经初步实验表明,本算法是一个有效、快速的连接算法。⑤ 在XML查询中,影响查询时间的另一个重要因素是对涉及的XML数据源的定位问题。为解决XML数据源的快速定位问题,本文提出了一种分布式XML数据源定位系统框架,协作式XML搜索引擎(CXSE)。CXSE通过基于站点选择搜索和对XML数据源计分等方法来缩短收集时间,来实现对XML数据源的快速、准确定位。特别地,当在XML查询中同时涉及多个XML数据源时,该并行搜索技术也能起到一定的效果。