Constraint languages.page (1072B)
1 All constraint languages mentioned here are expressed in [first-order logic](Logic#first-order-logic). 2 3 # Tuple-generating dependencies 4 5 A **Tuple-Generating Dependency** (TGD) is a logical constraint $\tau$ of the form $\forall \mathbf{x} ~ \phi(x) \rightarrow \exists \mathbf{y} ~ \psi(\mathbf{x}, \mathbf{y})$, where $\phi$ and $\psi$ are [conjunctive queries](Queries#conjunctive-queries-cqs). Given a [database instance](Basic database terminology#instance) $I$, a **trigger** for $\tau$ in $I$ is a [homomorphism](Queries#conjunctive-queries-cqs) $h$ from $\phi$ to $I$. We say that the trigger $h$ is **active** if there is no homomorphism $h'$ from $\psi$ to $I$ that extends $h$, i.e., the domain of $h'$ is a superset of that of $h$ and $h(x) = h'(x)$ for all $x$ in the domain of $h$. We say that $I$ **satisfies** the TGD $\tau$ if there are no active triggers of $\tau$ on $I$. 6 7 ## Inclusion dependencies 8 9 TODO, arity, unary 10 11 # Equality-generating dependencies 12 13 ## Functional dependencies 14 15 TODO, arity, unary 16 17 ## Key dependencies 18 19 TODO 20 21 ## Foreign keys 22 23 TODO