A Simple Algorithm for Consistent Query Answering under Primary Keys

01/20/2023
by   Diego Figueira, et al.
0

We consider the dichotomy conjecture for consistent query answering under primary key constraints stating that for every fixed Boolean conjunctive query q, testing whether it is certain over all repairs of a given inconsistent database is either polynomial time or coNP-complete. This conjecture has been verified for self-join-free and path queries. We propose a simple inflationary fixpoint algorithm for consistent query answering which, for a given database, naively computes a set Δ of subsets of database repairs with at most k facts, where k is the size of the query q. The algorithm runs in polynomial time and can be formally defined as: 1. Initialize Δ with all sets S of at most k facts such that S satisfies q. 2. Add any set S of at most k facts to Δ if there exists a block B (ie, a maximal set of facts sharing the same key) such that for every fact a of B there is a set S' ∈Δ contained in (S ∪{a}). The algorithm answers "q is certain" iff Δ eventually contains the empty set. The algorithm correctly computes certain answers when the query q falls in the polynomial time cases for self-join-free queries and path queries. For arbitrary queries, the algorithm is an under-approximation: The query is guaranteed to be certain if the algorithm claims so. However, there are polynomial time certain queries (with self-joins) which are not identified as such by the algorithm.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset