73、基于MQTree的多XML视图查询重写方法

基于MQTree的多XML视图查询重写方法

1. 问题定义

在处理XML数据库查询时,我们面临的问题是:给定一个XML数据库T,以及一组使用XPath {//,/,*,[]} 定义在T上的预定义物化视图V,如何高效地为XPath {//,/,*,[]} 查询q生成关于视图集V的最大包含查询重写计划?

2. MQTree的构建

为了提高多XML视图查询重写的效率,我们将XML视图树模式组织成一个MQTree(Multiple Queries tree),具体构建方式如下:
- 给定一个定义在同一XML文档上的XPath树模式集Q = {q1, … qn},为qi(1 ≤ i ≤ n)中的每个节点分配一个唯一的id[qi],并使用isMain来指示该节点是否在主路径上。
- MQTree T = (V, E, r) 的根节点r初始化为IDS[r] = {id[q0]} ∪ … {id[qn]},表示r是qi(1 ≤ i ≤ n)根节点的映射节点。
- 如果MQTree中从根节点到节点n的路径与qi中从根节点到节点m的路径等价,则IDS[n] = IDS[n] ∪ {id[qi]},n是m的映射节点;否则,将m添加到T中节点k的下方,k是qi中n的父节点的映射节点,且IDS[m] = {id[qi]}。

下面是一个MQTree构建的示例:
假设有两个XPath树模式p1和p2,通过合并它们的共享路径可以得到MQTree p3。单(双)线表示节点之间的PC(AD)关系。可以看到,MQTree的根节点是由p1和p2的根节点合并而来的。例如,p1中的节点q3和p2中的节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值