Ответ
Денормализация БД — это намеренное снижение уровня нормализации для повышения производительности за счёт избыточности данных.
Зачем применяется:
- Ускорение запросов — уменьшение JOIN-ов за счёт дублирования данных.
- Оптимизация сложных отчётов — предрасчёт агрегатов (суммы, средние).
- Упрощение схемы — снижение нагрузки на разработчиков.
Пример:
В нормализованной БД есть таблицы Orders и OrderItems. Для отчёта по итоговой сумме заказов придётся делать JOIN и SUM. В денормализованном варианте можно добавить поле total_amount прямо в Orders.
-- Денормализованная таблица
ALTER TABLE Orders ADD COLUMN total_amount DECIMAL(10,2);
Минусы:
- Риск несогласованности данных.
- Усложнение обновлений (триггеры/приложение должно поддерживать актуальность).
Используется осторожно, чаще в OLAP-системах или read-heavy нагрузках.