{"title":"多关系数据库中的一致性查询应答","authors":"Dominique Laurent , Nicolas Spyratos","doi":"10.1016/j.ic.2025.105279","DOIUrl":null,"url":null,"abstract":"<div><div>Traditionally, to verify the consistency of a multi-relation database with respect to a set of functional dependencies, one applies the well-known Chase algorithm, which derives new tuples as long as no conflict with some dependency arises. Therefore, the Chase algorithm uses dependencies both as inference rules and as tools to check consistency. If no conflicts occur, the database is declared consistent else inconsistent. If the database is consistent then query answering proceeds as usual, otherwise extracting consistent information from the inconsistent database is an issue, known as consistent query answering.</div><div>To address this issue, we consider the set <span><math><mi>T</mi></math></span> of all tuples built from constants occurring in the database, and we use set theoretic semantics to characterize tuples in <span><math><mi>T</mi></math></span> in two orthogonal ways: true/false and conflicting/non-conflicting. Calling ‘consistent’ a tuple which is true and non-conflicting, a ‘repair’ is defined to be a maximal subset of true tuples that satisfies the dependencies and in which as many consitent tuples as possible are true. A query <em>Q</em> is of the form <span>select</span> <em>X</em> <span>where</span> <span><math><mi>C</mi><mi>o</mi><mi>n</mi><mi>d</mi><mi>i</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></math></span>, and a tuple <em>x</em> of <span><math><mi>T</mi></math></span> is in the consistent answer of <em>Q</em> if <em>x</em> is in the answer of <em>Q</em> in every repair.</div><div>Our main contributions are: (a) a novel approach to consistent query answering in multi-relation databases; (b) a modified Chase algorithm to compute true/false and conflicting/non-conflicting tuples; (c) for acyclic functional dependencies, a polynomial-time algorithm computing the exact or approximate consistent answers; (d) a detailed discussion comparing our approach with other related approaches.</div></div>","PeriodicalId":54985,"journal":{"name":"Information and Computation","volume":"303 ","pages":"Article 105279"},"PeriodicalIF":0.8000,"publicationDate":"2025-01-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Consistent query answering in multi-relation databases\",\"authors\":\"Dominique Laurent , Nicolas Spyratos\",\"doi\":\"10.1016/j.ic.2025.105279\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><div>Traditionally, to verify the consistency of a multi-relation database with respect to a set of functional dependencies, one applies the well-known Chase algorithm, which derives new tuples as long as no conflict with some dependency arises. Therefore, the Chase algorithm uses dependencies both as inference rules and as tools to check consistency. If no conflicts occur, the database is declared consistent else inconsistent. If the database is consistent then query answering proceeds as usual, otherwise extracting consistent information from the inconsistent database is an issue, known as consistent query answering.</div><div>To address this issue, we consider the set <span><math><mi>T</mi></math></span> of all tuples built from constants occurring in the database, and we use set theoretic semantics to characterize tuples in <span><math><mi>T</mi></math></span> in two orthogonal ways: true/false and conflicting/non-conflicting. Calling ‘consistent’ a tuple which is true and non-conflicting, a ‘repair’ is defined to be a maximal subset of true tuples that satisfies the dependencies and in which as many consitent tuples as possible are true. A query <em>Q</em> is of the form <span>select</span> <em>X</em> <span>where</span> <span><math><mi>C</mi><mi>o</mi><mi>n</mi><mi>d</mi><mi>i</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></math></span>, and a tuple <em>x</em> of <span><math><mi>T</mi></math></span> is in the consistent answer of <em>Q</em> if <em>x</em> is in the answer of <em>Q</em> in every repair.</div><div>Our main contributions are: (a) a novel approach to consistent query answering in multi-relation databases; (b) a modified Chase algorithm to compute true/false and conflicting/non-conflicting tuples; (c) for acyclic functional dependencies, a polynomial-time algorithm computing the exact or approximate consistent answers; (d) a detailed discussion comparing our approach with other related approaches.</div></div>\",\"PeriodicalId\":54985,\"journal\":{\"name\":\"Information and Computation\",\"volume\":\"303 \",\"pages\":\"Article 105279\"},\"PeriodicalIF\":0.8000,\"publicationDate\":\"2025-01-31\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Information and Computation\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S089054012500015X\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, THEORY & METHODS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information and Computation","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S089054012500015X","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0
摘要
传统上,为了验证多关系数据库相对于一组功能依赖项的一致性,可以应用著名的Chase算法,只要不与某些依赖项发生冲突,该算法就派生出新的元组。因此,Chase算法使用依赖关系作为推理规则和检查一致性的工具。如果没有冲突发生,则将数据库声明为一致,否则声明为不一致。如果数据库是一致的,那么查询回答照常进行,否则从不一致的数据库中提取一致的信息就是一个问题,称为一致查询回答。为了解决这个问题,我们考虑由数据库中出现的常量构建的所有元组的集合T,并且我们使用集合理论语义以两种正交的方式来表征T中的元组:真/假和冲突/非冲突。将“一致”元组定义为真实且无冲突的元组,“修复”定义为满足依赖关系的真元组的最大子集,其中尽可能多的一致元组为真。查询Q的形式为select X where Condition,如果X在每次修复中都在Q的答案中,则T的元组X在Q的一致答案中。我们的主要贡献有:(a)在多关系数据库中实现一致查询应答的新方法;(b)用于计算真/假和冲突/非冲突元组的改进Chase算法;(c)对于非循环函数依赖,计算精确或近似一致答案的多项式时间算法;(d)详细讨论将我们的方法与其他相关方法进行比较。
Consistent query answering in multi-relation databases
Traditionally, to verify the consistency of a multi-relation database with respect to a set of functional dependencies, one applies the well-known Chase algorithm, which derives new tuples as long as no conflict with some dependency arises. Therefore, the Chase algorithm uses dependencies both as inference rules and as tools to check consistency. If no conflicts occur, the database is declared consistent else inconsistent. If the database is consistent then query answering proceeds as usual, otherwise extracting consistent information from the inconsistent database is an issue, known as consistent query answering.
To address this issue, we consider the set of all tuples built from constants occurring in the database, and we use set theoretic semantics to characterize tuples in in two orthogonal ways: true/false and conflicting/non-conflicting. Calling ‘consistent’ a tuple which is true and non-conflicting, a ‘repair’ is defined to be a maximal subset of true tuples that satisfies the dependencies and in which as many consitent tuples as possible are true. A query Q is of the form selectXwhere , and a tuple x of is in the consistent answer of Q if x is in the answer of Q in every repair.
Our main contributions are: (a) a novel approach to consistent query answering in multi-relation databases; (b) a modified Chase algorithm to compute true/false and conflicting/non-conflicting tuples; (c) for acyclic functional dependencies, a polynomial-time algorithm computing the exact or approximate consistent answers; (d) a detailed discussion comparing our approach with other related approaches.
期刊介绍:
Information and Computation welcomes original papers in all areas of theoretical computer science and computational applications of information theory. Survey articles of exceptional quality will also be considered. Particularly welcome are papers contributing new results in active theoretical areas such as
-Biological computation and computational biology-
Computational complexity-
Computer theorem-proving-
Concurrency and distributed process theory-
Cryptographic theory-
Data base theory-
Decision problems in logic-
Design and analysis of algorithms-
Discrete optimization and mathematical programming-
Inductive inference and learning theory-
Logic & constraint programming-
Program verification & model checking-
Probabilistic & Quantum computation-
Semantics of programming languages-
Symbolic computation, lambda calculus, and rewriting systems-
Types and typechecking