Skip to main content
QUICK REVIEW

[论文解读] Efficiently Computing Provenance Graphs for Queries with Negation

Seokki Lee, Sven Köhler|arXiv (Cornell University)|Jan 20, 2017
Scientific Computing and Data Management参考文献 21被引用 4
一句话总结

本文提出了一种统一且高效的框架,用于计算证明图,以解释一阶查询中元组为何出现以及为何缺失,这些查询包含否定。该方法引入了扩展的触发规则,以捕捉成功和失败的推导过程,采用基于SQL的重写实现可扩展执行,并通过早期修剪无关证明,显著优于先前的方法。

ABSTRACT

Explaining why an answer is in the result of a query or why it is missing from the result is important for many applications including auditing, debugging data and queries, and answering hypothetical questions about data. Both types of questions, i.e., why and why-not provenance, have been studied extensively. In this work, we present the first practical approach for answering such questions for queries with negation (first-order queries). Our approach is based on a rewriting of Datalog rules (called firing rules) that captures successful rule derivations within the context of a Datalog query. We extend this rewriting to support negation and to capture failed derivations that explain missing answers. Given a (why or why-not) provenance question, we compute an explanation, i.e., the part of the provenance that is relevant to answer the question. We introduce optimizations that prune parts of a provenance graph early on if we can determine that they will not be part of the explanation for a given question. We present an implementation that runs on top of a relational database using SQL to compute explanations. Our experiments demonstrate that our approach scales to large instances and significantly outperforms an earlier approach which instantiates the full provenance to compute explanations.

研究动机与目标

  • 解决在包含否定的查询中同时解释答案为何出现和为何缺失的挑战,这需要统一‘为何’和‘为何不’的证明。
  • 克服现有方法在实例化完整证明图时的可扩展性限制,这些方法在大型数据库中变得不可行。
  • 开发一种实用且高效的方法,仅计算特定用户问题相关的证明部分(即解释),避免不必要的计算。
  • 通过标准SQL在大规模关系型数据库上实现高效的证明计算,使该方法可在真实系统中部署。
  • 支持包含多个变量和否定子目标的复杂查询,这些在真实世界的数据分析和审计工作负载中很常见。

提出的方法

  • 引入‘触发规则’——Datalog规则的重写形式,用于捕捉每个规则应用的推导上下文,包括输入元组的依赖关系。
  • 将触发规则扩展以建模失败的推导,通过跟踪缺失的输入元组,实现通过负证明解释缺失答案。
  • 将‘解释’定义为与特定查询(为何或为何不)相关的最小证明子图,早期修剪无关部分。
  • 将证明计算编译为可在关系型数据库上执行的SQL查询,实现高效且可扩展的评估。
  • 应用优化技术,如基于查询绑定约束的早期修剪非相关路径,以减少计算开销。
  • 通过将证明逻辑表示为一组关系视图的SQL形式,支持包含否定、存在量词和多表连接的复杂Datalog查询。

实验结果

研究问题

  • RQ1如何高效计算包含否定的一阶查询中正向和负向答案的证明?
  • RQ2我们能否通过仅计算特定查询的相关子图(即解释)来避免构建完整的证明图?
  • RQ3我们的方法在数据库规模和查询复杂性增加时的性能表现如何,特别是在包含多个变量和否定的查询中?
  • RQ4我们能否在显著优于现有方法(这些方法实例化整个证明图)的基础上实现性能的显著提升?
  • RQ5在减少缺失答案的证明解释的大小和计算时间方面,哪些优化是有效的?

主要发现

  • 所提方法显著优于先前的DM方法,后者仅限于小于10,000元组的数据集,而本方法可扩展至更大规模的数据库。
  • 对于包含多个变量和否定的查询(如r4、r5、r6),该方法保持高效,避免了DM在小数据集上也出现的超时问题。
  • 对于‘为何不’类问题,本方法的运行时间随数据库规模增长呈次二次方增长,而DM在小规模实例之外运行时间变得不可行。
  • 该方法在DBLP和TPC-H工作负载上均表现出可扩展的性能,且在不同查询类型和绑定模式下保持一致的加速效果。
  • 修剪优化通过仅关注相关推导路径,显著减小了计算出的证明图大小,从而加快查询执行并降低内存使用。
  • 基于SQL的实现使该框架可部署于标准RDBMS,使其在真实世界的数据审计和调试应用中具有实用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。