Checking the correspondence between two or more database instances and enforcing it is a procedure widely used in practice without however having been explored from a theoretical perspective. In this paper we formally introduce the data correspondence setting and its associated computational problems: checking the existence of solutions, and verifying whether a candidate is a solution, for three distinct types of solutions. Data correspondence is a generalization of data exchange and peer data exchange, and a special case of repairing inconsistent databases. We introduce a new class of dependencies, called semi-LAV, that properly includes both LAV and full dependencies, while retaining tractability for peer data exchange, data correspondence, and database repairs. We also introduce the concept of -satisfying homomorphisms. This new type of homomorphism, together with recent advances, is essential in achieving tractability, while at the same time allowing a large class of dependencies,...