2 INCONSISTENCY-TOLERANT
INTEGRITY CHECKING
Recall that integrity constraints are well-formed sen-
tences of first-order predicate calculus. W.l.o.g., we
assume they are represented in prenex form (i.e.,
roughly, all quantifiers explicitly or implicitly ap-
pear outermost), which subsumes prenex normal form
(i.e., prenex form with all negations innermost) and
denial form (i.e., clauses with empty conclusion). In
each database state, they are required to be satisfied,
i.e. true in, or at least consistent with that state. Oth-
erwise, they are said to be violated in D.
An integrity theory is a finite set of integrity con-
straints. It is satisfied if each of its members is satis-
fied, and violated otherwise. Let IC optionally stand
for an integrity constraint or an integrity theory, and
D be a database. With D(IC)= sat, we express that
IC is satisfied in D, and D(IC) = vio that it is violated.
Moreover, for an updateU, let D
U
denote the database
obtained from executing U on D; D and D
U
then are
referred to as old and new state, respectively.
Different integrity checking methods use different
notions to define and determine integrity satisfaction
and violation. Abstracting away from such differ-
ences, each integrity checking method
M can be for-
malized as a function that takes as input a database,
an integrity theory and an update (i.e., a bipartite fi-
nite set of database clauses to be deleted and inserted,
resp.). It outputs the value sat if it has concluded that
integrity will remain satisfied in the new state, and
outputs vio if it has concluded that integrity will be
violated in the new state. Thus, the soundness and
completeness of
M can be stated as follows.
Definition 1 An integrity checking method M is
sound if, for each database D, each integrity theory
I such that D(I) = sat and each update U, the follow-
ing holds.
If
M (D, I,U) = sat then D
U
(I) = sat. (1)
Completeness of M can be defined dually to
def.1, by the only-if half of (1). Note that both defini-
tions are impartial to the question whether sat and vio
are the only values that could be output by
M (D, I,U)
(another value could be, e.g., unknown). However, for
simplicity, we do not consider any semantics of in-
tegrity that would have values other than “satisfied”
and “violated” for integrity.
Def.1 and its dual apply to virtually any integrity
checking method in the literature. Of course, each
of them is defined for certain classes of databases,
constraints and updates (e.g., relational or stratified
databases, range-restricted constraints and transac-
tions consisting of insertions and deletions of base
facts). So, whenever we say “each” (database, in-
tegrity theory, update), we mean all those for which
the respective methods are defined at all. From now
on, each method
M is assumed to be sound.
For significant classes of databases and integrity
theories, soundness and completeness has been shown
for methods in (Nicolas, 1982; Decker, 1986; Lloyd
et al, 1987; Sadri and Kowalski, 1988; Christiansen
and Martinenghi, 2006) and others; also their termi-
nation, as defined below, can be shown. Other meth-
ods, e.g., (Gupta et al, 1994; Lee and Ling, 1996),
are only sound, i.e., they provide sufficient conditions
that guarantee the integrity of the updated database.
If these conditions do not hold, further checks may be
necessary. For later (theorem 4), also the termination
of methods is of interest.
Definition 2 An integrity checking method
M is said
to be terminating if, for each database D, each in-
tegrity theory I and each update U, the computation
of
M (D, I,U) halts and outputs either sat or vio.
Note that by def.2, the computation of
M (D, I,U)
terminates, no matter whether D(I) = sat or not.
Thus, such an
M is complete, although it is clear that
complete methods are not necessarily terminating.
Definitions 1 and 2 are independent of the di-
versity of criteria by which methods often are dis-
tinguished, e.g., to which classes of databases, con-
straints and updates they apply, how efficient they
are, which parts of the data in (D,U,I) are actually
accessed, whether they are complete or not, whether
constraints are “soft” or “hard”, whether integrity is
checked in the old or the new state, or whether sim-
plification steps are pre-compiled at schema specifi-
cation time or taken at update time. Such distinctions
are studied, e.g., in (Martinenghi et al, 2006b; Decker
and Martinenghi, 2007) but do not matter much in this
paper, except when explicitly mentioned.
Common to all methods is that they require total
integrity satisfaction, i.e., before each update, each
constraint must be completely satisfied. In (Decker
and Martinenghi, 2006b), we have shown how this
requirement can be relaxed. Informally speaking, it
is in fact possible to tolerate (i.e., live with) individ-
ual inconsistencies in the database, i.e., hopefully mi-
noritarian cases of violated constraints, while trying
to make sure that updates do not cause any new cases
of integrity violation, i.e., that the cases of constraints
that were satisfied in the old state remain satisfied in
the new state. The following definitions revisit previ-
ous ones in (Decker and Martinenghi, 2006b) for for-
malizing what we mean by “case” and “inconsistency
tolerance” of integrity checking.
INCONSISTENCY-TOLERANT KNOWLEDGE ASSIMILATION
199