Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
399
Добавлен:
10.05.2014
Размер:
3.08 Mб
Скачать

Первая нормальная форма

Отношение находится в первой нормальной форме (1НФ), если все его атрибуты являются атомарными (простыми, неделимыми).

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

Например, было составлено следующее отношение:

Сотрудник (Фамилия, Должность, Домашний адрес)

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

Сотрудник1 (Фамилия, Должность, Город, Улица, Дом, Квартира)

Теперь в соответствии с семантикой выполняется условие первой нормальной формы. Следовательно, новое отношение находится в 1НФ.

Вторая нормальная форма

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

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

Например, имеем следующее отношение:

Работа (Номер сотрудника, Зарплата,Номер проекта, Дата начала проекта)

Первичный ключ этого отношения составной:

Работа.(Номер сотрудника + Номер проекта)

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

Работа.Номер сотрудника Работа.Зарплата

Работа.(Номер сотрудника + Номер проекта) Работа.Дата начала проекта

Неключевой атрибут ДАТА НАЧАЛА ПРОЕКТА функционально полно зависит от первичного ключа. Неключевой атрибутЗАРПЛАТАне зависит функционально полно от первичного ключа, а зависит только от части этого первичного ключа (от атрибута НОМЕР СОТРУДНИКА). Следовательно, условие второй нормальной формы для этого отношения не выполняется. Для того чтобы убрать эту аномалию, используя теорему Хеза, составим две проекции этого отношения:

Сотрудник (Номер сотрудника, Зарплата)

Проект (Номер сотрудника, Номер проекта, Дата начала проекта)

В этом случае имеем функциональные зависимости:

Сотрудник.Номер сотрудника Сотрудник.Зарплата

Проект.(Номер сотрудника + Номер проекта) Проект.Дата начала проекта

В новых отношениях аномалии второй нормальной формы отсутствуют, и каждое из них удовлетворяет условиям 2НФ.

Третья нормальная форма

Отношение находится в третьей нормальной форме (3НФ) в том и только в том случае, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Имеется еще одно альтернативное определение третьей нормальной формы.

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

Например, имеем следующее отношение:

Сотрудник (Номер сотрудника, Должность, Номер отдела, Зарплата)

Пусть предметная область такова, что все атрибуты, входящие в отношение (НОМЕР СОТРУДНИКА, ДОЛЖНОСТЬ, НОМЕР ОТДЕЛА, ЗАРПЛАТА) являются атомарными. Следовательно, данное отношение находится в 1НФ. Пусть все неключевые атрибуты, входящие в отношение, имеют конкретные значения для каждого сотрудника, имеющего конкретный табельный номер, т.е. все неключевые атрибуты функционально полно зависят от первичного ключа. (Или, так как первичный ключ состоит только из одного атрибута, все неключевые атрибуты функционально полно зависят от первичного ключа.) Следовательно, это отношение находится во 2НФ. Пусть размер зарплаты каждого сотрудника (в этой организации) зависит от того, в каком отделе сотрудник работает. Исходя из семантики, имеем функциональные зависимости между информационными единицами:

Сотрудник.Номер сотрудника Сотрудник.Должность

Сотрудник.Номер сотрудника Сотрудник.Номер отдела

Сотрудник.Номер сотрудника Сотрудник.Зарплата

Сотрудник.Номер отдела Сотрудник.Зарплата

Среди неключевых атрибутов имеется транзитивная зависимость:

Сотрудник.Номер сотрудника Сотрудник.Зарплата

Действительно, среди функциональных зависимостей есть зависимости Сотрудник.Номер сотрудникаСотрудник.Номер отдела и Сотрудник.Номер отделаСотрудник.Зарплата. Из-за этой транзитивной зависимости для отношения не выполняется условие третьей нормальной формы. Чтобы убрать эту аномалию, составим две проекции исходного отношения (в соответствии с теоремой Хеза):

Сотрудник1 (Номер сотрудника, Должность, Номер отдела)

Отдел (Номер отдела, Зарплата)

В новых отношениях имеются следующие функциональные зависимости:

Сотрудник1.Номер сотрудника Сотрудник1.Должность

Сотрудник1.Номер сотрудника Сотрудник1.Номер отдела

Отдел.Номер отдела Отдел.Зарплата

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

Соседние файлы в папке docs