На практике проектирование реляционной базы данных завершается после нахождения третьей или усиленной третьей нормальной формы исходной схемы отношения. Однако даже усиленная третья нормальная форма не всегда избавляет от избыточности данных. Связано это с существованием так называемых многозначных зависимостей. Простейшая ситуация появления многозначных зависимостей возникает при приведении исходного отношения к первой нормальной форме.
Рассмотрим следующий пример.
ФИО_преподавателя
Группа
Вид нагрузки
Иванов И.И.
Лекции
Иванов И.И.
Практика
Иванов И.И.
Лабораторные
Иванов И.И.
Лекции
Иванов И.И.
Практика
Иванов И.И.
Лабораторные
Сидоров С.С.
Практика
Сидоров С.С.
Лабораторные
Сидоров С.С.
Практика
Сидоров С.С.
Лабораторные
Предположим, что преподаватели некоторой кафедры должны вести занятия в каждой группе студентов, специализирующихся по данной кафедре. Кроме этого существует требование обязательного включения в общую нагрузку преподавателя определенных видов нагрузки (лекции, практические, лабораторные занятия). Поскольку между номерами групп и видами нагрузки нет никакой прямой связи, то в отношении, содержащем атрибуты ФИО_преподавателя, Группа, Вид_нагрузки, каждый кортеж должен содержать комбинации групп и видов нагрузки. Данное отношение находится в усиленной третьей нормальной форме, так как имеется только один ключ, включающий все три атрибута. Тем не менее, имеется явная избыточность данных из-за повторения для каждого преподавателя комбинации группы и вида нагрузки. Связано это с тем, что в отношении между атрибутами существуют две независимые связи типа один ко многим: ФИО_преподавателя : Группа, ФИО_преподавателя : Вид_нагрузки. При этом верно следующее ограничение: если кортежи (A, B, C) и (A, D, E) присутствуют одновременно, то кортежи (A, B, E) и (A, D, C) также присутствуют в отношении.
Ситуацию можно улучшить, если выполнить декомпозицию на две подсхемы (ФИО преподавателя, Группа) и (ФИО преподавателя, Вид нагрузки)
ФИО преподавателя
Группа
ФИО преподавателя
Вид нагрузки
Иванов И.И.
Иванов И.И.
Лекции
Иванов И.И.
Иванов И.И.
Практика
Сидоров С.С.
Иванов И.И.
Лабораторные
Сидоров С.С.
Сидоров С.С.
Практика
Сидоров С.С.
Лабораторные
Введем понятие многозначной зависимости.
Пусть R схема отношений с атрибутами U={A1, …, An} и подмножествами X, Y, ZÌU. Подмножество Y многозначно зависит от X, обозначаем X¾>>Y/Z, тогда и только тогда, когда в каждом отношении со схемой R множество значений Y, соответствующее заданной паре значений (X, Z), зависит от X, но не зависит от Z.
Нетрудно показать, что для данной схемы R(A, B, C) многозначная зависимость A¾>>B/C выполняется тогда и только тогда, когда выполняется многозначная зависимость A¾>>C/B. То есть многозначные зависимости всегда образуют связные пары.
Многозначные зависимости являются обобщениями функциональных зависимостей в том смысле, что всякая функциональная зависимость является многозначной. Точнее говоря, функциональная зависимость A¾>B – это многозначная зависимость A¾>>B/(U\(AÈB)), в которой множество зависимых значений B, соответствующее значению A, является одноэлементным множеством.
Теорема Фейгина. Пусть R схема отношений с множеством атрибутов U=AÈBÈC. Декомпозиция r=(R1, R2), где R1=(A, B), R2=(A, C) обладает свойством соединения без потерь тогда и только тогда, когда выполняется многозначная зависимость A¾>>B/C.
Теорема Фейгана является более строгой версией теоремы Хита.
Дадим теперь определение четвертой нормальной формы (4НФ).
Четвертая нормальная форма схемы отношения это либо данная схема, если она находится в УТНФ и все ее многозначные зависимости представляют собой функциональные зависимости от ключей, либо декомпозиция исходной схемы, каждая подсхема которой удовлетворяет этим же требованиям, а сама декомпозиция обладает свойством соединения без потерь.
Четвертая нормальная форма существует для любой схемы отношения.