Junior
Kaip pasiekiamas ryšys reliacinėje duomenų bazėje?
sobes.tech AI
Atsakymas iš AI
Santykiniai duomenų bazėse ryšiai pasiekiami naudojant išorinius raktus (Foreign Keys):
Išorinis raktas - tai stulpelis arba stulpelių rinkinys viename lentelėje, kuris nurodo kitą lentelę esančio pirminio rakto (Primary Key). Taip nustatomas ryšys tarp įrašų dviejose lentelėse:
Ryšių tipų pavyzdžiai:
- Vienas į daug (One-to-Many): Vienas įrašas pirmojoje lentelėje yra susijęs su keliais įrašais antrojoje lentelėje. Pavyzdžiui, viena skyriaus gali turėti daug darbuotojų.
Employeeslentelėje bus išorinis raktas, nurodantisDepartmentslentelės pirminį raktą: - Daug į daug (Many-to-Many): Keletas įrašų pirmojoje lentelėje yra susiję su keliais įrašais antrojoje lentelėje. Pavyzdžiui, vienas studentas gali mokytis keliuose kursuose, ir vienas kursas gali būti mokomas kelių studentų. Tam naudojama tarpinė lentelė, kurioje yra abu lentelių išoriniai raktai:
- Vienas į vieną (One-to-One): Vienas įrašas pirmojoje lentelėje yra susijęs tik su vienu įrašu antrojoje lentelėje. Tai retesnis ryšio tipas ir dažnai naudojamas lentelės vertikaliam skaidymui arba pasirenkamiems duomenims saugoti. Tai įgyvendinama išoriniu raktu antrojoje lentelėje, kuris nurodo pirmosios lentelės pirminį raktą, dažnai su unikaliu apribojimu išoriniam raktui:
SQL pavyzdys, kaip sukurti išorinį raktą:
-- Sukuriame `Departments` lentelę
CREATE TABLE Departments (
department_id INT PRIMARY KEY, -- Pirminis raktas
department_name VARCHAR(100)
);
-- Sukuriame `Employees` lentelę su išoriniu raktu
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(100),
department_id INT, -- Išorinis raktas
FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Išorinio rakto apibrėžimas
);
Išoriniai raktai užtikrina duomenų nuorodų vientisumą, užkertant kelią "pakabintų" nuorodų susidarymui (kai išorinis raktas nurodo neegzistuojantį įrašą).