Концепция: Нормализация
Нормализацией называется процесс приведения сложной структуры данных к простейшей и наиболее стабильной форме в целях минимизации избыточности.
Взаимосвязи
Связанные элементы
Основное описание

Введение

В данном разделе приведены общие сведения о нормализации данных в контексте разработки рабочего продукта Рабочий продукт: Модель данных. Этот раздел не охватывает нормирование полностью, поскольку это довольно широкая тема, и она подробно освещена в различных публикациях по разработке баз данных.  В публикации [NBG01] нормализация названа "аналитической технологией, применяемой для создания оптимальной структуры реляционной базы данных". На практике нормализация представляет собой процедуру устранения избыточности в модели данных путем применения определенных правил. Устранение избыточности в таблицах модели данных позволяет обеспечить целостность базы данных.  

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

Уровни нормализации

Нормализацию можно представить в виде иерархической структуры нормальных форм, в которой наиболее активно используются первые три формы. Каждый следующий уровень нормализации более строг, чем предыдущий. Ниже перечислены первые три иерархических уровня нормализации:

  • Первая нормальная форма - из таблицы исключены все повторяющиеся столбцы данных, и данные приведены к минимальным неделимым элементам.
  • Вторая нормальная форма - данные находятся в первой нормальной форме, удалено дублирование главных ключей, и теперь значения в столбцах зависят только от поля основного ключа.
  • Третья нормальная форма - данные находятся во второй нормальной форме и ни один столбец не зависит от других неключевых столбцов.

Существуют и другие уровни нормализации, однако их обсуждение выходит за рамки данного раздела.   Сведения о других уровнях нормализации можно найти в публикации [DAT99]. При выборе уровня нормализации модели данных разработчик базы данных должен учесть особенности конкретного проекта.