Sobes.tech
Junior

Ինչպես է հասնում հարաբերությունը ռելացիոնալ տվյալների բազայում?

sobes.tech AI

Պատասխան AI-ից

Հարաբերություններ ռելացիոնալ տվյալների բազաներում հասնում են արտաքին բանալիների (Foreign Keys) միջոցով:

Արտաքին բանալին - դա սյունակ կամ սյունակների հավաքածու է մեկ աղյուսակում, որը հղում է կատարում մյուս աղյուսակի հիմնական բանալուն (Primary Key): Այսպիսով, հաստատվում է կապ երկու աղյուսակների գրառումների միջև:

Տարբեր հարաբերությունների տեսակների օրինակներ:

  • Մի-կամ-շատ (One-to-Many): Մեկ գրառում առաջին աղյուսակում կապված է մի քանի գրառումների հետ երկրորդ աղյուսակում: Օրինակ, մեկ բաժին կարող է ունենալ շատ աշխատակիցներ: Employees աղյուսակում կլինի արտաքին բանալին, որը հղում է կատարում Departments աղյուսակի հիմնական բանալուն:
  • Շատ-կամ-շատ (Many-to-Many): Մի քանի գրառում առաջին աղյուսակում կապված է մի քանի գրառումների հետ երկրորդ աղյուսակում: Օրինակ, մի ուսանող կարող է սովորել մի քանի կուրս, և մի կուրս կարող է սովորել մի քանի ուսանող: Այս հարաբերությունը իրականացվում է միջնորդական աղյուսակով, որը պարունակում է արտաքին բանալիներ, հղում կատարելով երկու աղյուսակների հիմնական բանալուն:
  • Մի-կամ-մեկ (One-to-One): Մեկ գրառում առաջին աղյուսակում կապված է միայն մեկ գրառման հետ երկրորդ աղյուսակում: Սա ավելի հազվադեպ հարաբերության տեսակ է և հաճախ օգտագործվում է աղյուսակի վերտիկալ բաժանման կամ ընտրովի տվյալների պահպանման համար: Իրականացվում է արտաքին բանալով երկրորդ աղյուսակում, որը հղում է կատարում առաջին աղյուսակի հիմնական բանալուն, հաճախ ավելացնելով եզակի սահմանափակում արտաքին բանալու վրա:

SQL-ով արտաքին բանալու ստեղծման օրինակ:

-- Ստեղծում ենք `Departments` աղյուսակը
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Հիմնական բանալու սահմանում
    department_name VARCHAR(100)
);

-- Ստեղծում ենք `Employees` աղյուսակը արտաքին բանալով
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Արտաքին բանալու սյունակ
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Արտաքին բանալի սահմանում
);

Արտաքին բանալիները ապահովում են տվյալների հղումային ամբողջականությունը, կանխելով "կիսատ" հղումների ստեղծումը (երբ արտաքին բանալին հղում է կատարվում չհաստատված գրառման վրա):