Денормализация – приём проектирования баз данных, при котором в схему сознательно вводится избыточность: данные из связанных таблиц копируются или объединяются, чтобы запросы на чтение выполнялись быстрее и проще. Это противоположность нормализации, которая устраняет дублирование.
Примеры
- Хранение названия товара в строке заказа, а не только ссылки на справочник.
- Предрасчитанные итоги в отдельных полях.
- Широкие таблицы измерений в схеме «звезда».
- Документная модель в NoSQL с вложенными данными.
Плюсы
- Меньше соединений и быстрее чтение.
- Проще запросы для отчётов.
Минусы
- Риск несогласованности при изменении данных.
- Больше места и сложнее обновления.
Когда применять
Денормализация уместна в аналитических хранилищах, витринах и высоконагруженных системах чтения; в транзакционных системах её применяют точечно, обеспечивая согласованность триггерами или логикой приложения.