Sobes.tech
Junior

Ako cudzí kľúč ovplyvňuje integritu údajov v databáze?

sobes.tech AI

Odpoveď od AI

Cudzí kľúč (foreign key) zabezpečuje referenčnú integritu údajov tým, že garantuje, že hodnoty v stĺpci jednej tabuľky (deti tabuľky) zodpovedajú hodnotám v stĺpci inej tabuľky (rodičovskej tabuľky).

Vplyv na integritu údajov:

  1. Zakazuje pridanie záznamov do deti tabuľky s neexistujúcou hodnotou v príslušnom stĺpci rodičovskej tabuľky. Pokus o vloženie riadku, ktorý odkazuje na neexistujúci záznam rodiča, spôsobí chybu.
  2. Obmedzuje mazanie záznamov z rodičovskej tabuľky, na ktoré odkazujú záznamy v deti tabuľke. Správanie pri pokuse o mazanie závisí od nastaveného (ON DELETE):
    • RESTRICT (predvolené): Zakazuje mazanie.
    • CASCADE: Vymaže závislé záznamy v deti tabuľke.
    • SET NULL: Nastaví hodnotu NULL v príslušnom stĺpci deti tabuľky (ak stĺpec umožňuje NULL).
    • NO ACTION: Podobne ako RESTRICT pri štandardnej kontrole, ale môže sa líšiť počas vykonávania.
  3. Obmedzuje aktualizáciu záznamov v rodičovskej tabuľke. Správanie pri aktualizácii závisí aj od nastaveného (ON UPDATE):
    • RESTRICT (predvolené): Zakazuje aktualizáciu.
    • CASCADE: Aktualizuje zodpovedajúcu hodnotu v závislých záznamoch v deti tabuľke.
    • SET NULL: Nastaví hodnotu NULL v príslušnom stĺpci deti tabuľky (ak stĺpec umožňuje NULL).
    • NO ACTION: Podobne ako RESTRICT pri štandardnej kontrole, ale môže sa líšiť počas vykonávania.

Cudzí kľúč pomáha predchádzať vzniku "sirotčích" záznamov a zabezpečuje, že vzťahy medzi tabuľkami zostávajú správne.