Skip to main content

Wie referentielle Integrität die Konsistenz der Datenbank gewährleistet

Lauflängenkodierung (Kann 2024)

Lauflängenkodierung (Kann 2024)
Anonim

Datenbanken verwenden Tabellen, um die enthaltenen Informationen zu organisieren. Sie ähneln Tabellenkalkulationen wie Excel, sind jedoch für fortgeschrittene Benutzer wesentlich leistungsfähiger. Datenbanken arbeiten mit Primärschlüsseln und Fremdschlüsseln, die die Beziehung zwischen den Tabellen aufrechterhalten.

Referentielle Integrität ist eine Datenbankfunktion in relationalen Datenbankverwaltungssystemen. Dadurch wird sichergestellt, dass die Beziehungen zwischen Tabellen in einer Datenbank genau sind, indem Einschränkungen angewendet werden, die verhindern, dass Benutzer oder Anwendungen ungenaue Daten eingeben oder auf nicht vorhandene Daten verweisen.

Primärschlüssel

Der Primärschlüssel einer Datenbanktabelle ist eine eindeutige Kennung, die jedem Datensatz zugewiesen wird. Jede Tabelle hat eine oder mehrere Spalten, die als Primärschlüssel festgelegt sind. Eine Sozialversicherungsnummer kann ein Primärschlüssel für eine Datenbankauflistung von Mitarbeitern sein, da jede Sozialversicherungsnummer eindeutig ist.

Aus Datenschutzgründen ist eine zugewiesene Firmen-ID-Nummer jedoch die bessere Wahl, um als Primärschlüssel für Mitarbeiter zu fungieren. Einige Datenbanksoftware wie Microsoft Access weist den Primärschlüssel automatisch zu, der Zufallsschlüssel hat jedoch keine wirkliche Bedeutung. Es ist besser, einen Schlüssel mit Bedeutung für den Datensatz zu verwenden.

Die einfachste Möglichkeit, die referenzielle Integrität durchzusetzen, besteht nicht darin, Änderungen an einem Primärschlüssel zuzulassen.

Unbekannter Schlüssel

Ein Fremdschlüssel ist ein Bezeichner in einer Tabelle, der mit dem Primärschlüssel einer anderen Tabelle übereinstimmt. Der Fremdschlüssel erstellt die Beziehung mit einer anderen Tabelle. Referenzielle Integrität bezieht sich auf die Beziehung zwischen diesen Tabellen.

Wenn eine Tabelle einen Fremdschlüssel zu einer anderen Tabelle enthält, gibt das Konzept der referentiellen Integrität an, dass Sie der Tabelle, die den Fremdschlüssel enthält, nur einen Datensatz hinzufügen können, wenn sich in der verknüpften Tabelle ein entsprechender Datensatz befindet. Dazu gehören auch die als kaskadierende Aktualisierung und kaskadierendes Löschen bekannten Techniken, mit denen sichergestellt wird, dass Änderungen an der verknüpften Tabelle in der Primärtabelle übernommen werden.

Beispiel für Regeln für referentielle Integrität

Betrachten Sie zum Beispiel die Situation, in der Sie zwei Tabellen haben: Mitarbeiter und Manager. Die Employees-Tabelle hat ein Fremdschlüsselattribut mit dem Namen ManagedBy, das auf den Datensatz für den Manager eines jeden Mitarbeiters in der Managers-Tabelle verweist. Referentielle Integrität erzwingt die folgenden drei Regeln:

  • Sie können der Employees-Tabelle nur dann einen Datensatz hinzufügen, wenn das ManagedBy-Attribut auf einen gültigen Datensatz in der Managers-Tabelle verweist. Die referenzielle Integrität verhindert das Einfügen falscher Details in eine Tabelle. Jede Operation, die die referenzielle Integritätsregel nicht erfüllt, schlägt fehl.
  • Wenn sich der Primärschlüssel für einen Datensatz in der Manager-Tabelle ändert, werden alle entsprechenden Datensätze in der Employees-Tabelle mithilfe einer kaskadierenden Aktualisierung geändert.
  • Wenn ein Datensatz in der Manager-Tabelle gelöscht wird, werden alle entsprechenden Datensätze in der Employees-Tabelle mit einem kaskadierenden Löschvorgang gelöscht.

Vorteile von Einschränkungen der referentiellen Integrität

Die Verwendung eines relationalen Datenbankverwaltungssystems mit referentieller Integrität bietet mehrere Vorteile:

  • Verhindert die Eingabe von doppelten Daten
  • Verhindert, dass eine Tabelle auf ein nicht vorhandenes Feld in einer anderen Tabelle verweist
  • Garantiert die Konsistenz zwischen "Partner-Tabellen"
  • Verhindert das Löschen eines Datensatzes, der einen Wert enthält, auf den ein Fremdschlüssel in einer anderen Tabelle verweist
  • Verhindert das Hinzufügen eines Datensatzes zu einer Tabelle, die einen Fremdschlüssel enthält, es sei denn, es gibt einen Primärschlüssel in der verknüpften Tabelle