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