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

133

Видно, что отношение имеет два перекрывающихся составных потенциальных ключа. Этими ключами являются составные атрибуты

{КОД_СТУДЕНТА, ДИСЦИПЛИНА} и {ДИСЦИПЛИНА, НОМЕР_БИЛЕТА}. При этом нетрудно убедиться, что представленное отношение находится в нормальной форме Бойса-Кодда, так как все его детерминанты являются потенциальными ключами.

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

10.7.Многозначные зависимости и четвертая нормальная форма

Рассмотренные в предыдущих разделах преобразования отношений в нормальную форму Бойса-Кодда обеспечивают полное устранение нежелательных проблем, аномалий операций обновления данных INSERT, DELETE и UPDATE, которые обусловлены наличием между атрибутами функциональных зависимостей. Для отношений, в которых имеют место только функциональные зависимости между атрибутами, приведение их к нормальной форме Бойса-Кодда заканчивает процесс их нормализации, так как в этом случае отношение уже оказывается в четвертой и пятой нормальных формах. Проблема, однако, состоит в том, что зависимости между атрибутами не исчерпываются только функциональными зависимостями. В отношениях кроме функциональных могут присутствовать и другие, более сложные виды зависимостей между атрибутами. Так введение рассматриваемой в данном разделе четвертой нормальной формы связано с необходимостью решения проблем, обусловленных наличием в отношении так называемой многозначной зависимости.

Рассмотрим в качестве примера отношение, представленное на рис.10.22.

134

СТУД_КУРС_ДИСЦ

СТУДЕНТ

КУРС

ДИСЦИПЛИНА

Иванов

1

Математика

Иванов

1

Физика

Иванов

1

Иностр.язык

Петров

1

Математика

Петров

1

Физика

Петров

1

Иностр.язык

Сидоров

1

Математика

Сидоров

1

Физика

Сидоров

1

Иностр.язык

Кузнецов

3

Информатика

Кузнецов

3

История

Кузнецов

3

Математика

Попова

3

Информатика

Попова

3

История

Попова

3

Математика

Рис.10.22. Пример отношения с многозначными зависимостями

Хорошо видно, что отношение СТУД_КУРС_ДИСЦ, приведенное на рис.10.22, страдает избыточностью и связанными с этим аномалиями операций обновления. В этом отношении между атрибутами {СТУДЕНТ, КУРС, ДИСЦИПЛИНА} существуют только тривиальные функциональные зависимости типа {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}→{ДИСЦИПЛИНА} или {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}→{СТУДЕНТ, КУРС} и т.д. Первичным ключом этого отношения является набор атрибутов {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}, то есть весь кортеж этого отношения. Учитывая материалы предыдущих разделов, нетрудно увидеть, что это отношение уже находится в нормальной форме Бойса-Кодда, так как единственный детерминант отношения {СТУДЕНТ, КУРС, ДИСЦИПЛИНА} одновременно является его ключом. Следовательно, в этом отношении по определению должны отсутствовать проблемы, связанные с функциональной зависимостью. Однако, также хорошо видно, что это отношение, тем не менее, явно страдает наличием аномалий операций обновления данных. Действительно, для добавления, например, информации о новой дисциплине на конкретном курсе мы должны добавить кортежи с этой дисциплиной для каждого студента, обучающегося на данном курсе.

Проблемы отношения, представленного на рис.11.22, связаны уже не функциональной зависимостью, а с наличием в нем так называемой многозначной зависимости, связывающей атрибут курс с атрибутами студент и дисциплина. Эта зависимость состоит в том, что конкретное значение атрибута курс однозначно определяет не одно, а множество соответствующих ему значений атрибутов студент и дисциплина. А именно, множество студентов, обучающихся на данном курсе. При этом значения атрибутов студент дисциплина друг от друга совершенно не зависят.

135

Рисунок 10.23 иллюстрирует поясняет характер зависимостей между атрибутами в данном примере, когда значения атрибута КУРС однозначно определяют не единичные значения атрибутов СТУДЕНТ и ДИСЦИПЛИНА, а конкретные множества значений, а именно, множество студентов, обучающихся на конкретном курсе, и множество дисциплин, изучаемых каждым студентом конкретного курса.

СТУДЕНТ

 

ДИСЦИПЛИНА

