Кто использует денормализацию БД

«Кто использует денормализацию БД» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Денормализацию БД используют для оптимизации производительности в read-heavy системах, где важна скорость чтения данных, а не их целостность или минимизация дублирования.

Где применяется:

  • Аналитика и отчеты (OLAP) — денормализация ускоряет сложные запросы.
  • Кэширование — данные объединяются для быстрого доступа.
  • NoSQL БД (MongoDB, Cassandra) — часто изначально денормализованы.
  • Микросервисы — данные дублируются для независимости сервисов.

Пример:

-- Нормализованная схема (users + orders)
SELECT u.name, o.total 
FROM users u 
JOIN orders o ON u.id = o.user_id;

-- Денормализованная (все в одной таблице)
SELECT name, total FROM user_orders;  

Минусы: аномалии данных, сложность обновлений.