Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные системы базы данных.DOC
Скачиваний:
101
Добавлен:
02.05.2014
Размер:
839.68 Кб
Скачать

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

Отношение в 2НФ в случае наличия в нем транзитивных зависимостей может приводить к различным аномалиям.

Рассмотрим отношение R с тремя типами атрибутов или тремя наборами типов атрибутов, для которых имеет место транзитивная зависимость. Обозначим эти наборы соответственно через С1, С2 и С3.

Тогда свойство транзитивной зависимости можно представить соотношениями

С1 C2, С2 С3 и С1 С3.

При этом отметим, что обратное соответствие неоднозначно, т.е. С1 не зависит от С2 или С2 не зависит от С3.

Диаграмму транзитивной зависимости для рассматриваемого случая отражает Рис. 0 .36,а.

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

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

С1 C1 C2

С2C2 C3

С3

a) б)

Рис. 0.36

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

Пример.

В отношении

Служащий(№Служащего, ФИО, ЗПлата, №Проекта, ДатаОкончания),

а1 а2 а3 а4 а5

в котором каждый служащий занят лишь в одном проекте, атрибут а5 зависит от атрибута а4, который, в свою очередь, зависит от первичного атрибута а1. Следовательно, атрибут а5 транзитивно зависит от первичного атрибута а1, являющегося ключом. Эта транзитивная зависимость приводит к следующим аномалиям:

  • до момента привлечения хотя бы одного конкретного служащего к выполнению данного проекта нет возможности записывать значения полей №Проекта и ДатаОкончания, хотя эти реквизиты не зависят от конкретного служащего;

  • в случае снятия всех служащих с выполнения данного проекта (например, при его передаче в другую бригаду) в БД уничтожается информация в полях №Проекта и ДатаОкончания;

  • при изменении значения поля ДатаОкончания проекта необходим поиск всех записей, содержащих эту дату, и их корректировка.

С целью перевода отношения в 3НФ для ликвидации транзитивной зависимости в исходном отношении требуется декомпозиция этого отношения на два новых отношения:

Служащий (№Служащего, ФИО , ЗПлата, №Проекта)

и

Проект (№Проекта, ДатаОкончания).

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

Из изложенного можно сделать вывод, что отношение в ЗНФ является для АБД средством четкого осмысления предметной области. БД в ЗНФ имеет возможности естественного развития и модификации. Структуризация данных в соответствии с ЗНФ дает простое представление о данных для программистов и пользователей, уменьшает вероятность некорректности выполнения операций.

а1

*

а4

*

а2

*

а5

а3

а4

а) б)

Рис. 0.37