Junior
Kā tiek panākts attiecība relāciju datu bāzē?
sobes.tech AI
Atbilde no AI
Attiecības relāciju datu bāzēs tiek panāktas ar ārējiem atslēgām (Foreign Keys):
Ārējā atslēga ir kolonna vai kolonnas vienā tabulā, kas norāda uz citas tabulas primāro atslēgu (Primary Key). Tādējādi tiek izveidots saistījums starp ierakstiem divās tabulās:
Dažādu attiecību piemēri:
- Viens pret daudz (One-to-Many): Viens ieraksts pirmajā tabulā ir saistīts ar vairākiem ierakstiem otrajā tabulā. Piemēram, viens nodaļa var ietvert daudz darbinieku.
Employeestabulā būs ārējā atslēga, kas norāda uzDepartmentstabulas primāro atslēgu: - Daudz pret daudz (Many-to-Many): Vairāki ieraksti pirmajā tabulā ir saistīti ar vairākiem ierakstiem otrajā tabulā. Piemēram, viens students var mācīties vairākos kursos, un viens kurss var mācīties vairāki studenti. Šim tiek izmantota starptabulu tabula, kas satur abu tabulu ārējās atslēgas:
- Viens pret vienu (One-to-One): Viens ieraksts pirmajā tabulā ir saistīts tikai ar vienu ierakstu otrajā tabulā. Tas ir retāk sastopams attiecību veids un bieži tiek izmantots tabulas vertikālai sadalīšanai vai opcijai datu glabāšanai. To realizē ar ārējo atslēgu otrajā tabulā, kas norāda uz pirmās tabulas primāro atslēgu, bieži ar unikālu ierobežojumu ārējai atslēgai:
SQL piemērs ārējās atslēgas izveidei:
-- Izveidojam `Departments` tabulu
CREATE TABLE Departments (
department_id INT PRIMARY KEY, -- Primārā atslēga
department_name VARCHAR(100)
);
-- Izveidojam `Employees` tabulu ar ārējo atslēgu
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(100),
department_id INT, -- Ārējā atslēga
FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Ārējās atslēgas definīcija
);
Ārējās atslēgas nodrošina datu atsauces integritāti, novēršot "aizķērusas" saites (kad ārējā atslēga norāda uz neesošu ierakstu).