Иванов

КУРС

Физика

 

Петров

1

Ин.язык

Сидоров

2

Математика

 

 

3

Кузнецов

История

4

 

Попова

Информат

5

 

 

Математика

Рис.10.23. Иллюстрация многозначных зависимостей

Многозначную зависимость обозначают двойной стрелкой следующим образом:

КУРС СТУДЕНТ и КУРС ДИСЦИПЛИНА.

Запись АВ означает, что атрибут В многозначно зависит от атрибута А, или атрибут А многозначно определяет значения атрибута В.

Помещение в одну таблицу информации об элементах двух подмножеств значений атрибутов СТУДЕНТ и ДИСЦИПЛИНА, для каждого значения атрибута КУРС, приводит к размножению кортежей отношения из-за необходимости указания всех сочетаний элементов подмножеств значений атрибутов СТУДЕНТ и ДИСЦИПЛИНА, относящихся к конкретному значению атрибута КУРС.

Определение многозначной зависимости выглядит следующим образом.

Пусть А, В и С являются произвольными подмножествами множества атрибутов отношения R. Тогда В многозначно зависит от А, то есть АВ, тогда и только тогда, когда множество значений В, соответствующее заданной паре {значение А, значение С} отношения R, зависит от А, но не зависит от С.

136

Независимость множества значений В от значений С означает, что конкретное значение А и определяемое им множество значений В может иметь место при любых значениях атрибута С.

Можно показать, что для данного отношения R{А, В, С} многозначная зависимость АB выполняется тогда и только тогда, когда выполняется также зависимость АС. Другими словами, многозначные зависимости в отношении всегда образуют связанные пары, и поэтому их обычно в символичном виде представляют вместе АB и АС или короче – АВ С.

Для рассматриваемого примера такая запись имеет следующий вид:

КУРССТУДЕНТ ДИСЦИПЛИНА.

Если снова обратиться к рассмотренной ранее функциональной зависимости, то нетрудно увидеть, что на самом деле функциональная зависимость является частным случаем многозначной зависимости, а именно случаем, когда множество зависимых значений, соответствующих конкретным значениям детерминанта, всегда является одноэлементным множеством.

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

Проблемы этого отношения решаются его декомпозицией на две проекции

СТУД_КУРС

СТУДЕНТ

КУРС

Иванов

1

Петров

1

Сидоров

1

Кузнецов

3

Попова

3

КУРС_ДИСЦ

КУРС

ДИСЦИПЛИНА

1

Математика

1

Физика

1

Ин.язык

3

Информатика

3

История

3

Математика

Рис.10.24. Проекции отношения СТУД_КУРС_ДИСЦ на рис.10.22

Возможность осуществления такой декомпозиции обосновывается теоремой Фейгина.

Теорема Фейгина.

Пусть А, В и С являются множествами атрибутов отношения R{А, В, С}. Отношение R будет равно соединению его проекций {А, В} и {А, С} тогда и только тогда, когда для отношения R выполняется многозначная зависимость АВ.

Можно обратить внимание на то, что теорема Фейгина является обобщением рассмотренной в разделе 10.3 теоремы Хеза, которая, напомним, звучит так.

137

Теорема Хеза.

Пусть R{А, В, С} является отношением, где А, В и С атрибуты этого отношения. Если R удовлетворяет зависимости АВ, то R равно соединению его проекций {А, В} и {А, С}.

Как видно, теорема Хеза естественным образом вытекает из теоремы Фейгина.

Теперь можно дать определение четвертой нормальной формы отношения.

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

Приведенное строгое определение четвертой нормальной формы требует пояснения. Последнее условие, состоящее в том, что все атрибуты отношения R также функционально зависят от А, означает, что A является потенциальным ключом отношения. В этом случае многозначная зависимость АВ фактически является вырожденной, то есть представлена в этом отношении в виде функциональной зависимости. Другими словами, нетривиальные многозначные зависимости присутствуют в отношении R только в форме KХ, то есть атрибут Х функционально зависит от первичного ключа K.

Еще проще это определение можно сформулировать следующим образом.

Отношение R находится в четвертой нормальной форме, если оно находится в нормальной форме Бойса-Кодда, и все многозначные зависимости отношения R являются функциональными зависимостями от потенциальных ключей.

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

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