Embedded dependency


In relational database theory, an embedded dependency is a certain kind of constraint on a relational database. It is the most general type of constraint used in practice, including both tuple-generating dependencies and equality-generating dependencies. EDs can express functional dependencies, join dependencies, multi-valued dependencies, inclusion dependencies, foreign key dependencies, and many more besides. An ED is a sentence in first-order logic of the form:
∀x1... xn, P → ∃z1,..., zk, Q
where = \, and P is a possibly empty and Q is a non-empty conjunction of relational and equality atoms. A relational atom has the form R and an equality atom has the form wi = wj where each of the w,..., wh, wi, wj, are variables or constants. When all atoms in Q are equalities, the ED is an EGD, and when all atoms in Q are relational, the ED is a TGD. Every ED is equivalent to an EGD and a TGD. A TGD is said to be full when the existential quantifier is empty. An algorithm known as the chase takes as input an instance that may or may not satisfy a set of EDs, and, if it terminates, output an instance that does satisfy the EDs.