Назад к вопросам
Middle
104
questionbank

Что такое нормализация?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

Основная цель:

  • Устранение дублирования данных.
  • Улучшение целостности данных (исключение аномалий вставки, обновления и удаления).
  • Повышение эффективности хранения и запросов (в некоторых случаях).

Процесс нормализации основывается на принципах нормальных форм (НФ). Наиболее распространенные:

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

Пример:

Исходная таблица "Заказы_Товары":

ID Заказа Дата Заказа ID Товара Название Товара Цена Товара Количество Имя Клиента Адрес Клиента
1 2023-10-27 101 Телефон 500 1 Иван Петров Ул. Пушкина, 10
1 2023-10-27 102 Наушники 100 2 Иван Петров Ул. Пушкина, 10
2 2023-10-27 101 Телефон 500 1 Мария Иванова Ул. Лермонтова, 5

После нормализации (до 3НФ):

Таблица "Заказы":

ID Заказа Дата Заказа ID Клиента
1 2023-10-27 1
2 2023-10-27 2

Таблица "Позиции Заказа":

ID Позиции ID Заказа ID Товара Количество
1 1 101 1
2 1 102 2
3 2 101 1

Таблица "Товары":

ID Товара Название Товара Цена Товара
101 Телефон 500
102 Наушники 100

Таблица "Клиенты":

ID Клиента Имя Клиента Адрес Клиента
1 Иван Петров Ул. Пушкина, 10
2 Мария Иванова Ул. Лермонтова, 5

Однако, чрезмерная нормализация может привести к увеличению количества соединений (JOIN) при выполнении запросов, что может снизить производительность. Поэтому при проектировании базы данных часто ищут баланс между степенью нормализации и производительностью. Денормализация — это процесс намеренного нарушения нормальных форм для улучшения производительности, обычно за счет добавления избыточности.