Foreign Key
Ein Fremdschlüssel ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist, stellt referenzielle Integrität zwischen Tabellen her und verhindert verwaiste Verweise.
Zweck
Referenzielle Integrität gewährleisten, verbundene Daten konsistent halten und Verweise auf nicht existierende Zeilen verhindern.
Mechanismus
FOREIGN KEY (col) REFERENCES other(id). Bedingung: eingefügte/aktualisierte Fremdschlüsselwerte müssen im referenzierten Primärschlüssel existieren (oder NULL sein). Ein optionales ON DELETE CASCADE/SET NULL definiert das Kaskadenverhalten. Fremdschlüssel brauchen Indizes, um Constraint-Prüfungen und JOINs zu beschleunigen.
Anwendungsfälle
- Tabellenübergreifende referenzielle Integrität
- Kaskadierendes Löschen/Aktualisieren
- ORM-Beziehungsmapping
- Datenkonsistenz-Constraints
Beispiele
- Eingabe
FOREIGN KEY (user_id) REFERENCES users(id)OutputReferential integrity constraintForeign key
Häufige Fehler
- Unindexed foreign keys lock tables during cascades
- Create an index on the foreign key column
Verwandte Begriffe
Primary Key
Ein Primärschlüssel ist die Spalte oder Spaltenkombination, die jede Zeile einer Tabelle eindeutig identifiziert — nicht null und eindeutig; die Zeilenidentität. GLOSSAR
JOIN
JOIN ist die SQL-Operation, die Zeilen mehrerer Tabellen über eine Join-Bedingung verknüpft; Typen sind Inner-, Left/Right/Full-Outer- und Cross-Joins. GLOSSAR
Index
Ein Index ist eine Hilfsdatenstruktur (z. B. B+-Baum, Hash), die zur Abfragebeschleunigung gepflegt wird — Raum wird gegen Zeit getauscht, auf Kosten von Schreibaufwand. GLOSSAR
Normalization
Datenbank-Normalisierung ist der Prozess, Tabellen zu zerlegen, um Redundanz und Update-Anomalien zu beseitigen, mit Normalformen von der 1NF bis BCNF/5NF, die zunehmend strenger werden. GLOSSAR