Definition 1. An integrity checking method maps
triples (D,IC,U) to {ok, ko}. A method M is
called inconsistency-tolerant if, for each database
D, each integrity theory IC and each update U,
M (D, IC, U) = ok entails that, for each constraint
I ∈ IC such that D(I) = true, also D
U
(I) = true holds.
Essentially, the only difference between conven-
tional and inconsistency-tolerant integrity checking is
that the former additionally requires total integrity be-
fore the update, i.e., that D(IC) = true. The absence
of that requirement means that not necessarily each
constraint has to be satisfied before D is updated, i.e.,
extant inconsistency in D ∪ IC is tolerated.
Note that Definition 1 is somewhat simpler than
the original definition in (Decker and Martinenghi,
2011). The latter does not only require the preser-
vation of the satisfaction of each constraint I such
that D(I) = true, but of each instance I
′
of I such that
D(I
′
) = true. However, that difference is only a tech-
nical one, not an essential one, since each instance
of each constraint can be taken as an individual ele-
ment in IC. Indeed, it can be shown that Definition 1
is equivalent to the definition of the soundness of
inconsistency-tolerant integrity checking in (Decker
and Martinenghi, 2011).
3 REPAIRS
Repairing means to compute updates to databases in
order to eliminate extant integrity violations. As al-
ready mentioned, repairing can be intractably costly.
Thus, it should be a reasonable heuristic to curtail in-
consistency by not repairing all, but only some vio-
lations, particularly in large databases with hidden or
unknown inconsistencies.
The definition below, which is due to (Decker and
Martinenghi, 2011), distinguishes between total re-
pairs, which eliminate all inconsistencies, and partial
repairs, which repair only a fragment of the database.
Partial repairs tolerate inconsistency, since violated
constraints in the complement of the repaired set may
persist.
Definition 2. Let D be a database, IC an integrity
theory and S a subset of IC such that D(S) =
false. An update U is called a repair of S in
D if D
U
(S) = true. If D
U
(IC) =false, U is also
called a partial repair of IC in D. Otherwise, if
D
U
(IC) =true, U is called a total repair of IC in D.
In the literature, repairs usually are required to
be total and minimal. Mostly, subset-minimality is
opted for, but several other notions of minimality ex-
ist (Chomicki, 2007) or can be imagined. Note that
Definition 2 does not involve any particular variant
of minimality. However, Example 1 features subset-
minimal repairs.
Example1. Let D = {p(a, b, c), p(b, b, c), p(c, b, c),
q(a, c), q(c, a), q(c, b), q(c, c)} be a database and
IC ={← p(x, y, z) ∧ ∼q(x, z), ← q(x, x), ← p(x, y, y)}
an integrity theory. Clearly, the instances of
constraints in IC that are violated in D are
← p(b, b, c) ∧ ∼q(b, c) and ← q(c, c). Hence,
there are exactly two minimal total repairs of
IC in D, viz. {deleteq(c, c), delete p(b, b, c),
delete p(c, b, c)} and {deleteq(c, c), insert q(b, c),
delete p(c, b, c)}. Each of U
1
={delete p(b, b, c)}
and U
2
= {insert q(b, c)} is a minimal repair of
{← p(b, b, c) ∧ ∼q(b, c)} in D and a partial repair of
IC in D. Both tolerate the persistence of the vio-
lation of ← q(c, c). Similarly, U
3
= {deleteq(c, c)}
is a minimal repair of {← q(c, c)} in D and a par-
tial repair of IC, which tolerates the violation of
← p(b, b, c) ∧ ∼q(b, c).
A significant problem with partial repairs is that
they may not preserve integrity, i.e., they may cause
the violation of some constraint that is not in the re-
paired set, as shown by the following example.
Example2. Consider again D and IC in Example 1.
As opposed to U
1
and U
2
, U
3
causes the violation
of a constraint in the updated state that is satisfied
before the update. That constraint is the instance
← p(c, b, c) ∧ ∼q(c, c) of the first denial in IC. Thus,
the non-minimal partial repair U
4
= {delete q(c, c);
delete p(c, b, c)} is needed to eliminate the violation
of ← q(c, c) in D without causing a violation that did
not exist before the partial repair.
The enlargement of U
3
to U
4
, i.e., deleting also
p(c, b, c), fortunately does not induce any similar side
effect as produced by deleting q(c, c) alone. In gen-
eral, iterations such as the one from U
3
to U
4
may
possibly continue indefinitely, due to iterative side ef-
fects. The termination of such iterations is unpre-
dictable, in general, as is known from repairing by
triggers (Ceri et al., 2000). However, such iterations
can be avoided by checking if a given repair is an
integrity-preserving update, according to the follow-
ing definition.
Definition 3. For an integrity theory IC, an update
U of a database D is called integrity-preserving if,
for each instance I of any constrait in IC such that
D(I) =true, also D
U
(I) =true holds.
Example3. As seen in Example 2, both U
1
and U
2
,
INCONSISTENCY-TOLERANT ELIMINATIONS OF INTEGRITY VIOLATIONS
391