Sobes.tech
Junior

Kako se postiže odnos u relacionoj bazi podataka?

sobes.tech АИ

Одговор од АИ

Vezani odnosi u sistemima relacijskih baza podataka (RDBMS) ostvaruju se pomoću stranih ključeva (Foreign Keys).

Strani ključ je kolona ili skup kolona u jednoj tabeli koja se odnosi na primarni ključ u drugoj tabeli. Na taj način uspostavlja se veza između zapisa u dve tabele.

Primeri tipova veza:

  • Jedan prema više (One-to-Many): Jedan zapis u prvoj tabeli povezan je sa više zapisa u drugoj tabeli. Na primer, jedan odeljak može imati mnogo zaposlenih. U tabeli Employees biće straniji ključ koji se odnosi na primarni ključ u tabeli Departments.
  • Više prema više (Many-to-Many): Više zapisa u prvoj tabeli povezano je sa više zapisa u drugoj tabeli. Na primer, jedan student može pohađati više kurseva, a jedan kurs može pohađati više studenata. To se realizuje pomoću posredne tabele (tabele veza) koja sadrži strane ključeve koji se odnose na primarne ključeve obe tabele.
  • Jedan prema jedan (One-to-One): Jedan zapis u prvoj tabeli povezan je samo sa jednim zapisom u drugoj tabeli. Ovaj tip veze je ređe zastupljen i često se koristi za vertikalno razdvajanje tabele ili za skladištenje opcionalnih podataka. Realizuje se pomoću stranog ključa u drugoj tabeli koji se odnosi na primarni ključ u prvoj, često sa ograničenjem jedinstvenosti na strani ključ.

Primer kreiranja tabele sa stranim ključem u SQL:

-- Kreiramo tabelu Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Primarni ključ
    department_name VARCHAR(100)
);

-- Kreiramo tabelu Employees sa stranim ključem
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Kolona za strani ključ
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definicija stranog ključa
);

Strani ključevi obezbeđuju referencijalni integritet podataka, sprečavajući kreiranje "duh"-veza (kada strani ključ referiše na nepostojeći zapis u povezanoj tabeli).