Что такое отношение (реляция) в реляционной базе данных?

«Что такое отношение (реляция) в реляционной базе данных?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Отношение (relation) — фундаментальная структура данных в реляционной модели, представляющая собой таблицу со строками и столбцами.

Терминология и структура: Теория (Реляционная модель) Практика (SQL/БД) Описание
Отношение (Relation) Таблица (Table) Вся структура с данными.
Кортеж (Tuple) Запись (Row) Одна строка в таблице.
Атрибут (Attribute) Столбец (Column) Поле таблицы с именем и типом данных.
Схема отношения Схема таблицы Определение структуры: имена и типы столбцов, ключи, ограничения.

Пример создания отношения Users:

CREATE TABLE Users (
    -- Атрибуты (столбцы) с типами данных
    id INT PRIMARY KEY,               -- Первичный ключ
    name VARCHAR(50) NOT NULL,        -- Ограничение NOT NULL
    email VARCHAR(100) UNIQUE NOT NULL, -- Уникальное ограничение
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Схема отношения: (id INT, name VARCHAR(50), email VARCHAR(100), created_at TIMESTAMP)

Ключевые принципы:

  • Отсутствие порядка строк: Данные в отношении не упорядочены.
  • Уникальность кортежей: Все строки (кортежи) в отношении должны быть уникальны.
  • Связи через ключи: Отношения связываются с помощью первичных (PRIMARY KEY) и внешних ключей (FOREIGN KEY), обеспечивая целостность данных.
    CREATE TABLE Orders (
        order_id INT PRIMARY KEY,
        user_id INT,  -- Внешний ключ
        amount DECIMAL,
        FOREIGN KEY (user_id) REFERENCES Users(id) -- Связь с отношением Users
    );