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