Die Daten im Datenbanksystem sollten korrekt sein, d.h.
einem gültigen (idealerweise dem aktuellen) Zustand des modellierten Ausschnittes
der realen Welt entsprechen. Korrekte Systemzustände werden durch sogenannte
Integritätsbedingungen
beschrieben. Ihre Einhaltung wird durch das DBMS überwacht. In gegenwärtigen
kommerziellen DBMS sind Integritätsbedingungen in der Regel an Tabellen
oder deren Spalten gebunden. Einfache Beispiele hierfür sind die Definition
des Wertebereiches einer Spalte, Angaben über die Zulässigkeit
von Nullwerten, oder die Spezifikation von Schlüsseln.
Auch die Querverweise zwischen unterschiedlichen Tabellen können mit Hilfe
von Integritätsbedingungen überwacht werden (referentielle
Integrität). So kann sichergestellt werden, dass zu jedem Verweis (Fremdschlüssel)
auch ein gültiger Datensatz in der referenzierten Tabelle existiert.
Dabei kann das System flexibel auf Änderungen
an den referenzierten Datensätzen reagieren: Eine Strategie ist, dass das
Löschen eines Datensatzes nur dann vom System erlaubt wird, wenn kein anderer
Datensatz mehr den zu löschenden Datensatz referenziert. Bei den sogenannten
„kaskadierenden
Änderungen“ werden geeignete Folgeänderungen auf die referenzierenden
Tabellen angewendet, so dass die referentielle Integrität gewahrt bleibt.
Die „Check“-Klausel
erlaubt es, weitere (und komplexere) Bedingung auf Attribut- oder Tabellenebene
festzulegen. Diese können sich durchaus auch auf mehrere Datensätze
bzw. auf Datensätze in mehreren Tabellen beziehen. Ausblickartig gehen
wir abschließend auf eine Verallgemeinerung dieses Konzepts ein: „Assertions“
beschreiben Integritätsbedingungen, die nicht mehr an einzelne Tabellen
gebunden sind.