Sobes.tech
Middle

Ce este integritatea legăturilor de referință?

sobes.tech AI

Răspuns de la AI

Integritatea referențială este o proprietate a datelor dintr-o bază de date relațională care garantează că referințele dintre tabele rămân valide. Aceasta previne următoarele probleme:

  • Ștergerea unui rând din tabelul "părinte" la care fac referire rânduri din tabelul "copil".
  • Modificarea cheii primare din tabelul "părinte" la care fac referire rânduri din tabelul "copil" fără a actualiza aceste referințe.
  • Inserarea unui rând în tabelul "copil" cu o referință la o cheie primară inexistentă în tabelul "părinte".

Se implementează cu ajutorul cheilor externe (FOREIGN KEY).

Exemple de restricții pentru cheile externe:

  • ON DELETE CASCADE: La ștergerea unui rând din tabelul părinte, rândurile corespunzătoare din tabelul copil sunt, de asemenea, șterse.
  • ON DELETE SET NULL: La ștergerea unui rând din tabelul părinte, cheia externă corespunzătoare din tabelul copil este setată la NULL.
  • ON DELETE RESTRICT: Ștergerea unui rând din tabelul părinte este interzisă dacă există referințe către el în tabelul copil.
  • ON UPDATE CASCADE: La actualizarea cheii primare în tabelul părinte, cheile externe corespunzătoare din tabelul copil sunt, de asemenea, actualizate.
-- Exemplu de tabel "users" (părinte)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- Exemplu de tabel "orders" (copil) cu cheie externă
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Exemplu de restricție */
        ON UPDATE CASCADE /* Exemplu de restricție */
);