ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.04.2021

Просмотров: 410

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Приведенный пример иллюстрирует тот факт, что само по себе наличие в отношении нескольких потенциальных ключей не приводит к неэквивалентности третьей нормальной формы и нормальной формы Бойса – Кодда.

И, наконец, обратим внимание на следующий пример.

Пример 5.


ЭКЗАМЕН

КОД_СТУДЕНТА

ПАСПОРТ

ДИСЦИПЛИНА

ОЦЕНКА

С2
С2
С2
С2
С2
С6
С6
С6
С9
С1
С1
С8

12 34 123456
12 34 123456
12 34 123456
12 34 123456
12 34 123456
56 78 654321
56 78 654321
56 78 654321
34 43 987654
22 33 123123
22 33 123123
45 56 112233

Физика
Математика
История
Информатика
Иностр. язык
Физика
Математика
Информатика
Иностр. язык
История
Иностр. язык
Археология

5
4
4
5
5
3
4
3
4
5
4
5



Рис.10.17. Отношение с двумя перекрывающимися потенциальными ключами

Пусть в этом отношении имеют место следующие функциональные зависимости, представленные на рис. 10.18.

Рис.10.18. Диаграмма функциональных зависимостей отношения

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

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

Однако, это отношение не находится в НФБК. Действительно, в нем имеются детерминанты КОД_СТУДЕНТА и ПАСПОРТ, которые сами не являются потенциальными ключами, хотя и входят в их состав.

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

  • невозможно ввести информацию о коде студента и его паспорте, если этот студент не сдавал ни одной дисциплины,

  • при удалении данных о сдаче экзамена по иностранному языку студентом с кодом С8 теряется информация о паспорте этого студента,

  • при необходимости изменения номера паспорта студента, например при его замене, эту операцию надо произвести во всех кортежах, относящихся к этому студенту.

Выходом из ситуации является декомпозиция рассматриваемого отношения на два отношения.

СТУДЕНТ_ПАСПОРТ

КОД_СТУДЕНТА

ПАСПОРТ

С2
С6
С9
С1
С8

12 34 123456
56 78 654321
34 43 987654
22 33 123123
45 56 112233


УСПЕВАЕМОСТЬ

КОД_СТУДЕНТА

ДИСЦИПЛИНА

ОЦЕНКА

С2
С2
С2
С2
С2
С6
С6
С6
С9
С1
С1
С8

Физика
Математика
История
Информатика
Иностр. язык
Физика
Математика
Информатика
Иностр. язык
История
Иностр. язык
Археология

5
4
4
5
5
3
4
3
4
5
4
5



Рис.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.



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

СТУДЕНТ

КУРС

ДИСЦИПЛИНА

Иванов
Иванов
Иванов
Петров
Петров
Петров
Сидоров
Сидоров
Сидоров
Кузнецов
Кузнецов
Кузнецов
Попова
Попова
Попова

1
1
1
1
1
1
1
1
1
3
3
3
3
3
3

Математика
Физика
Иностр.язык
Математика
Физика
Иностр.язык
Математика
Физика
Иностр.язык
Информатика
История
Математика
Информатика
История
Математика




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

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

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

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

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

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

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

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


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

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

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

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

Можно показать, что для данного отношения 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 теоремы Хеза, которая, напомним, звучит так.

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

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


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

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

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

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

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

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

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

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

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

То же самое можно утверждать и для многозначных зависимостей А →→ В, то есть

отношение R{А, В, С}, удовлетворяющее многозначным зависимостям

А →→ В|С, следует разбивать на проекции {А, В} и {А, С}.

NEXT THEME

10.8 Зависимости соединения и пятая нормальная форма

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