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) -- Определение на външния ключ
);
Външните ключове осигуряват референтната цялост на данните, предотвратявайки създаването на "призрачни" връзки (когато външният ключ се отнася към несъществуващ запис в свързаната таблица).