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) -- გარეგანი გასაღების განსაზღვრა
);

გარეგანი გასაღებები უზრუნველყოფს მონაცემთა მიმთითებელი მთლიანობის დაცვას, თავიდან აცილებს "მხოლოდ" კავშირების შექმნას (როდესაც გარეგანი გასაღები მიუთითებს არარსებულ ჩანაწერზე).