Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik

Deklarative Referenzielle Integrität


Notizen:

Prinzipiell gibt es fünf verschiedene Möglichkeiten zu reagieren, wenn eine Beziehung z.B. durch DELETE oder UPDATE in einem Kopfdatensatz verletzt würde:
Restrict: Sofern betroffene Detaildatensätze vorhanden sind, wird ein Fehler ausgegeben; die Operation misslingt. Gibt man keine andere Option an, ist Restrict meistens die Default-Operation.
No Action: Fast identisch mit Restrict, aber bestimmte referenzielle Aktionen (CASCADE, SET NULL, SET DEFAULT , s.u.) werden noch ausgeführt. Das könnte allenfalls einen Referenzfehler noch beheben!
Cascade: Die Delete- bzw. Update-Operation wird an alle betroffenen Detaildatensätze weitergegeben; die Operation gelingt.
Set Null: Alle betroffenen Detaildatensätze bekommen, sofern erlaubt, in den betroffenen Fremdschlüsselspalten den Wert Null zugewiesen, die Operation gelingt. Andernfalls wird ein Fehler ausgegeben und die Operation misslingt.
Set Default: Alle betroffenen Detaildatensätze bekommen in den betroffenen Fremdschlüsselspalten den Defaultwert zugewiesen (sofern erlaubt); die Operation gelingt. Andernfalls wird ein Fehler ausgegeben und die Operation misslingt.
Die referenziellen Operationen, die beim Einrichten der DRI ausgewählte werden, beeinflussen also, ob und in welcher Art und Weise Detaildatensätze behandelt werden, wenn die Manipulation eines Kopfdatensatzes zur Verletzung der RI führen würde. Die Referenzielle Aktion ist beim Einrichten der DRI anzugeben.
Anm.: Nicht alle DBMS unterstützen alle 5 Operationen! z.B. MS SQL Server 2000: Nur Restrict oder Cascade können beim Erstellen einer Beziehung mit der Foreign Key Constraint deklariert werden.