ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.04.2021
Просмотров: 410
Скачиваний: 1
Это отношение находится также и в нормальной форме Бойса – Кодда. Действительно, детерминанты этого отношения атрибуты КОД_СТУДЕНТА и ПАСПОРТ одновременно являются и его потенциальными ключами.
Приведенный пример иллюстрирует тот факт, что само по себе наличие в отношении нескольких потенциальных ключей не приводит к неэквивалентности третьей нормальной формы и нормальной формы Бойса – Кодда.
И, наконец, обратим внимание на следующий пример.
Пример 5.
|
|
|
|
Рис.10.17. Отношение с двумя перекрывающимися потенциальными ключами
Пусть в этом отношении имеют место следующие функциональные зависимости, представленные на рис. 10.18.
Рис.10.18. Диаграмма функциональных зависимостей отношения
Как видно из этих зависимостей, отношение имеет два потенциальных ключа. Ими являются составные атрибуты {КОД_СТУДЕНТА, ДИСЦИПЛИНА} и {ПАСПОРТ, ДИСЦИПЛИНА}. Обращаем внимание на то, что ключи эти являются перекрывающимися, так как атрибут Дисциплина входит в состав обоих ключей.
Представленное отношение находится в третьей нормальной форме, так как его единственный неключевой атрибут Оценка зависит от обоих ключей неприводимо, и в отношении отсутствуют транзитивные функциональные зависимости.
Однако, это отношение не находится в НФБК. Действительно, в нем имеются детерминанты КОД_СТУДЕНТА и ПАСПОРТ, которые сами не являются потенциальными ключами, хотя и входят в их состав.
Обратившись к примеру таблицы на рис.10.17, представляющей это отношение, можно увидеть наличие в нем избыточной информации: многократно повторяющиеся одинаковые пары значений атрибутов КОД_СТУДЕНТА и ПАСПОРТ. Нетрудно понять, что эта избыточность приводит к возникновению типичных аномалий операций обновления данных:
-
невозможно ввести информацию о коде студента и его паспорте, если этот студент не сдавал ни одной дисциплины,
-
при удалении данных о сдаче экзамена по иностранному языку студентом с кодом С8 теряется информация о паспорте этого студента,
-
при необходимости изменения номера паспорта студента, например при его замене, эту операцию надо произвести во всех кортежах, относящихся к этому студенту.
Выходом из ситуации является декомпозиция рассматриваемого отношения на два отношения.
|
|
Рис.10.19. Вариант декомпозиции отношения, представленного на рис.10.17
Рис.10.20. Диаграммы функциональных зависимостей отношений на рис.10.19
Возможен и другой вариант декомпозиции, представленный на рис.10.21.
Рис.10.21. Другой вариант декомпозиции отношения на рис.10.17
Можно убедиться, что каждое из отношений, представленных на рис.10.19 – 10.21, уже находится в нормальной форме Бойса – Кодда, и в них отсутствуют аномалии операций обновления данных.
Пример 6.
Пусть дано отношение со следующим набором атрибутов
{КОД_СТУДЕНТА, Дисциплина, ОЦЕНКА, НОМЕР_БИЛЕТА}.
Кортежи этого отношения представляют информацию о том, что конкретный студент при сдаче конкретной дисциплины отвечает на вопросы определенного экзаменационного билета. При этом имеется ограничение, состоящее в том, что никакие два студента не могут отвечать на один и тот же билет по одной дисциплине. Это ограничение эквивалентно следующим функциональным зависимостям
{КОД_СТУДЕНТА, ДИСЦИПЛИНА} → {НОМЕР_БИЛЕТА},
{ДИСЦИПЛИНА, НОМЕР_БИЛЕТА} → {КОД_СТУДЕНТА},
{КОД_СТУДЕНТА, ДИСЦИПЛИНА} → {ОЦЕНКА},
{ДИСЦИПЛИНА, НОМЕР_БИЛЕТА} → {ОЦЕНКА}.
Видно, что отношение имеет два перекрывающихся составных потенциальных ключа. Этими ключами являются составные атрибуты {КОД_СТУДЕНТА, ДИСЦИПЛИНА} и {ДИСЦИПЛИНА, НОМЕР_БИЛЕТА}. При этом нетрудно убедиться, что представленное отношение находится в нормальной форме Бойса – Кодда, так как все его детерминанты являются потенциальными ключами.
Данный пример иллюстрирует тот факт, что само по себе наличие перекрывающихся составных потенциальных ключей не является признаком того, что отношение не находится в нормальной форме Бойса – Кодда.
NEXT THEME
10.7 Многозначные зависимости и четвертая нормальная форма
Рассмотренные в предыдущих разделах преобразования отношений в нормальную форму Бойса – Кодда обеспечивают полное устранение нежелательных проблем, аномалий операций обновления данных INSERT, DELETE и UPDATE, которые обусловлены наличием между атрибутами функциональных зависимостей. Для отношений, в которых имеют место только функциональные зависимости между атрибутами, приведение их к нормальной форме Бойса – Кодда заканчивает процесс их нормализации, так как в этом случае отношение уже оказывается в четвертой и пятой нормальных формах. Проблема, однако, состоит в том, что зависимости между атрибутами не исчерпываются только функциональными зависимостями. В отношениях кроме функциональных могут присутствовать и другие, более сложные, виды зависимостей между атрибутами. Так, введение рассматриваемой в данном разделе четвертой нормальной формы связано с необходимостью решения проблем, обусловленных наличием в отношении так называемой многозначной зависимости.
Рассмотрим в качестве примера отношение, представленное на рис.10.22.
|
|
|
|
Рис.10.22.
Пример отношения
с многозначными зависимостями
Хорошо видно, что отношение СТУД_КУРС_ДИСЦ, приведенное на рис.10.22, страдает избыточностью и связанными с этим аномалиями операций обновления. В этом отношении между атрибутами {СТУДЕНТ, КУРС, ДИСЦИПЛИНА} существуют только тривиальные функциональные зависимости типа {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}→{ДИСЦИПЛИНА} или {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}→{СТУДЕНТ, КУРС} и т. д. Первичным ключом этого отношения является набор атрибутов {СТУДЕНТ, КУРС, ДИСЦИПЛИНА}, то есть весь кортеж этого отношения. Учитывая материалы предыдущих разделов, нетрудно увидеть, что это отношение уже находится в нормальной форме Бойса – Кодда, так как единственный детерминант отношения {СТУДЕНТ, КУРС, ДИСЦИПЛИНА} одновременно является его ключом. Следовательно, в этом отношении по определению должны отсутствовать проблемы, связанные с функциональной зависимостью. Однако также хорошо видно, что это отношение, тем не менее, явно страдает наличием аномалий операций обновления данных. Действительно, для добавления, например, информации о новой дисциплине на конкретном курсе мы должны добавить кортежи с этой дисциплиной для каждого студента, обучающегося на данном курсе.
Проблемы отношения, представленного на рис.10.22, связаны уже не функциональной зависимостью, а с наличием в нем так называемой многозначной зависимости, связывающей атрибут курс с атрибутами студент и дисциплина. Эта зависимость состоит в том, что конкретное значение атрибута курс однозначно определяет не одно, а множество соответствующих ему значений атрибутов студент и дисциплина, а именно множество студентов, обучающихся на данном курсе. При этом значения атрибутов студент и дисциплина друг от друга совершенно не зависят.
Рисунок 10.23 поясняет характер зависимостей между атрибутами в данном примере, когда значения атрибута курс однозначно определяют не единичные значения атрибутов студент и дисциплина, а конкретные множества значений, а именно множество студентов, обучающихся на конкретном курсе, и множество дисциплин, изучаемых каждым студентом конкретного курса.
Рис.10.23. Иллюстрация многозначных зависимостей
Многозначную зависимость обозначают двойной стрелкой следующим образом:
КУРС →→ СТУДЕНТ и КУРС →→ ДИСЦИПЛИНА.
Запись А →→ В означает, что атрибут В многозначно зависит от атрибута А, или атрибут А многозначно определяет значения атрибута В.
Помещение в одну таблицу информации об элементах двух подмножеств значений атрибутов студент и дисциплина для каждого значения атрибута курс приводит к размножению кортежей отношения из-за необходимости указания всех сочетаний элементов подмножеств значений атрибутов студент и дисциплина, относящихся к конкретному значению атрибута курс.
Определение многозначной зависимости выглядит следующим образом.
Пусть А, В и С являются произвольными подмножествами множества атрибутов отношения R. Тогда В многозначно зависит от А, т. е. А →→ В, тогда и только тогда, когда множество значений В, соответствующее заданной паре {значение А, значение С} отношения R, зависит от А, но не зависит от С.
Независимость множества значений В от значений С означает, что конкретное значение А и определяемое им множество значений В может иметь место при любых значениях атрибута С.
Можно показать, что для данного отношения R{А, В, С} многозначная зависимость А →→ B выполняется тогда и только тогда, когда выполняется также зависимость А →→ С. Другими словами, многозначные зависимости в отношении всегда образуют связанные пары, и поэтому их обычно в символичном виде представляют вместе А →→ B и А →→ С, или короче – А →→ В|С.
Для рассматриваемого примера такая запись имеет следующий вид:
Курс →→ Студент|Дисциплина.
Если снова обратиться к рассмотренной ранее функциональной зависимости, то нетрудно увидеть, что на самом деле функциональная зависимость является частным случаем многозначной зависимости, а именно случаем, когда множество зависимых значений, соответствующих конкретным значениям детерминанта, всегда является одноэлементным множеством.
Таким образом, можно сказать, что проблемы рассматриваемого отношения (рис.10.22) связаны с тем, что оно содержит многозначные зависимости, не являющиеся функциональными.
Проблемы этого отношения решаются его декомпозицией на две проекции.
|
|
Рис.10.24.
Проекции
отношения
СТУД_КУРС_ДИСЦ на рис.10.22
Возможность осуществления такой декомпозиции обосновывается теоремой Фейгина.
Пусть А, В и С являются множествами атрибутов отношения R{А, В, С}. Отношение R будет равно соединению его проекций {А, В} и {А, С} тогда и только тогда, когда для отношения R выполняется многозначная зависимость А→→ В.
Можно обратить внимание на то, что теорема Фейгина является обобщением рассмотренной в разделе 10.3 теоремы Хеза, которая, напомним, звучит так.
Пусть R{А, В, С} является отношением, где А, В и С – атрибуты этого отношения. Если R удовлетворяет зависимости А В, то R равно соединению его проекций {А, В} и {А, С}.
Как видно, теорема Хеза естественным образом вытекает из теоремы Фейгина.
Теперь можно дать определение четвертой нормальной формы отношения.
Отношение R находится в четвертой нормальной форме (4НФ) тогда и только тогда, когда существуют подмножества А и В атрибутов отношения R такие, что выполняется нетривиальная многозначная зависимость А →→ В и все атрибуты R также функционально зависят от А.
Приведенное строгое определение четвертой нормальной формы требует пояснения. Последнее условие, состоящее в том, что все атрибуты отношения R также функционально зависят от А, означает, что A является потенциальным ключом отношения. В этом случае многозначная зависимость А→→ В фактически является вырожденной, то есть представлена в этом отношении в виде функциональной зависимости. Другими словами, нетривиальные многозначные зависимости присутствуют в отношении R только в форме K → Х, то есть атрибут Х функционально зависит от первичного ключа K.
Еще проще это определение можно сформулировать следующим образом.
Отношение R находится в четвертой нормальной форме, если оно находится в нормальной форме Бойса – Кодда, и все многозначные зависимости отношения R являются функциональными зависимостями от потенциальных ключей.
Приведенное определение четвертой нормальной формы не следует истолковывать таким образом, что при декомпозиции отношения с многозначными зависимостями именно эти зависимости становятся функциональными. Выше уже говорилось, что многозначные зависимости могут существовать только парами и при декомпозиции отношения эти пары разрываются и сами многозначные зависимости исчезают.
И, наконец, на случай наличия в отношении многозначных зависимостей может быть обобщено приведенное ранее в разделе 10.5 определение Риссанена, касающееся декомпозиции отношения на независимые проекции. Оно имело следующий смысл.
Отношение R{А, В, С}, удовлетворяющее функциональным зависимостям А→В, следует разбивать на проекции {А, В} и {А, С}.
То же самое можно утверждать и для многозначных зависимостей А →→ В, то есть
отношение R{А, В, С}, удовлетворяющее многозначным зависимостям
А →→ В|С, следует разбивать на проекции {А, В} и {А, С}.
NEXT THEME
10.8 Зависимости соединения и пятая нормальная форма
В предыдущих разделах, посвященных вопросам нормализации отношений, рассматриваются случаи, когда единственно необходимой и допустимой операцией для устранения имеющих место в отношениях проблем является декомпозиция без потерь отношения на две его проекции. Такая декомпозиция решала проблемы, связанные с наличием в отношении многозначной зависимости и ее частного случая – функциональной зависимости, и на такой декомпозиции основывается последовательная нормализация отношений от первой нормальной формы до четвертой.