Денормализация может быть полезна в некоторых случаях, например:
- Большое количество соединений таблиц. 1 В полностью нормализованной базе данных запросы, требующие соединения до 10 и более таблиц, являются ресурсоёмкими и медленными. 1 Денормализация позволяет сократить количество таблиц, объединив несколько таблиц с небольшим размером, содержащих редко изменяемую информацию, которая тесно связана по смыслу. 1
- Расчётные значения. 1 Зачастую запросы со сложными вычислениями выполняются медленно и потребляют много ресурсов, особенно при использовании группировок и агрегатных функций. 1 В этом случае денормализация позволяет добавить в таблицу 1–2 дополнительных столбца с часто используемыми и сложно вычисляемыми расчётными данными. 1
- Ускорение создания отчётов. 2 Создание отчётов по «живым» данным может требовать большого количества времени, да и производительность всей системы может в таком случае упасть. 2 Денормализация может ускорить извлечение данных за счёт сохранения избыточных данных таким образом, чтобы это соответствовало конкретным требованиям к отчётности. 3
- Предварительные вычисления часто запрашиваемых значений. 2 Всегда есть потребность держать наиболее часто запрашиваемые значения наготове для регулярных расчётов, а не создавать их заново, генерируя каждый раз в реальном времени. 2
Однако денормализацию следует применять разумно, учитывая уникальные потребности и ограничения каждого приложения. 3