# tcswiki

wiki-style
git clone https://a3nm.net/git/tcswiki/
Log | Files | Refs

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