Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

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

Отношение1NF(ключевые атрибуты, неключевые атрибуты) primary key(ключ)

candidate key(ключ)

foreign key(атрибуты) references {не ключ} ! {неключевые атрибуты} {не ключ} ! {ключевые атрибуты}

4.2.2. Вторая нормальная форма (2NF)

Так как «не ключ» может быть или не быть частью некоторого ключа, то класс функциональных зависимостей {не ключ} ! {неключевые атрибуты} разбивается на два подкласса:

{не ключ но подключ} ! {неключевые атрибуты} {не ключ и не подключ} ! {неключевые атрибуты}

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

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

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

Конец определения.

Примечание. Ясно, что отношение может не находиться во второй нормальной форме, если только оно имеет составные ключи

Следующее отношение Аудитории не находится во второй нормальной форме:

Вариант 1 схемы БД

Сотрудники(№ таб, Ф, И, О) primary key(№ таб)

Аудитории(№ К, № А, ПлощадьКвМ, № таб-К) primary key(№ К, № А)

foreign key(№ таб-К) references Сотрудники(№ таб) {№ К} ! {№ таб-К}

Здесь неключевой атрибут № таб-К (табельный номер коменданта корпуса) функционально зависит от части ключа.

Примечание. Это произошло из-за смешения понятий Корпуса и Аудитории

После приведения ко второй нормальной форме путем декомпозиции отношения Аудитории получим

Вариант 2 схемы БД

Сотрудники(№ таб, Ф, И, О) primary key(№ таб)

Корпуса(№ К, № таб-К) primary key(№ К)

foreign key(№ таб-К) references Сотрудники (№ таб)

Аудитории(№ К, № А, ПлощадьКвМ) primary key(№ К, № А)

foreign key(№ К) references Корпуса(№ К)

Примечание. Обратим внимание на то, что в отношении Аудитории атрибут первичного ключа № К является одновременно внешним ключом, ссылающимся на первичный ключ отношения Корпуса

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

Понятие второй нормальной формы самостоятельного значения не имеет. Оно является ослабленной формой понятия третьей нормальной формы.

4.2.3. Третья нормальная форма (3NF)

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

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

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

Конец определения.

Следующее отношение Сотрудники не находится в третьей нормальной форме:

Вариант 1 схемы БД

Должности(КодД, Наименование) primary key(КодД)

candidate key(Наименование)

Сотрудники(№ таб, Ф, И, О, КодД, Разряд, Оклад) primary key(№ таб)

foreign key(КодД) references Должности(КодД) {КодД, Разряд} ! {Оклад}

Примечание. Здесь произошло смешение понятий Сотрудники и ДолжностейРазряды

После приведения к третьей нормальной форме путем декомпозиции отношения Сотрудники получим

Вариант 2 схемы БД

Должности(КодД, Наименование) primary key(КодД)

candidate key(Наименование)

ДолжностейРазряды(КодД, Разряд, Оклад) primary key(КодД, Разряд)

foreign key(КодД) references Должности(КодД)

Сотрудники(№ таб, Ф, И, О, КодД, Разряд) primary key(№ таб)

foreign key(КодД) references Должности(КодД) foreign key(КодД, Разряд)

references ДолжностейРазряды(КодД, Разряд)

Примечание. Обратим внимание на то, что в отношении Сотрудники атрибут КодД является одновременно атрибутом двух различных внешних ключей

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

Отношение3NF(ключевые атрибуты, неключевые атрибуты) primary key(ключ)

candidate key(ключ)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]