To not miss the forest for the trees -- a holistic approach for explaining missing answers over nested data (extended version)
对缺失答案的基于查询的解释确定查询的哪些运算符负责未能返回感兴趣的缺失答案。这种类型的解释已被证明在各种上下文中是有用的,包括调试复杂的分析查询。这种查询在Apache Spark等大数据系统中很常见。我们提出了一种新的方法来产生基于查询的解释。我们的方法是第一个支持嵌套数据并考虑修改数据模式和结构的运算符(例如,嵌套和投影)作为缺失答案的潜在原因。为了有效地计算解释,我们提出了一种启发式算法,采用两种新的技术:(i)推理多个模式的替代查询和(ii)重新验证在每一步是否中间结果可以有助于失踪的答案。使用我们的方法在Spark上的实现,我们证明了它是第一个扩展到大型数据集的方法,并且它经常找到现有技术无法识别的解释。
2021-03-12 cs.DB
Localized RETE for Incremental Graph Queries with Nested Graph Conditions
Hasso Plattner Institute at the University of Potsdam(波茨坦大学哈索·普拉特纳研究所)
本文提出了一种局部化RETÉ方法,用于在带有嵌套图条件的增量图查询中提高效率,减少计算开销。
2026-01-08 cs.DB cs.LO
Mixing set and bag semantics
嵌套关系演算的保守性定理意味着查询表达式可以自由地使用嵌套和非嵌套,但只要查询结果类型是平面关系,这些功能就不会导致平面关系查询的表达能力的增加。此外,Wong还展示了如何通过构造性重写算法将这些查询转换为SQL。虽然这一结果适用于集合或多集合语义的查询,但据我们所知,对于混合集合和包集合的查询,或提供重复消除操作(如SQL的$\mathtt{SELECT}~\mathtt{DISTINCT}$)的查询,尚未研究保守性和规范化问题。在本文中,我们形式化的问题,并提出部分进展:具体而言,我们引入了一个集合和多集合集合类型的演算,随着自然的映射,从集到袋,反之亦然,提出了一组有效的重写规则规范化这样的查询,并给出了一个归纳的一组查询的范式可以翻译成SQL的表征。我们还考虑的例子,不出现直接转换为SQL,说明平面和嵌套查询的混合集和多集语义的相对表现力仍然是一个悬而未决的问题。
2019-05-06 cs.DB
All You Need Is CONSTRUCT
在SPARQL中,查询表单SELECT和CONSTRUCT已经成为理论和实践上的几项研究的主题。然而,这种查询的组成和它们的交织时,形成涉及嵌套查询还没有收到很大的兴趣在文献中。我们主要解决的问题,组成这样的查询。为此,我们引入了一种接近SPARQL的语言,在这种语言中,查询可以随意嵌套,包括CONCLUSION CT或SELECT查询形式,并为它提供了一种形式化的语义。这种一致性是由于RDF图的概念扩展到包括诸如变量之类的孤立项。作为这项工作的一个关键特征,我们展示了如何经典的SELECT查询可以很容易地编码为一个特定的情况下,CONSTRUCT查询。
2020-10-02 cs.DB cs.PL
Data Generation for Testing Complex Queries
本文提出一种新颖的数据生成方法,用于测试复杂SQL查询,解决了早期方法无法处理复杂查询的问题,并在展示查询非等价性上优于最先进的VeriEQL系统。
2024-09-27 cs.DB
Clause-Wise and Recursive Decoding for Complex and Cross-Domain Text-to-SQL Generation
SAP Labs Korea(SAP韩国研究院)
大多数用于文本到SQL生成的深度学习方法仅限于WikiSQL数据集,该数据集仅支持对单个表的非常简单的查询。我们关注Spider数据集,这是一个复杂的跨域文本到SQL任务,其中包括对多个表的复杂查询。在本文中,我们提出了一个SQL子句式解码神经架构与自注意为基础的数据库模式编码器,以解决蜘蛛任务。每个子句特定的解码器由一组子模块组成,这些子模块由每个子句的语法定义。此外,我们的模型递归地支持嵌套查询。当在Spider数据集上进行评估时,我们的方法在测试集和开发集中分别获得了4.6%和9.8%的准确率增益。此外,我们表明,我们的模型是更有效地预测复杂和嵌套的查询比以前的工作。
2019-08-19 cs.CL cs.DB
Optimizing Queries Using a Meta-level Database
图模拟(使用图模式或数据指南)已成功地提出作为一种技术,增加结构的半结构化数据。描述的设计模式(如元类和模式层之间的同态),这是突出的面向对象编程社区,构成了这种图模拟方法的推广。在本文中,我们展示了适用于广泛的数据模型,有一些对象(-身份)的概念,并建议把它变成一个数据模型原语,比如说,继承。我们认为,这样的扩展填补了当代数据管理的实际需要。然后,我们提出了查询优化的代数技术(使用描述和描述查询的概念)。最后,在半结构化的设置,我们讨论了修剪规则的路径查询(嵌套条件)使用描述元数据。在这种情况下,我们的元数据概念通过元级别值扩展了图模式和数据指南,从而提高了查询性能并减少了数据冗余。
2002-05-23 cs.DB
Algorithms for Rewriting Aggregate Queries Using Views
在数据库应用程序中,涉及聚合的查询是典型的。优化聚合查询执行的主要思想之一是重用以前回答的查询结果。这导致了使用视图重写聚合查询的问题。由于缺乏理论,这个问题的算法相当特别。他们是健全的,但没有被证明是完整的。最近,我们给出了语法特征的等价性的聚合查询,并应用它们来决定是否存在重写。然而,这些决策程序并不适合于立即实施。在本文中,我们提出了实用的算法重写查询与$\COUNT$和$\SUM$。我们的算法是合理的。对于重要案件也是如此。我们的技术可以用来改善众所周知的程序重写非聚合查询。然后,这些过程可以适于获得用于用$\MIN$和$\MAX$重写查询的算法。提出的算法是实现优化器的基础,重写查询使用视图。
2000-11-17 cs.DB
Assessing Achievability of Queries and Constraints
评估和提高数据密集型系统中的数据质量是一项根本性挑战,这导致了许多针对数据转换和清理的应用程序。然而,尽管模式设计、数据清理和数据迁移现在已经被很好地孤立地理解了,但解决这些领域问题的工具之间的相互作用却没有得到太多的关注。我们的重点是确定是否存在数据转换过程的序列的问题,当应用于(未转换的)输入数据,将产生满足执行所讨论的任务所需的条件的数据。我们的目标是开发一个框架来解决这个问题,从关系设置开始。在本文中,我们抽象的数据处理工具的黑盒程序。这个抽象通过过程可能修改数据库的哪些部分的规范来描述过程,以及通过指定应用过程之前和之后数据库所需状态的约束来描述过程。然后,我们继续研究在这种情况下产生的基本算法问题,如了解什么时候可以保证程序序列适用于原始或转换后的数据,当他们成功地改善数据,当知识库可以代表程序的结果。最后,我们转向问题,确定是否应用程序的一系列程序的数据库的结果在指定的查询或约束的属性的满意度。我们表明,这个问题是可判定的程序和属性的一些广泛和现实的类,即使程序被允许改变模式的实例。
2017-12-09 cs.DB
Translating Canonical SQL to Imperative Code in Coq
SQL是迄今为止使用和实现最广泛的查询语言。然而,在一些关键特性上,比如相关查询和空值语义,许多实现存在分歧或包含错误。我们利用SQL和查询编译器的形式化的最新进展来开发DBCert,这是第一个从以规范形式编写的SQL查询到命令式代码的机械验证编译器。构建DBCert需要几个新的贡献,本文对此进行了描述。首先,我们指定和机械化一个完整的转换,从SQL到嵌套关系代数,可用于查询优化。其次,我们定义了Imp,这是一种足以表达SQL的小型命令式语言,可以针对包括JavaScript在内的几种执行语言。最后,我们开发了一个机械化的翻译从嵌套关系代数Imp,使用嵌套的关系演算作为中间步骤。
2022-03-22 cs.DB cs.PL
Left Bit Right: For SPARQL Join Queries with OPTIONAL Patterns (Left-outer-joins)
SPARQL基本图形模式(BGP)(也称为SQL内部连接)查询优化是一个很好的研究领域。然而,OPTIONAL模式查询的优化(a.k.a. SQL左外连接)由于左外连接的\textit{reordering}上的限制而带来了额外的挑战。这种查询的出现往往高达总查询的50%(例如,DBPedia查询日志)。在本文中,我们提出了\textit{Left Bit Right}(LBR),\textit{well-designed}嵌套BGP和OPTIONAL模式查询的技术。通过LBR,我们提出了一种新的方法来表示这样的查询使用的图的\textit{supernodes},这是用来积极修剪RDF三元组,与压缩索引的帮助下。我们还提出了新的优化策略-第一种,据我们所知-结合在一起的\textit{acyclicity}的查询,\textit{minimality},和\textit{nullification},\textit{best-match}运营商的特点。在本文中,我们专注于没有UNION或FILTER的OPTIONAL模式,但我们也展示了如何使用\textit{query rewrite}使用我们的技术处理UNION和FILTER。我们在8 GB内存的商用笔记本电脑上对多达10亿个三元组的RDF图进行了评估,结果表明,与Virtuoso和MonetDB等最先进的RDF列存储相比,L…
2015-04-01 cs.DB
Explaining Wrong Queries Using Small Examples
用于测试SQL查询的正确性,例如,在数据库课程中评估学生提交的内容时,标准做法是在一些测试数据库实例上执行有问题的查询,并将其结果与正确查询的结果进行比较。给定两个查询$Q_1$和$Q_2$,如果$Q_1(D)$与$Q_2(D)$不同,我们说数据库实例$D$是一个反例(对于$Q_1$和$Q_2$);这样的反例可以解释为什么$Q_1$和$Q_2$不等价。虽然测试数据库实例可以用作反例,但它可能太大或太复杂,无法阅读和理解不等价性的来源。因此,在本文中,给定一个已知的反例$D$为$Q_1$和$Q_2$,我们的目标是找到最小的反例$D' \subseteq D$其中$Q_1(D') \neq Q_2(D')$。这个问题一般是NP难的。我们给出了一套算法,找到最小的反例为不同类别的查询,一些更听话的比别人。我们还提出了一个有效的基于出处的算法SPJUD查询,使用约束求解器,并将其扩展到更复杂的查询与聚合,分组和嵌套查询。我们进行了大量的实验,表明我们的解决方案的有效性和可扩展性,从本科数据库课程的学生查询和查询TPC-H基准。我们还报告了一个用户研究,从课程中,我们部署我们的工具,以帮助学生与关系代数的作业。
2019-04-09 cs.DB
Query Containment for Highly Expressive Datalog Fragments
众所周知,数据库查询的包含问题是不可判定的。然而,有几个Datasheet片段的包容性是已知的,最显着的一元Datasheet和几个“常规”的查询语言的图形。最近,作为这些查询语言的联合推广,引入了一元定义的查询语言(MQ)。在本文中,我们研究了各种各样的Datasheet片段与可判定的查询包含,并确定这个问题的精确复杂性结果。我们概括的MQ(边境)守卫的时间(GQs),并表明,包含问题是3ExpTime完整的在任何情况下,即使我们允许任意的数据库中的子查询。如果我们关注图查询语言,即,线性数据库的片段,那么这个复杂度就降低到了2ExpSpace。我们还考虑了嵌套查询,它通过使用内部查询定义的谓词来获得进一步的表达能力。我们表明,嵌套导致查询包容的复杂性呈指数级增长的层次结构,无论是在线性和一般情况下。我们的研究结果解决了(嵌套)MQ的开放问题,他们描绘了一个全面的图片的最先进的数据库查询遏制。
2014-06-30 cs.CC cs.DB cs.LO
Reducing Property Graph Queries to Relational Algebra for Incremental View Maintenance
现代图数据库系统的属性图数据模型越来越适合于存储和处理像网络这样的异构数据集。许多具有近实时要求的挑战性应用程序-例如金融欺诈检测,推荐系统和动态验证-可以通过图形查询来捕获,并重复评估。为了确保对不断变化的数据集的快速响应时间,这些应用程序将受益于应用增量视图维护(IVM)技术,该技术可以执行查询的连续评估并在更新时计算结果集中的变化。然而,目前没有图形数据库提供对增量视图的支持。虽然IVM问题已经在关系数据库上得到了广泛的研究,但是属性图查询的视图需要标准关系代数范围之外的运算符。因此,解决这个问题需要整合现有的多种IVM技术,并可能进一步扩展。在本文中,我们提出了一种方法来执行IVM的属性图,使用嵌套的关系代数表示的属性图和图形操作。然后,我们定义了一个链的转换,以减少大多数属性图查询到平面关系代数和使用技术的歧视网络(用于基于规则的专家系统)来评估它们。我们演示的方法,使用我们的原型工具,ingredient,它使用openCypher,一个开放的图形查询语言指定为行业倡议的一部分。然而,我们的方法的几个方面可以推广到其他图形查询语言,如G-CORE和PGQL。
2018-06-19 cs.DB
Database Queries that Explain their Work
数据库查询或科学工作流程的起源通常是出于提供解释,增加对用于计算查询的基础数据源和过程的理解,以及再现性,重新计算不同输入结果的能力,可能专门用于输出的一部分。许多起源系统声称提供这样的能力,但是,大多数缺乏正式的定义或保证这些属性,而其他人提供正式的保证,只有相对有限的类的变化。最近的工作起源跟踪和切片功能程序设计语言的基础上,我们引入了一个详细的跟踪模型的起源多集值嵌套关系演算,定义跟踪切片算法,提取子跟踪需要解释或重新计算特定部分的输出,并定义查询切片和差分技术,支持解释。我们陈述并证明了这些技术的正确性,并提出了一个概念验证的Haskell实现。
2014-08-12 cs.DB cs.PL
Bridging the Gap: Enabling Natural Language Queries for NoSQL Databases through Text-to-NoSQL Translation
University of Science and Technology of China(中国科学技术大学);Tsinghua University(清华大学);The University of Hong Kong(香港大学)
本文研究Text-to-NoSQL任务,提出TEND基准和SAG求解器,用于将自然语言请求翻译为MongoDB聚合管道,验证了无模式文档推理的独特挑战。
2026-06-16 cs.AI cs.DB
Deciding the Loosely Guarded Fragment and Querying Its Horn Fragment Using Resolution
我们考虑以下的查询回答问题:给定一个布尔合取查询和一个理论在霍恩松散保护片段,目的是确定查询是否是由该理论所蕴涵。在本文中,我们提出了一个决议决定过程的松散保护的片段,并使用这样一个过程来回答布尔合取查询对霍恩松散保护的片段。Horn松散保护片段包含基于本体的查询应答中普遍存在的规则类,例如Horn ALCHOI和保护存在规则。此外,我们确定星查询和云查询,使用我们的程序,可以回答对松散的保护片段。
2020-01-12 cs.DB cs.LO
A Principled Solution to the Disjunction Problem of Diagrammatic Query Representations
针对图示查询表示的长期未解决析取问题,本研究提出基于Relational Diagrams的扩展方案,统一并改进了过往方法,能保留含任意析取的合式TRC查询的关系模式与安全性,且规模可指数级更简洁。
2024-12-11 cs.DB cs.LO
Optimising Fine-Grained Access Control Policy Enforcement for Database Queries. A Model-Driven Approach
最近,我们提出了一种模型驱动的方法,用于在执行SQL查询时实施细粒度访问控制(FGAC)策略。更具体地说,我们定义了一个函数SecQuery(),给定一个FGAC策略S和一个SQL选择语句q,它生成一个SQL存储过程SecQuery(S,q),使得:如果具有角色r的用户u根据S被授权基于数据库的当前状态执行q,则调用SecQuery(S,q)(u,r)返回与u执行q时相同的结果;否则,根据S,如果用户u未被授权基于数据库的当前状态执行q,则调用SecQuery(S,q)(u,r)发出错误信号。毫不奇怪,执行查询q比调用相应的存储过程SecQuery(S,q)花费更少的时间。在这里,我们提出了一个基于模型的方法,用于优化由函数SecQuery()生成的存储过程。这个想法是消除SecQuery()生成的存储过程主体中的授权检查,当它们被证明是不必要的时候。基于我们之前从对象约束语言(OCL)到多排序一阶逻辑的映射,我们可以尝试使用SMT求解器来证明授权检查是不必要的。我们包括一个案例研究来说明和显示我们的方法的适用性。
2022-09-12 cs.CR cs.DB
Querying Graph-Relational Data
本文提出图关系数据库模型以解决关系数据库扁平表示与嵌套对象需求之间的失配问题,并给出其形式语义及在 EdgeQL 和 Gel 系统中的实现,兼顾对象形态操作的灵活性与接近直接编写 PostgreSQL 查询的效率。
2025-07-23 cs.DB cs.PL
The evaluation of geometric queries: constraint databases and quantifier elimination
我们对几何消除的算法任务进行建模(例如,实数和复数的基本场论中的量词消去)。作为一个特殊的情况下,这样的几何消除任务,我们认为样本点查询。我们展示了指数较低的复杂性边界,以评估几何查询在一般情况下,在特定情况下的样本点查询。虽然本文是理论性的,但其目的是探索计算机实现的约束数据库查询评估算法的可能性和(复杂性)限制,基于最先进的几何消除过程及其实现的原理,例如,“Kronecker”软件包。
2011-10-13 cs.CC cs.DB cs.LO