Repairing Databases over Metric Spaces with Coincidence Constraints
<|reference_start|>Repairing Databases over Metric Spaces with Coincidence Constraints: Datasets often contain values that naturally reside in a metric space: numbers, strings, geographical locations, machine-learned embeddings in a Euclidean space, and so on. We study the computational complexity of repairing inconsistent databases that violate integrity constraints, where the database values belong to an underlying metric space. The goal is to update the database values to retain consistency while minimizing the total distance between the original values and the repaired ones. We consider what we refer to as \emph{coincidence constraints}, which include key constraints, inclusion, foreign keys, and generally any restriction on the relationship between the numbers of cells of different labels (attributes) coinciding in a single value, for a fixed attribute set.   We begin by showing that the problem is APX-hard for general metric spaces. We then present an algorithm solving the problem optimally for tree metrics, which generalize both the line metric (i.e., where repaired values are numbers) and the discrete metric (i.e., where we simply count the number of changed values). Combining our algorithm for tree metrics and a classic result on probabilistic tree embeddings, we design a (high probability) logarithmic-ratio approximation for general metrics. We also study the variant of the problem where each individual value's allowed change is limited. In this variant, it is already NP-complete to decide the existence of any legal repair for a general metric, and we present a polynomial-time repairing algorithm for the case of a line metric.<|reference_end|>
@article{kaminsky2024repairing,
    title={Repairing Databases over Metric Spaces with Coincidence Constraints},
    author={Youri Kaminsky, Benny Kimelfeld, Ester Livshits, Felix Naumann, and
  David Wajc},
    journal={arXiv preprint arXiv:2409.16713},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.16713},
    primaryClass={cs.DB}
}