  Several research thrusts in the area of data management have focused on
understanding how changes in the data affect the output of a view or standing
query. Example applications are explaining query results, propagating updates
through views, and anonymizing datasets. These applications usually rely on
understanding how interventions in a database impact the output of a query. An
important aspect of this analysis is the problem of deleting a minimum number
of tuples from the input tables to make a given Boolean query false. We refer
to this problem as "the resilience of a query" and show its connections to the
well-studied problems of deletion propagation and causal responsibility. In
this paper, we study the complexity of resilience for self-join-free
conjunctive queries, and also make several contributions to previous known
results for the problems of deletion propagation with source side-effects and
causal responsibility: (1) We define the notion of resilience and provide a
complete dichotomy for the class of self-join-free conjunctive queries with
arbitrary functional dependencies; this dichotomy also extends and generalizes
previous tractability results on deletion propagation with source side-effects.
(2) We formalize the connection between resilience and causal responsibility,
and show that resilience has a larger class of tractable queries than
responsibility. (3) We identify a mistake in a previous dichotomy for the
problem of causal responsibility and offer a revised characterization based on
new, simpler, and more intuitive notions. (4) Finally, we extend the dichotomy
for causal responsibility in two ways: (a) we treat cases where the input
tables contain functional dependencies, and (b) we compute responsibility for a
set of tuples specified via wildcards.
