关系查询的通用时空权衡及弦图相关问题研究
1. 关系查询的时空权衡
在关系查询中,查询回答是一个关键环节。当给定一个访问请求时,我们首先检查是否存在一条经过 $L_{heavy}(x_3)$ 中某个重值的 4 - 路径。这可以通过视图 $V_1$ 和 $V_2$ 在 $O(|D|/Δ)$ 时间内完成。具体步骤如下:
1. 使用 $V_1$ 的索引获取最多 $O(|D|/Δ)$ 个 $x_3$ 的值。
2. 使用 $V_3$ 的索引获取最多 $O(|D|/Δ)$ 个 $x_3$ 的值。
3. 通过遍历 $O(|D|/Δ)$ 个 $x_3$ 的值,并检查 $V_1$ 和 $V_2$ 中元组的 $x_1$ 和 $x_5$ 的绑定值,在 $O(|D|/Δ)$ 时间内对结果进行交集操作。
如果没有找到这样的 4 - 路径,我们会检查使用 $x_3$ 的轻值的 4 - 路径。借助预处理阶段构建的数据结构,这也能在 $O(|D|/Δ)$ 时间内完成。
从上述过程可知,我们可以在时间 $T = O(|D|/Δ)$ 内计算查询答案。根据预处理阶段的分析,所需空间为 $S = O(|D|^2/Δ + |D| · Δ)$。当 $Δ ≥ \sqrt{|D|}$ 时,空间变为 $S = O(|D| · Δ)$。
对于一般路径查询,我们可以利用 4 - 路径查询的算法来改善长度大于 4 的一般路径查询的时空权衡。对于 $k ≥ 4$,存在一种数据结构,其空间 $S = O(|D| · Δ)$,回答时间 $T = O((|D|/Δ)^{\frac{k - 2}{2}})$($Δ ≥ \sqrt{|D|}$)。其时空权衡为 $S · T^{\frac{2}{k
超级会员免费看
订阅专栏 解锁全文
276

被折叠的 条评论
为什么被折叠?



