Начальный ~20 мин чтения

Реляционная модель и таблицы

Урок 1 из 6 в курсе SQL: быстрый старт

Реляционная модель и таблицы

реляционная база данных хранит данные в таблицах со строками и столбцами, связанными через ключи.

Почему это важно: Понимание реляционной модели — основа для правильного проектирования схемы БД. Неправильная схема порождает дублирование данных, аномалии обновления и медленные запросы.

Главная идея

Таблица — это отношение (relation): набор строк одинаковой структуры. Первичный ключ однозначно идентифицирует строку, внешний ключ связывает таблицы.

Как это выглядит на практике

  1. Дизайнер решает хранить пользователей: id, email, name — это одна таблица.
  2. Заказы ссылаются на пользователя через user_id — это внешний ключ.
  3. Каждый заказ однозначно идентифицируется по id — это первичный ключ.
  4. JOIN-запрос соединяет таблицы по ключам для получения связанных данных.

Что происходит под капотом

  • PRIMARY KEY — уникальный идентификатор строки; обычно целочисленный автоинкрементный или UUID.
  • FOREIGN KEY — ссылка на первичный ключ другой таблицы; обеспечивает ссылочную целостность.
  • NULL означает отсутствие значения, а не ноль или пустую строку — это важное различие для условий WHERE.
  • Нормализация (1NF, 2NF, 3NF) устраняет дублирование и аномалии за счёт разбивки на связанные таблицы.

Типичные ошибки и заблуждения

  • Ошибка: больше таблиц — всегда лучше. Избыточная нормализация усложняет запросы без реальной пользы.
  • Ошибка: NULL == пустая строка. NULL — это отсутствие значения, и сравнение с ним требует IS NULL, а не = NULL.
  • Ошибка: первичный ключ всегда должен быть числом. UUID популярен в распределённых системах.
  • Ошибка: внешние ключи — лишняя сложность. Они защищают целостность данных на уровне БД.

Ключевые выводы

  • Таблица — основная единица хранения; строка — запись, столбец — атрибут.
  • PRIMARY KEY гарантирует уникальность записи.
  • FOREIGN KEY устанавливает связь между таблицами.
  • NULL — отсутствие значения, а не ноль.

Термины урока

Table (таблица): структура с именованными столбцами и строками данных.
Primary key: уникальный идентификатор строки в таблице.
Foreign key: столбец, ссылающийся на primary key другой таблицы.
NULL: маркер отсутствия значения.

Связь с работой backend-разработчика

Хорошая схема БД проектируется один раз, но живёт годами. Время, потраченное на нормализацию и правильные ключи в начале, окупается при росте данных.

Мини-разбор реальной ситуации

Разработчик хранит категории товаров как строку в таблице products: category = 'Electronics'. При переименовании категории нужно обновить тысячи строк. Решение: отдельная таблица categories с foreign key category_id в products.

Что запомнить

  • Реляционная модель организует данные через таблицы и ключи.
  • NULL — не ноль и не пустая строка.
  • Нормализация устраняет дублирование, но требует JOIN при чтении.

Итог

Реляционная модель — фундамент SQL-баз данных. Правильное понимание таблиц, ключей и NULL делает проектирование схемы осознанным.