Что такое денормализация БД

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

Ответ

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

Пример:
В нормализованной БД заказы и товары хранятся отдельно:

Orders(order_id, customer_id)  
OrderItems(order_id, product_id, quantity)  
Products(product_id, name, price)  

После денормализации можно дублировать название и цену товара прямо в OrderItems:

OrderItems(order_id, product_id, quantity, product_name, product_price)  

Плюсы:

  • Уменьшение JOIN-запросов
  • Ускорение чтения

Минусы:

  • Аномалии обновления (нужно синхронизировать дубли)
  • Усложнение поддержки

Используется в аналитических системах (OLAP), кэшах, отчетах.