Junior
Jak cizí klíč ovlivňuje integritu dat v databázi?
sobes.tech AI
Odpověď od AI
Cizí klíč (foreign key) zajišťuje referenční integritu dat tím, že garantuje, že hodnoty ve sloupci jedné tabulky (dceřiné tabulky) odpovídají hodnotám ve sloupci jiné tabulky (mateřské tabulky).
Dopad na integritu dat:
- Zakazuje přidávání záznamů do dceřiné tabulky s neexistující hodnotou ve sloupci mateřské tabulky. Pokus o vložení řádku odkazujícího na neexistující záznam v mateřské tabulce způsobí chybu.
- Omezuje mazání záznamů z mateřské tabulky, na které odkazují záznamy v dceřiné tabulce. Chování při pokusu o mazání závisí na nastavené akci (
ON DELETE):RESTRICT(výchozí): Mazání je zakázáno.CASCADE: Odstraní závislé záznamy v dceřiné tabulce.SET NULL: Nastaví hodnotu NULL ve sloupci dceřiné tabulky (pokud sloupec umožňuje NULL).NO ACTION: Podobně jakoRESTRICTpři standardní kontrole, ale může se lišit při běhu.
- Omezuje aktualizaci záznamů v mateřské tabulce. Chování při pokusu o aktualizaci závisí také na nastavené akci (
ON UPDATE):RESTRICT(výchozí): Aktualizace je zakázána.CASCADE: Aktualizuje odpovídající hodnotu v závislých záznamech v dceřiné tabulce.SET NULL: Nastaví hodnotu NULL ve sloupci dceřiné tabulky (pokud sloupec umožňuje NULL).NO ACTION: Podobně jakoRESTRICTpři standardní kontrole, ale může se lišit při běhu.
Cizí klíč pomáhá zabránit vzniku "sirotčích" záznamů a zajišťuje, že vztahy mezi tabulkami zůstanou správné.