Sobes.tech
Junior

Cum se realizează relația într-o bază de date relațională?

sobes.tech AI

Răspuns de la AI

Relațiile din sistemele de baze de date relaționale (RDBMS) sunt realizate prin chei externe (Foreign Keys).

O cheie externă este o coloană sau un set de coloane dintr-un tabel care face referire la cheia primară dintr-un alt tabel. În acest mod, se stabilește o relație între înregistrările din două tabele.

Exemple de tipuri de relații:

  • Unu-la-mulți (One-to-Many): O înregistrare din primul tabel este legată de mai multe înregistrări din al doilea tabel. De exemplu, un departament poate avea mulți angajați. În tabelul Employees, va exista o cheie externă care face referire la cheia primară din tabelul Departments.
  • Mulți-la-mulți (Many-to-Many): Mai multe înregistrări din primul tabel sunt legate de mai multe înregistrări din al doilea tabel. De exemplu, un student poate urma mai multe cursuri, iar un curs poate fi urmat de mai mulți studenți. Pentru implementare, se folosește un tabel intermediar (tabel de relații) care conține chei externe referitoare la cheile primare ale ambelor tabele.
  • Unu-la-unu (One-to-One): O înregistrare din primul tabel este legată doar de o înregistrare din al doilea tabel. Acest tip de relație este mai puțin frecvent și este adesea folosit pentru divizarea verticală a unui tabel sau pentru stocarea datelor opționale. Se realizează printr-o cheie externă în al doilea tabel care face referire la cheia primară din primul, adesea cu o restricție de unicitate pe cheia externă.

Exemplu de creare a unui tabel cu cheie externă în SQL:

-- Creăm tabelul Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Cheie primară
    department_name VARCHAR(100)
);

-- Creăm tabelul Employees cu cheie externă
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Coloană pentru cheia externă
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definirea cheii externe
);

Cheile externe asigură integritatea referențială a datelor, prevenind crearea de legături "fantomă" (când o cheie externă face referire la o înregistrare inexistentă în tabelul asociat).