Eine Integritätsbedingung ist eine Regel für die erlaubten Inhalte von Sätzen einer Tabelle. Ein Satz kann nur dann in eine Tabelle aufgenommen (INSERT, MERGE) oder aus einer Tabelle gelöscht (DELETE) werden und ein Spaltenwert kann nur geändert (MERGE, UPDATE) werden, wenn danach alle Integritätsbedingungen erfüllt sind.
Integritätsbedingungen dürfen nicht für multiple Spalten definiert werden.
Integritätsbedingungen können für einzelne Spalten oder für eine Tabelle definiert werden. Eine Spaltenbedingung ist eine Integritätsbedingung, die sich auf eine Spalte bezieht. Eine Tabellenbedingung ist eine Integritätsbedingung, die sich auf mehr als eine Spalte der Basistabelle beziehen kann.
Nicht-NULL-Bedingung
Die Nicht-NULL-Bedingung (NOT NULL) fordert, dass eine Spalte keine NULL-Werte enthalten darf. Die Nicht-NULL-Bedingung kann nur als Spaltenbedingung angegeben werden.
Eindeutigkeitsbedingung
Die Eindeutigkeitsbedingung (UNIQUE) fordert, dass in der angegebenen Spalte oder Spaltenkombination kein Wert bzw. keine Wertekombination doppelt vorkommt.
Primärschlüsselbedingung
Die Primärschlüsselbedingung (PRIMARY KEY) legt eine Spalte oder eine Spaltenkombination als Primärschlüssel einer Tabelle fest. Die Primärschlüsselbedingung fordert, dass für die Spalte bzw. die Spaltenkombination die Eindeutigkeitsbedingung und die Nicht-NULL-Bedingung erfüllt sind. Eine Tabelle darf höchstens einen Primärschlüssel haben.
Check-Bedingung
Die Check-Bedingung fordert, dass für jeden Satz einer Tabelle eine angegebene Suchbedingung den Wahrheitswert wahr oder unbestimmt annimmt, nicht jedoch den Wahrheitswert falsch.
Die Suchbedingung darf sich nur auf die Tabelle beziehen, für die die Check-Bedingung definiert wurde.
Referenzbedingung
Die Referenzbedingung ([FOREIGN KEY]..REFERENCES) legt eine Spalte oder Spaltenkombination als Fremdschlüssel einer Tabelle fest. Die Spalten des Fremdschlüssels werden einer oder mehreren Spalten derselben oder einer anderen Tabelle zugeordnet. Diese Spalten werden referenzierte Spalten genannt. Für die referenzierten Spalten muss die Eindeutigkeitsbedingung gelten. Die Tabelle, die den Fremdschlüssel enthält, wird referenzierende Tabelle genannt. Die Tabelle, die zu den referenzierten Spalten gehört, heißt referenzierte Tabelle. Werden keine Spalten für die referenzierte Tabelle angegeben, wird der Primärschlüssel der referenzierten Tabelle verwendet.
SESAM/SQL weist eine Tabellenoperation nach Prüfung der Referenzbedingung ab,
wenn beim Einfügen eines Satzes oder Ändern von Spaltenwerten in der referenzierenden Tabelle keine entsprechenden Werte in den referenzierten Spalten vorhanden wären
wenn beim Löschen oder Ändern von Sätzen oder Spalten der referenzierten Tabelle Fremdschlüsselwerte in der referenzierenden Tabelle existierten, für die nun keine entsprechenden Werte in den referenzierten Spalten mehr vorhanden wären oder für die keine entsprechende Spalte mehr existierte.
Bei einspaltigen Fremdschlüsseln fordert die Referenzbedingung, dass jeder vom NULL-Wert verschiedene Wert des Fremdschlüssels einer Tabelle als Wert der referenzierten Spalte vorkommt.
Bei mehrspaltigen Fremdschlüsseln muss jede darin vorkommende Wertekombination, die keinen NULL-Wert enthält, in den referenzierten Spalten auftreten. In SESAM/SQL genügt somit ein Satz schon der Referenzbedingung, wenn er in mindestens einer Spalte des mehrspaltigen Fremdschlüssels einen NULL-Wert enthält.