Sobes.tech
Junior

Cum influențează cheia externă integritatea datelor în bază?

sobes.tech AI

Răspuns de la AI

O cheia străină (foreign key) asigură integritatea referențială a datelor, garantând că valorile din coloana unui tabel (tabelul copil) corespund valorilor din coloana altui tabel (tabelul părinte).

Impact asupra integrității datelor:

  1. Interzice adăugarea de înregistrări în tabelul copil cu o valoare care nu există în coloana corespunzătoare a tabelului părinte. Încercarea de a insera o linie care face referire la o înregistrare părinte inexistentă va genera o eroare.
  2. Restricționează ștergerea înregistrărilor din tabelul părinte care sunt referențiate de înregistrări din tabelul copil. Comportamentul la ștergere depinde de acțiunea configurată (ON DELETE):
    • RESTRICT (implicit): Ștergerea este interzisă.
    • CASCADE: Șterge înregistrările dependente din tabelul copil.
    • SET NULL: Setează valoarea NULL în coloana corespunzătoare din tabelul copil (dacă coloana permite NULL).
    • NO ACTION: Similar cu RESTRICT în verificarea standard, dar poate diferi în timpul execuției.
  3. Restricționează actualizarea înregistrărilor din tabelul părinte. Comportamentul la actualizare depinde, de asemenea, de acțiunea configurată (ON UPDATE):
    • RESTRICT (implicit): Actualizarea este interzisă.
    • CASCADE: Actualizează valoarea corespunzătoare în înregistrările dependente din tabelul copil.
    • SET NULL: Setează valoarea NULL în coloana corespunzătoare din tabelul copil (dacă coloana permite NULL).
    • NO ACTION: Similar cu RESTRICT în verificarea standard, dar poate diferi în timpul execuției.

Cheia străină ajută la prevenirea apariției de înregistrări "orfane" și asigură că relațiile dintre tabele rămân corecte.