Sobes.tech
Junior

Как се постига връзката в релационна база данни?

sobes.tech AI

Отговор от AI

Връзките в системите за релационни бази данни (RDBMS) се реализират чрез външни ключове (Foreign Keys).

Външният ключ е колона или набор от колони в таблица, които се отнасят към първичния ключ в друга таблица. По този начин се установява връзка между записите в две таблици.

Примери за типове връзки:

  • Един към много (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) -- Определение на външния ключ
);

Външните ключове осигуряват референтната цялост на данните, предотвратявайки създаването на "призрачни" връзки (когато външният ключ се отнася към несъществуващ запис в свързаната таблица).