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 */
);