Читайте также:
|
|
Вторая нормальная форма (2НФ) основана на понятии полной функциональной зависимости, которая описывается ниже.
Полная функциональная зависимость -в некотором отношении атрибут В называется полностью функционально зависимым от атрибута А, если атрибут В функционально зависит от полного значения атрибута А и не зависит ни от какого подмножества полного значения атрибута А.
Функциональная зависимость А—> В является полной функциональной зависимостью, если удаление какого-либо атрибута из А приводит к утрате этой зависимости.
Частичной функциональной зависимостью называется такая зависимость
А—>В, если в А есть некий атрибут, при удалении которого эта зависимость сохраняется.
Вторая нормальная форма применяется к отношениям с составными ключами, т.е. к таким отношениям, первичный ключ которых состоит из двух или больше атрибутов. Дело в том, что отношение с первичным ключом на основе единственного атрибута всегда находится, по крайней мере, в 2НФ. Отношение, которое не находится в 2НФ, может страдать от аномалий обновления.
Вторая нормальная форма (2НФ) – этоотношение, которое находится в первой нормальной форме и каждый атрибут которого, не входящий в состав первичного ключа, характеризуется полной функциональной зависимостью от этого первичного ключа.
В качестве первого примера вернемся к БД КОНСУЛЬТАНТ.
Рис. 19. База данных КОНСУЛЬТАНТ (универсальное отношение)
Это универсальное отношение. Видна избыточность этой таблицы (отношения). Например, в каждом кортеже, где есть Сном = 3215, указывается фамилия ДжонсГ, номер комнаты 120DH, телефон 2136. Аналогично для других номеров студентов.
Проанализируем функциональные зависимости для этой БД (рис. 20).
Рис. 20. Функциональные зависимости для универсального отношения БД «КОНСУЛЬТАНТ»
Первичный ключ < Сном, Курс, Семестр>, поскольку именно этот ключ определяет значение атрибута Оценка (есть функциональная зав-сть), а его часть (Сном) функционально определяет остальные атрибуты. Здесь отношение КОНСУЛЬТАНТ находится в 1НФ, поскольку есть частичная зависимость атрибутов, не входящих в первичный ключ, от первичного ключа:
В качестве второго примера рассмотрим две таблицы из БД «Учебный процесс», которую мы изучаем на лабораторных занятиях (рис. 21).
Рис. 21. Таблицы из БД «Учебный процесс»
То, что УСПЕВАЕМОСТЬ только в 1НФ приведет к аномалиям обновления. Например, переведем студента в другую группу, сделав изменения атрибута НГ в отношении СТУДЕНТ. Однако в отношении УСПЕВАЕМОСТЬ атрибут НГ для этого студента не изменится. Возникнет противоречивое состояние БД. Будет нарушена целостность данных. Нужны специальные меры для предотвращения этого случая. Например, либо придется наложить определенные условия, либо провести нормализацию. В нашей лабораторной БД наложены следующие условия:
· БД хранит данные одного семестра.
· В течение семестра студент не меняет группу.
Можно провести нормализацию отношения УСПЕВАЕМОСТЬ до 2НФ.
Нормализация 1НФ-отношений с образованием 2НФ-отношений включает устранение частичных зависимостей. Если в отношении между атрибутами существует частичная зависимость, то функционально-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.
Для преобразования отношения УСПЕВАЕМОСТЬ в 2НФ необходимо создать новые отношения, причем так, чтобы атрибуты, не входящие в первичный ключ, были перемещены в новое отношение вместе с копией части первичного ключа, от которой они зависят (эта часть первичного ключа и есть детерминант):
УСПЕВАЕМОСТЬ (Зачетка, КП, ТабНом, ВидЗан, Оценка)
СТУД1 (Зачетка, НГ)
Здесь первичные ключи подчеркнуты. Оба отношения удовлетворяют 2НФ и, возможно, более высоким НФ, что требует проверки. Но в нашей лабораторной работе уже существует отношение СТУДЕНТ. Поэтому при проектировании БД из отношения УСПЕВАЕМОСТЬ нужно было бы исключить атрибут НГ. Это не было сделано из методических соображений, чтобы студенты видели отношения в разных НФ и могли бы самостоятельно выполнить нормализацию.
Дата добавления: 2015-07-08; просмотров: 215 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Первая нормальная форма (1 НФ) (из Коннолли) | | | ПРИМЕР НОРМАЛИЗАЦИИ |