← Назад к списку
ТехническаяСистемный аналитикMiddle

Что такое ER-модель и нормализация? Объясните первые три нормальные формы.

Короткий ответ

  • ER-модель: сущности, атрибуты, связи и их кардинальность
  • Связи один-к-одному, один-ко-многим, многие-ко-многим
  • Многие-ко-многим разворачивается через промежуточную таблицу
  • 1НФ: атомарные значения, нет повторяющихся групп
  • 2НФ: нет зависимости от части составного ключа
  • 3НФ: нет транзитивных зависимостей между неключевыми атрибутами
  • Денормализация — осознанный шаг ради скорости чтения

ER-модель описывает сущности и связи предметной области, а нормализация до 3НФ устраняет дублирование и аномалии, причём денормализация допустима как осознанное решение.

Как сказать вслух

пример ответа

ER-модель — это схема предметной области: какие есть сущности, их атрибуты и как они связаны, например «клиент оформляет много заказов». Нормализация — приведение таблиц к виду без дублирования данных. Первая нормальная форма — значения атомарны, нельзя хранить список телефонов в одной ячейке. Вторая — атрибуты зависят от всего ключа, а не от его части. Третья — неключевые атрибуты не зависят друг от друга, например город не должен тянуться за индексом в таблице заказов. На практике иногда осознанно денормализуют ради скорости отчётов.

Подробный ответ

Основной ответ

ER-модель (entity-relationship) — концептуальное описание данных: сущности (клиент, заказ, товар), их атрибуты, ключи и связи с кардинальностью (1:1, 1:N, M:N). Связь M:N на физическом уровне реализуется промежуточной таблицей. Нормализация — декомпозиция таблиц для устранения избыточности и аномалий вставки, обновления, удаления. 1НФ: атомарные значения, уникальные строки, нет повторяющихся групп. 2НФ: 1НФ плюс каждый неключевой атрибут зависит от всего составного ключа, а не от части (цена товара не хранится в строке заказа с составным ключом заказ+товар). 3НФ: 2НФ плюс нет транзитивных зависимостей (название города не хранится рядом с его кодом в таблице клиентов). Для OLTP обычно достаточно 3НФ; в аналитических хранилищах применяют денормализованные схемы «звезда» ради скорости чтения.

Ключевые моменты

  • Кардинальность связей. 1:1, 1:N и M:N; многие-ко-многим требует промежуточной таблицы с внешними ключами на обе стороны.
  • Аномалии данных. Ненормализованная схема даёт дублирование и аномалии: обновили цену в одной строке — в других осталась старая.
  • Три формы кратко. 1НФ — атомарность, 2НФ — зависимость от полного ключа, 3НФ — отсутствие транзитивных зависимостей.
  • Осознанная денормализация. В хранилищах и отчётности дублирование допускают намеренно, чтобы ускорить чтение — это выбор, а не ошибка.

Практический контекст

Системному аналитику ER-модель нужна при проектировании новых модулей и интеграций: от неё зависят контракты API и миграции данных. На собеседовании часто дают мини-задачу: «спроектируйте таблицы для интернет-магазина» — и смотрят, выделит ли кандидат промежуточную таблицу для позиций заказа и зафиксирует ли цену на момент покупки. Знание форм проверяют на примерах, а не по определениям.

Частые ошибки

  • Зубрят определения форм, но не могут найти нарушение в конкретной таблице
  • Забывают, что цену в позиции заказа нужно фиксировать на момент покупки
  • Считают любую денормализацию ошибкой, не зная про аналитические схемы

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru