Sobes.tech
Junior

Kako strani ključ utiče na integritet podataka u bazi?

sobes.tech АИ

Одговор од АИ

Strani ključ (foreign key) osigurava referencijalni integritet podataka, garantujući da vrednosti u koloni jedne tabele (tabela deteta) odgovaraju vrednostima u koloni druge tabele (tabela roditelja).

Uticaj na integritet podataka:

  1. Zabranjuje dodavanje zapisa u tabelu deteta sa nepostojećom vrednošću u odgovarajućoj koloni tabele roditelja. Pokušaj umetanja reda koji se odnosi na nepostojeći zapis roditelja izazvaće grešku.
  2. Ograničava brisanje zapisa iz tabele roditelja na koje se odnose zapisi u tabeli deteta. Ponašanje pri brisanju zavisi od podešene akcije (ON DELETE):
    • RESTRICT (podrazumevano): Zabranjuje brisanje.
    • CASCADE: Briše zavisne zapise u tabeli deteta.
    • SET NULL: Postavlja vrednost NULL u odgovarajuću kolonu tabele deteta (ako kolona to dozvoljava).
    • NO ACTION: Slično RESTRICT pri standardnoj provere, ali može da se razlikuje tokom izvršenja.
  3. Ograničava ažuriranje zapisa u tabeli roditelja. Ponašanje pri ažuriranju takođe zavisi od podešene akcije (ON UPDATE):
    • RESTRICT (podrazumevano): Zabranjuje ažuriranje.
    • CASCADE: Ažurira odgovarajuću vrednost u zavisnim zapisima u tabeli deteta.
    • SET NULL: Postavlja vrednost NULL u odgovarajuću kolonu tabele deteta (ako kolona to dozvoljava).
    • NO ACTION: Slično RESTRICT pri standardnoj provere, ali može da se razlikuje tokom izvršenja.

Strani ključ pomaže da se spreči pojavljivanje "sirotastih" zapisa i garantuje da ostanu ispravne veze između tabela.