  In its traditional definition, a repair of an inconsistent database is a
consistent database that differs from the inconsistent one in a "minimal way".
Often, repairs are not equally legitimate, as it is desired to prefer one over
another; for example, one fact is regarded more reliable than another, or a
more recent fact should be preferred to an earlier one. Motivated by these
considerations, researchers have introduced and investigated the framework of
preferred repairs, in the context of denial constraints and subset repairs.
There, a priority relation between facts is lifted towards a priority relation
between consistent databases, and repairs are restricted to the ones that are
optimal in the lifted sense. Three notions of lifting (and optimal repairs)
have been proposed: Pareto, global, and completion.
  In this paper we investigate the complexity of deciding whether the priority
relation suffices to clean the database unambiguously, or in other words,
whether there is exactly one optimal repair. We show that the different lifting
semantics entail highly different complexities. Under Pareto optimality, the
problem is coNP-complete, in data complexity, for every set of functional
dependencies (FDs), except for the tractable case of (equivalence to) one FD
per relation. Under global optimality, one FD per relation is still tractable,
but we establish $\Pi^{p}_{2}$-completeness for a relation with two FDs. In
contrast, under completion optimality the problem is solvable in polynomial
time for every set of FDs. In fact, we present a polynomial-time algorithm for
arbitrary conflict hypergraphs. We further show that under a general assumption
of transitivity, this algorithm solves the problem even for global optimality.
The algorithm is extremely simple, but its proof of correctness is quite
intricate.
