2. 基于区间编码的索引
对于区间编码索引,树T中的每一个结点被赋予一个区间编码[begin,end],满足:一个结点的区间编码包含它的后裔结点的区间编码.也就是说,树T中 的节点u是节点v的祖先,当且仅当start(u)
第一个区间编码方案是Dietz编码,树T中的每一个结点被赋予一个具有先序遍历序号和后序遍历序号的二元组.由于树T中的一个祖先结点u在先序遍历(后序遍历)中必然出现在它的后裔结点v之前(之后),因此, 节点u和v是祖先/后裔关系,当且仅当pre(u)
另一个区间编码索引的典型例子是XISS索引,它为每个节点赋予一个数字对,其中order为扩展的前序编码,size为节点的子孙的范围。对一棵文档树中的任意节点X和Y,当且仅当order(x)
XISS索引通过将原始查询语句分解为子表达式。然后分别针对这些子表达式实现查询,最后对这些中间结果进行联结获得查询结果集。从而能较好地支持含通配符的查询语句。不过,它是对每一个中间结果进行联结后得到最终查询结果。虽然这样一种方法的确能够解决所有的通配符问题,可是,这种中间结果的联结很有可能是非常耗时的,特别是对于长路径的简单表达式。
两种索引机制的比较
基于路径的索引主要基于节点合并的策略,通过节点等价、路径等价等技术,得到比原始文档小得多的索引结构,它的结构仍然是树型的,所以在处理查询时,基本上仍须遍历整个索引树才能得到结果。基于路径的索引可以很好地支持简单路径表达式的查询,但是对于正则路径表达式,它效果不是很理想。
基于节点的索引通过编码技术索引每一个节点,节点之间的结构关系通过编码可以在常数时间内确定它可以很好地支持正则路径表达式,但是对于长的路径表达式,尤其是在查询产生的中间结果很多的时候,节点索引的连接操作代价高昂。
基于路径的索引和基于节点的索引各有优缺点,但可以优势互补。目前在实际应用中,基于节点的索引应用更为广泛,研究得也比较成熟,因此,达梦公司有关XML索引结构研究主要以基于节点的索引为主,并适当参考基于路径的索引加以改进。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



