Referentielle Integrität

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.

Dieser Beitrag wurde unter Datenbanken veröffentlicht. Setze ein Lesezeichen auf den Permalink.