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
Employeesbiće straniji ključ koji se odnosi na primarni ključ u tabeliDepartments. - 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).