Понятие нормализации отношений. Нормальные формы

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

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

- множество отношений должно обеспечивать минимальную избыточность представления информации;

- корректировка отношений не должна приводить к двусмысленности или потере информации;

- перестройка набора отношений при добавлении в базу данных новых атрибутов должна быть минимальной.

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

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

Отношение в первой нормальной форме - это обычное отношение с двухуровневой структурой. Недопустимость в структуре отношения третьего и последующих уровней является ограничением, определяющим первую нормальную форму отношения.

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

Отношение имеет вторую нормальную форму, если оно соответствует первой нормальной форме и не содержит неполных функциональных зависимостей.

Отношение, не соответствующее второй нормальной форме, характеризуется избыточностью хранимых данных. Например, отношение Магазин, Изделие, План, Цена. Вероятным ключом являются атрибуты Магазин, Изделие. Но Цена определяется только Изделием. Избыточность здесь иллюстрируется тем фактом, что цена изделия указывается столько раз, сколько магазинов продают это изделие. Переход ко второй нормальной форме и соответственно устранение избыточности данных связано с созданием двух отношений вместо одного исходного: Магазин, Изделие, План и Изделие, Цена.

База данных находится во второй нормальной форме, если все ее отношения находятся во второй нормальной форме.

Отношение соответствуеттретьей нормальной форме, если оно соответствует второй нормальной форме, и среди его атрибутов отсутствуют транзитивные функциональные зависимости.

Транзитивная функциональная зависимость содержит две функциональные зависимости:

- вероятный ключ отношения функционально определяет неключевой атрибут;

- этот атрибут в свою очередь функционально определяет другой неключевой атрибут.

Например, отношение №зачетки, ФИО, №группы, Факультет. №группы зависит от №зачетки, а Факультет зависит от №группы. Возникает транзитивная зависимость.

Возникает избыточность данных, т.к. принадлежность данной группы к факультету указывается столько раз, сколько студентов обучается в данной группе. Ликвидировать данную избыточность также можно, разделив указанное отношение на два:№зачетки, ФИО, №группы и №группы, Факультет.

База данных находится в третьей нормальной форме, если все ее отношения находятся в третьей нормальной форме.

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