高效处理 XML 树枝模式:一种新颖的单阶段整体解决方案
1. 引言
XML 已成为互联网上数据交换和集成的广泛接受的标准,高效处理 XML 查询对于 XML 技术的未来部署至关重要。XML 树枝查询通过联合评估多个路径表达式来检索文档元素。现代 XML 树枝查询处理方法,如 Twigstack 及其相关方法,通常先将树枝查询分解为一组二元模式或单路径,然后搜索这些单个模式/路径的匹配项,最后将这些匹配项拼接在一起形成树枝查询的答案。然而,这种两阶段方法可能会产生较大的开销,特别是在匹配路径数量较多时。
为解决这一问题,我们提出了一种单阶段整体树枝评估算法,该算法直接输出完整的树枝匹配,无需后续的合并过程。我们的方法在形成完整的树枝匹配之前保留路径匹配,避免了中间结果的输出和输入,也无需额外的合并阶段。实验结果表明,我们的算法优于 Twigstack 和 Twig2Stack。
2. 背景
许多树枝查询评估算法已被提出,以下是一些常见算法的特点:
| 算法名称 | 特点 | 缺点 |
| ---- | ---- | ---- |
| TwigStack | 仅将肯定对最终结果有贡献的节点压入栈中,用于祖先 - 后代查询,是两阶段算法(路径匹配生成阶段和合并阶段) | 两阶段开销大,中间结果可能很大 |
| Twig2Stack | 单阶段算法,无两阶段开销 | 可能将对最终结果无贡献的节点压入栈,增加额外工作,空间复杂度高 |
| TJFast | 采用扩展的 Dewey 编码方案,能优雅表示路径上节点关系 | 存储开销大,尤其是长路径 |
超级会员免费看
订阅专栏 解锁全文

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



