Junior
Hogyan érhető el a kapcsolat egy relációs adatbázisban?
sobes.tech MI
Válasz az MI-től
A relációs adatbázis-kezelő rendszerekben (RDBMS) a kapcsolatok külső kulcsok (Foreign Keys) segítségével valósíthatók meg.
A külső kulcs egy oszlop vagy oszlopok halmaza egy táblában, amely egy másik tábla elsődleges kulcsára hivatkozik. Így két tábla rekordjai között kapcsolat jön létre.
A kapcsolatok típusainak példái:
- Egy-az-hoz (One-to-Many): Az első táblában lévő egy rekord több rekordhoz kapcsolódik a második táblában. Például, egy osztálynak sok alkalmazottja lehet. Az
Employeestáblában egy külső kulcs lesz, amely aDepartmentstábla elsődleges kulcsára hivatkozik. - Sok-az-hoz (Many-to-Many): Több rekord az első táblában több rekordhoz kapcsolódik a második táblában. Például, egy hallgató több kurzust vehet fel, és egy kurzus több hallgató által vehető fel. Ezt egy köztes (kapcsolati) táblával valósítják meg, amely tartalmazza mindkét tábla elsődleges kulcsára hivatkozó külső kulcsokat.
- Egy-az-hoz (One-to-One): Egy rekord az első táblában csak egy rekordhoz kapcsolódik a második táblában. Ez a kapcsolat típus kevésbé gyakori, és gyakran használják egy tábla vertikális felosztására vagy opcionális adatok tárolására. Ez egy külső kulcs segítségével valósítható meg a második táblában, amely az első tábla elsődleges kulcsára hivatkozik, gyakran egyedi korlátozással a külső kulcsra.
SQL-ben egy külső kulccsal rendelkező tábla létrehozásának példája:
-- Létrehozzuk a Departments táblát
CREATE TABLE Departments (
department_id INT PRIMARY KEY, -- Elsődleges kulcs
department_name VARCHAR(100)
);
-- Létrehozzuk az Employees táblát külső kulccsal
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(100),
department_id INT, -- Oszlop a külső kulcshoz
FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Külső kulcs meghatározása
);
A külső kulcsok biztosítják az adatok referenciális integritását, megakadályozva a "kísértet"-kapcsolatok létrejöttét (amikor egy külső kulcs egy nem létező rekordra hivatkozik a kapcsolódó táblában).