Referentielle Integrität beschreibt eine Beziehung zwischen zwei Tabellen. Aus diesem Grund wird sie auch oft Beziehungsintegrität genannt. Sie sagt aus, dass Attributwerte von einem Fremdschlüssel auch als Attributwert des Primärschlüssels existieren müssen
Beispiel anhand von 2 Tabellen
Man hat eine Tabelle „Student“ in der sich der Fremdschlüssel „Fachschaft“ befindet. Dadurch wird angegeben in welcher Fachschaft der Student Mitglied ist (wir gehen einfach mal davon aus, dass man nur in einer Fachschaft Mitglied sein kann). Der Fremdschlüssel referenziert also auf die Tabelle „Fachschaft“.
Wenn der Student in einer Fachschaft ist, muss diese auch existieren. Zum Beispiel ist die Fachschaft „10“ als Fremdschlüssel eingetragen. Dies bedeutet in der Tabelle Fachschaft existiert ein Datensatz mit dem Primärschlüssel „10“.
Was folgt aus referenzieller Integrität
- Dateninkonsistenz wird vermieden. Es existiert immer ein entsprechender Datensatz
- Um einen Datensatz mit einem Primärschlüssel zu löschen muss erst der entsprechende Fremdschlüssel angepasst werden (entfernt / null /geändert auf anderen Primärschlüssel)
- Beim Anlegen muss ein Datensatz in der Tabelle mit dem Primarschlüssel hinzugefügt werden. Erst dann kann der Attributwert als Fremdschlüssel in einer anderen Tabelle verwendet werden
Überwachung / Design
Damit referentielle Integrität auch funktioniert, muss diese beim Erstellen von Tabellen entsprechend angegeben werden. Die Datenbank erzwingt anschließend die Einhaltung der Regeln.
Nachteile
Die Überprüfung der referentiellen Integrität kostest etwas Zeit. Gerade beim Löschen oder Importieren von großen Datenmengen kann es sinnvoll sein die Integrität kurzzeitig aufzuheben.
Was passiert wenn man gegen die referentielle Integrität verstößt?
Der befehl wird schlicht nicht ausgeführt. Dies heißt das Löschen, Einfügen oder Ändern wird zurück gewiesen.
Referentielle Integrität ist sozusagen die Prüfung der Daten.
Mehr Nachrichten gibt es hier.