Что такое нормализация и денормализация в контексте работы с базами данных?

Нормализация — процесс организации данных в базе данных для уменьшения избыточности и улучшения целостности данных.

Короткий ответ

Что ответить на собеседовании

Нормализация — процесс организации данных в базе данных для уменьшения избыточности и улучшения целостности данных. Денормализация — процесс добавления избыточных данных в базу данных для улучшения производительности запросов.

Подробный разбор

Ответ с пояснениями

Нормализация — процесс организации данных в базе данных для уменьшения избыточности и улучшения целостности данных. Денормализация — процесс добавления избыточных данных в базу данных для улучшения производительности запросов.

Нормализация:

  • Принципы: Устранение повторяющихся групп, зависимостей между несвязанными атрибутами.

  • Формы нормализации (основные):

    • 1NF (Первая нормальная форма): Атомарные значения в колонках, отсутствие повторяющихся групп.
    • 2NF (Вторая нормальная форма): В 1NF + отсутствие частичных зависимостей.
    • 3NF (Третья нормальная форма): В 2NF + отсутствие транзитивных зависимостей.
    • БКНФ (Нормальная форма Бойса-Кодда): Более строгая версия 3NF.
  • Преимущества:

    • Уменьшение избыточности данных (экономия места).
    • Улучшение согласованности данных.
    • Упрощение модификации данных (вставка, обновление, удаление).
  • Недостатки:

    • Увеличение количества таблиц.
    • Необходимость объединения таблиц для получения полной информации (JOIN`ы), что может снизить производительность запросов.

Денормализация:

  • Принципы: Сознательное нарушение правил нормализации для ускорения чтения данных.

  • Типичные приемы:

    • Дублирование данных (например, хранение наименования товара в таблице заказов).
    • Объединение таблиц.
    • Предварительное вычисление агрегированных значений.
  • Преимущества:

    • Увеличивает производительность запросов (особенно SELECT).
    • Уменьшает количество JOIN`ов.
    • Может быть полезна для отчетов и OLAP-систем.
  • Недостатки:

    • Увеличение избыточности данных (трата места).
    • Риск несогласованности данных.
    • Усложнение модификации данных (необходимость обновлять данные в нескольких местах).

Выбор между нормализацией и денормализацией зависит от специфики приложения, приоритетов (целостность данных или производительность) и характера запросов. Обычно применяется нормализация для OLTP-систем (онлайн транзакции) и денормализация для OLAP-систем (аналитическая обработка) или в критических по производительности участках OLTP.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее