Ответ
В реляционной модели данных отношение (relation) — это фундаментальное понятие, которое на физическом уровне реализуется как таблица. Это набор кортежей (строк) с одинаковой структурой.
Ключевые компоненты отношения:
- Заголовок (Схема): Фиксированный набор атрибутов (столбцов) с именами и типами данных.
- Тело: Множество кортежей (строк), соответствующих схеме. Каждый кортеж представляет собой факт.
Пример отношения Employees:
-- Схема (заголовок) отношения
CREATE TABLE Employees (
employee_id INT PRIMARY KEY, -- Атрибут 1
first_name VARCHAR(50) NOT NULL, -- Атрибут 2
last_name VARCHAR(50) NOT NULL, -- Атрибут 3
department_id INT, -- Атрибут 4
hire_date DATE NOT NULL -- Атрибут 5
);
Тело отношения (данные):
| employee_id (Ключ) | first_name | last_name | department_id | hire_date |
|---|---|---|---|---|
| 101 | John | Doe | 5 | 2022-03-15 |
| 102 | Jane | Smith | 3 | 2021-07-22 |
| 103 | Alice | Johnson | 5 | 2023-01-10 |
Важные свойства реляций:
- Отсутствие упорядоченности строк: Нет встроенной очередности, порядок задается при выборке (
ORDER BY). - Уникальность кортежей: Все строки в таблице должны быть уникальны (обеспечивается ключами).
- Атомарность значений: Значение в каждом пересечении строки и столбца атомарно (неразложимо), не содержит множеств или других отношений.
- Связи между отношениями: Отношения связываются через внешние ключи (foreign keys), что и создает "реляционность".
-- Отношение Departments связано с Employees через department_id CREATE TABLE Departments ( department_id INT PRIMARY KEY, department_name VARCHAR(100) ); -- department_id в Employees ссылается на Departments ALTER TABLE Employees ADD CONSTRAINT fk_dept FOREIGN KEY (department_id) REFERENCES Departments(department_id);
Таким образом, база данных — это набор взаимосвязанных отношений (таблиц).