Middle
Was ist die Integrität von Referenzbeziehungen?
sobes.tech KI
Antwort von AI
Referentielle Integrität ist eine Eigenschaft der Daten in einer relationalen Datenbank, die sicherstellt, dass die Verweise zwischen Tabellen gültig bleiben. Sie verhindert folgende Probleme:
- Das Löschen einer Zeile aus der "Elterntabelle", auf die Zeilen in der "Kindtabelle" verweisen.
- Das Ändern des Primärschlüssels in der "Elterntabelle", auf den Zeilen in der "Kindtabelle" verweisen, ohne diese Verweise entsprechend zu aktualisieren.
- Das Einfügen einer Zeile in die "Kindtabelle" mit einem Verweis auf einen nicht existierenden Primärschlüssel in der "Elterntabelle".
Sie wird durch Fremdschlüssel (FOREIGN KEY) implementiert.
Beispiele für Einschränkungen bei Fremdschlüsseln:
- ON DELETE CASCADE: Beim Löschen einer Zeile in der Elterntabelle werden die entsprechenden Zeilen in der Kindtabelle ebenfalls gelöscht.
- ON DELETE SET NULL: Beim Löschen einer Zeile in der Elterntabelle wird der entsprechende Fremdschlüssel in der Kindtabelle auf NULL gesetzt.
- ON DELETE RESTRICT: Das Löschen einer Zeile in der Elterntabelle ist verboten, wenn es Verweise auf sie in der Kindtabelle gibt.
- ON UPDATE CASCADE: Beim Aktualisieren des Primärschlüssels in der Elterntabelle werden die entsprechenden Fremdschlüssel in der Kindtabelle ebenfalls aktualisiert.
-- Beispiel für Tabelle "users" (Elterntabelle)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- Beispiel für Tabelle "orders" (Kindtabelle) mit Fremdschlüssel
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
ON DELETE CASCADE /* Beispiel für Einschränkung */
ON UPDATE CASCADE /* Beispiel für Einschränkung */
);