35
с рекомендациями и требованиями нормализации данных, после чего
проведем саму нормализацию. Цель нормализации состоит в том, чтобы
уменьшить (но необязательно устранить) избыточность данных. Однако
иногда некоторая избыточность данных создается намеренно, чтобы
повысить эффективность работы программы. Дадим определение трех форм
нормализации базы данных.
Таблица находится в первой нормальной форме (1NF), если она имеет
первичный ключ, все атрибуты представляют собой простые типы данных и
отсутствуют повторяющиеся атрибуты. Чтобы соответствовать 1NF, домены
атрибутов должны быть атомарными значениями и не должно быть
повторяющихся групп атрибутов. Все повторяющиеся группы атрибутов
должны быть перенесены в новую таблицу.
Таблица находится во второй нормальной форме (2NF) тогда, когда она
находится в первой нормальной форме и каждый неключевой атрибут
полностью функционально зависит от первичного ключа (т.е. в 2NF каждый
неключевой атрибут должен полностью зависеть от полей первичного
ключа).
Таблица находится в третьей нормальной форме (3NF), если она
находится в 2NF и не содержит транзитивных зависимостей. Транзитивные
зависимости – это функциональные зависимости между неключевыми
атрибутами. Любой неключевой атрибут, который функционально зависит от
другого неключевого атрибута той же таблицы, создает транзитивную
зависимость и должен быть перемещен в другую таблицу.
Получающиеся функциональные зависимости довольно тривиальны и
очевидно вытекают из математической модели, поэтому в дальнейшем
описании они не приводятся. Также в дальнейшем изложении опускаются
промежуточные степени нормализации. Поэтому приведем лишь
окончательную инфологическую модель базы данных (см. рис. 1.).