Многозначная зависимость и четвертая нормальная форма
В свое время было обращено внимание на то, что функциональных зависимостей недостаточно для представления в реляционной модели той семантики предметных областей, которая относится к характеристике связей объект-свойство. В связи с этим было введено понятие многозначной зависимости.
Рассмотрим смысл этой зависимости на примере отношения ЛЕКЦИЯ с атрибутами Предмет, Преподаватель, Учебник. Оно находится в 3NF, так как между атрибутами нет функциональных зависимостей и ключом является все три атрибута. Смысл этого отношения следующий: " Данный предмет преподают такие-то преподаватели и для чтения лекций по этому предмету рекомендованы для использования указанные учебники ". |
Мы не случайно представили эти атрибуты в виде иерархической структуры, так как именно она наиболее адекватно отражает смысл связей между указанными атрибутами. У нас нет конкретной информации о связи преподавателей с учебниками, мы не знаем по какому учебнику тот или иной преподаватель излагает конкретную дисциплину. Тем не менее, при представлении этого отношения мы должны в каждом его кортеже указать значения всех трех атрибутов (по крайней мере потому, что эти атрибуты составляют ключ, а значения ключевых атрибутов всегда должны быть определены). Единственным выходом из данной ситуации является следующий: если с предметом, например БД, связаны преподаватели Иванов и Петров и учебники Основы БД, Введение в БД и Теория БД, то в отношении каждый из этих преподавателей должен быть связан (ассоциирован) с каждым учебником, как это показано на примере ниже. Другого выхода нет.
|
|
ЛЕКЦИЯ | Предмет | Преподаватель | Учебник |
БД | Иванов | Основы БД | |
БД | Иванов | Введение в БД | |
БД | Иванов | Теория БД | |
БД | Петров | Основы БД | |
БД | Петров | Введение в БД | |
БД | Петров | Теория БД |
Другими словами, мы должны констатировать следующую семантику связи между преподавателями и учебниками: "Данный предмет преподают такие-то преподаватели и для чтения лекций по этому предмету все они используют ВСЕ указанные учебники".
Мы здесь приходим к следующему тезису:
Тезис: Если в предметной области отсутствует какая-либо непосредственная связь между атрибутами А и В, а нам по тем или иным причинам необходимо зафиксировать такую связь в отношении, то единственным корректным решением является установление, что все значения атрибута А связаны со всеми значениями атрибута В, и наоборот.
Отметим, что независимость преподавателей от учебников и наоборот, а также трактовка такой независимости согласно приведенному выше тезису свидетельствует, что в нашем отношении Лекции атрибуты Преподаватель и Учебники обладают следующим важным свойством:
|
|
Множество учебников, которые связаны с конкретным предметом, совпадает со множеством учебников, которые связаны с парой значений <предмет, преподаватель> (с предметом "БД" связаны три учебника, эти же три учебника связаны с парами значений <"БД","Иванов"> и <"БД","Петров">). И наоборот, множество преподавателей, которые связаны с конкретным предметом, совпадает с множеством преподавателей, которые связаны с парой значений <предмет, учебник>.
Данное свойство является принципиальным в понимании многозначной зависимости.
Очевидно, что такое отношение избыточно и приводит к трудностям в выполнении операций манипулирования. Лектор входит в атрибут Преподаватель столько раз, сколько имеется учебников и об этом следует помнить всякий раз, производя операции вставки удаления и замены преподавателей. То же самое имеет место и для учебников.
В связи с этим было введено понятие многозначной зависимости.
Определение. Пусть задано отношение R с атрибутами (или наборами атрибутов) А, В, С. Говорят, что существует многозначная зависимость (multivalued dependecy) В от А (или А многозначно определяет В), и это обозначается как А ®® В, если при заданных значениях атрибутов из А существует множество связанных значений атрибутов из В и это множество В-значений не зависит каким-либо образом от значений атрибутов из С.
Например, в отношении ЛЕКЦИЯ атрибут Преподаватель многозначно зависит от атрибута Предмет (Предмет ®® Преподаватель) и атрибут Учебник многозначно зависит от Предмет (Предмет ®® Учебник).
Дадим формальное определение многозначной зависимости. Пусть отношение R определено на множестве атрибутов M и А, В – подмножества М, причем А и В могут пересекаться. Определим через ВR(а) множество проекций кортежей отношения R по атрибутам В, которые связаны с конкретным кортежем, спроецированным по атрибутам А, то есть:
ВR(а) = {b | $r Î R, r[A] = a & r[B] = b}
Пусть С = М – (А В). Тогда будем говорить, что ВR(а) в R имеет место многозначная зависимость А ®® В, если
"ас Î R[A,C] ВR(аc) = ВR(а)
Другими словами, совокупность значений атрибутов В, которая появляется в кортежах отношения R с хаданным значением а атрибутов А, появляется также с каждой комбинацией значений а и с Î С, ас Î R[A,C]. Таким образом, множество значений В для заданного а не зависит от значений С, появляющихся вместе с а.
По определению А ®® Æ для любой совокупности атрибутов А из R. Более того вседа имеет место А ®® В, если R определено только на множестве атрибутов А В. Эти два вида многозначных зависимостей называются тривиальными так как они присутствуют во любых отношениях.
Очевидно, что любая функциональная зависимость является многозначной, но не наоборот. Тем не менее, функциональные и многозначные зависимости существенно различаются. Функциональная зависимость А ® В определяется только через А и В, существование же многозначной зависимости А ®® В является свойством всей совокупности атрибутов R.