Для чего нужна денормализация БД

«Для чего нужна денормализация БД» — вопрос из категории Базы данных, который задают на 46% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Денормализация БД — это намеренное снижение уровня нормализации для повышения производительности за счёт избыточности данных.

Зачем применяется:

  • Ускорение запросов — уменьшение JOIN-ов за счёт дублирования данных.
  • Оптимизация сложных отчётов — предрасчёт агрегатов (суммы, средние).
  • Упрощение схемы — снижение нагрузки на разработчиков.

Пример:
В нормализованной БД есть таблицы Orders и OrderItems. Для отчёта по итоговой сумме заказов придётся делать JOIN и SUM. В денормализованном варианте можно добавить поле total_amount прямо в Orders.

-- Денормализованная таблица
ALTER TABLE Orders ADD COLUMN total_amount DECIMAL(10,2);

Минусы:

  • Риск несогласованности данных.
  • Усложнение обновлений (триггеры/приложение должно поддерживать актуальность).

Используется осторожно, чаще в OLAP-системах или read-heavy нагрузках.