Dies ist eine alte Version des Dokuments!


1) Fremdschlüssel & referentielle Integrität

Begriffe:

  • Parent/Referenzierte Tabelle: enthält den Primärschlüssel (z. B. person.person_id)
  • Child/Referenzierende Tabelle: enthält den Fremdschlüssel (z. B. film.director_id, film_cast.film_id)
  • Referentielle Integrität (RI): FK-Werte im Child müssen auf existierende PK-Werte im Parent zeigen

(oder bei erlaubter NULL: NULL sein).

Warum FKs?

  • Schützen vor „verwaisten“ Datensätzen (z. B. Cast-Einträge ohne Film).
  • Definieren Verhalten bei Änderungen/Löschungen (RESTRICT/NO ACTION, CASCADE, SET NULL).

Syntax-Grundform:

-- in CREATE TABLE oder ALTER TABLE
CONSTRAINT fk_name
  FOREIGN KEY (child_column[, ...])
  REFERENCES parent_table(parent_pk_column[, ...])
  ON DELETE {RESTRICT|CASCADE|SET NULL}
  ON UPDATE {RESTRICT|CASCADE|SET NULL};

Wichtig:

  • Datentypen & Zeichensatz/Kollation der verknüpften Spalten müssen kompatibel sein.
  • FK-Spalten dürfen NOT NULL sein – dann sind NULLs nicht erlaubt (SET NULL wäre dann unzulässig).
  • MySQL behandelt NO ACTION faktisch wie RESTRICT.
  • modul/m290_guko/learningunits/lu08/theorie/b_fk-grundlagen.1760165095.txt.gz
  • Zuletzt geändert: 2025/10/11 08:44
  • von gkoch