Введение в системы БД (542480), страница 110
Текст из файла (страница 110)
Сутью излагаемой здесь теории является поиск и формулирование этих принципов злравого смысла, что, конечно же, является весьма непростой задачей. Однако, если такая задача будет нами решена, найденные принципы могут быть положены в основу решений автамагнизации, т.е, можно будет написать программу, позволяющую выполнять проектирование с помощью компьютера. Критики методов нормализации обычно упускают этот момент из виду, совершенно справедливо заявляя, что данные идеи, в основном, представляют собой всего лишь соображения здравого смысла. Однако при этом не принимается во внимание, что возможность формальной и строгой формулировки "соображений здравого смысла" уже сама по себе является значительным достижением. Теперь вернемся к основной теме ланного раздела и рассмотрим второй пример с перекрывающимися потенциальными ключами. Обратимся к переменной-отношению ЯЮТ с атрибутами Я, Л и Т, которые представляют студента, изучаемый предмет и преподавателя соответственно (слелует предупредить, что это всего лишь пример, к тому же доста- Глава 11.
Дальнейшая нормализация; формы 1НФ, 2НФ, 3НФ и НФБК 445 точно экзотический). Смысл каждого кортежа (Б:я, 3:), Т:с) переменной-отношения ЯЛТ состоит в том, что некоторый студент я изучает некоторый предмет ) у некоторого преподавателя с. При этом на информацию накладываются следующие два ограничения. ° Каждый студент изучает определенный предмет только у одного преподавателя. ° Каждый преподаватель ведет только один предмет, однако каждый предмет может преподаваться несколькими преподавателями. На рис. 11.14 показан пример данных в переменной-отношении ЯЮТ. Рис. 11.
14. Пример данных в переменной-отношении ЯЮТ Какие функциональные зависимости существуют в этой переменной-отношении? Из первого ограничения следует зависимость атрибута Т от комбинации атрибутов (Б, е), а из второго — зависимость атрибута 5 от атрибута Т. Следовательно, диаграмма функциональных зависимостей переменной-отношении БсТ будет иметь внд, представленный на рис. !! .15.
Рис. 11.15. Диаграмма функчионазьных зави- симостей в переменной-отношении БЮТ И вновь в рассматриваемом примере присутствуют два перекрывающихся потенциальных ключа, а именно: комбинация (Я, с) и комбинация (Б, Т). Как и в первом примере, исходная переменная-отношение БЛТ находится в ЗНФ, но не в НФБК, в связи с чем для нее булут характерны некоторые аномалии обновления. Например, если потребуется удалить сведения о том, что студент Джонс (' Юопея ') изучает физику, этого нельзя будет сделать, не утратив одновременно информацию о том, что профессор Браун ('Рго!.
Вгомп') преподает этот предмет. Подобные трудности вызваны тем, что атрибут Т является детерминантам, но не является потенциальным ключом. И вновь для решения указанной проблемы исходную переменную-отношение ЯаТ следует разбить на две проекции, каждая из которых будет находиться в НФБК.
БТ(Я,Т) Тй ( Т, е ) 446 Часть 111. Проектирование базы данных В качестве упражнения читателю предлагается составить таблицы с данными этих двух переменных-отношений (исходя из набора данных, представленных на рис. 11.14), а также нарисовать соответствующую диаграмму ФЗ для проверки, действительно ли две созданные проекции находятся в НФБК (какие атрибуты являются их потенциальными ключами?). Кроме того, читателю рекомендуется проверить тот факт, что данная декомпозиция позволяет устранить все существовавшие ранее аномалии обновления. Однако следует отметить, что все еще существует иная проблема.
Суть ее в том, что декомпозиция исходного отношения на проекции ЯТ и Тв позволила исключить одни аномалии, однако привела к появлению других. Причиной является тот факт, что проекции ЯТ и Тв не являются независимыми в смысле Риссанена (подробности приводятся выше в данной главе). Точнее говоря, функциональная зависимость (Я, в) — з Т не может быть выведена из той единственной функциональной зависимости, которая присутствует в двух данных проекциях (Т вЂ” + в). В результате две полученные проекции не могут обновляться независимо.
Например, попытка вставить в переменную-отношение ЯТ кортеж для студента Смита ('Яш(сл') и профессора Брауна ('РгоТ. Егонп') должна быть отвергнута системой, поскольку профессор Браун преподает физику, а Смит уже обучается физике у профессора Грина ('РгоТ. Ягвеп'). Однако обнаружить этот факт, не проверив содержимое переменной-отношения Тд, система не может. Таким образом, мы пришли к неприятному выводу о том, что попытка достижения двух целей, а именно — декомпозиции исходной переменной-отношения на переменные-отношения, находящиеся в НФБК, и декомпозиции исходной переменной-отношения на независимые компоненты, в некоторых случаях может привести к конфликтной ситуации. Поэтому достичь обе цели одновременно не всегда возможно.
Замечание. В действительности переменная-отношение ЯЛТ является аточарной (см. раздел 11.4) даже несмотря на то, что она не находится в НФБК. Однако тот факт, что атомарная переменная-отношение не может быть подвергнута декомпозиции на независимые компоненты, отнюдь не означает, что она вообще не может быть подвергнута декомпозиции (здесь под "декомпозицией*' понимается лекомпозиция без потерь). "Атомарная переменная-отношение" — не совсем подходящий термин для данной концепции, по крайней мере с интуитивной точки зрения, поскольку подобная атомарность не является ни необходимым, ни достаточным условием созлания хорошего проекта базы данных. В качестве третьего и последнего примера переменной-отношения с перекрывающимися потенциальными ключами рассмотрим переменную-отношение ЕХай с атрибутами Я (студент), в (предмет) и Р (позиция).
Каждый кортеж (Я: в, Ю: ), Р:р) переменной-отношения ЕХай отражает сведения о том, что некоторый студент в экзаменуется по определенному предмету ) и занимает определенную позицию р в списке экзаменующихся. Дополнительно условимся, что в нашем примере имеет место следующее ограничение. ° Никакие два студента не могут занимать одну и ту же позицию в списке экзаменующихся по одному и тому же предмету. В этом случае диаграмма функциональных зависимостей будет иметь вид, представленный на рис.
11.16. Глава 11. Дальнейшая нормализация: 4ормы 1НФ, 2НФ, 3НФ и НФБК 447 Рис. !!. !б. Диаграмма функциональных зависимостей в переиеиной-отношении ЕХй)! В этом примере вновь присутствуют два перекрывающихся потенциальных ключа, (Е, в) и (Л, Р), поскольку для каждого студента и предмета существует точно одна занимаемая позиция в соответствующем списке, а в каждом списке экзаменующихся по некоторому предмету каждую позицию занимает только один соответствующий студент. Однако такая переменная-отношение находится в НФБК, поскольку указанные потенциальные ключи являются ее единственными детерминантами.
Поэтому для данной переменной-отношения не характерны какие-либо аномалии обновления, подобные упоминавшимся ранее в настоящей главе. (Упраэкненке. Проверьте правильность этого утверждения.) Таким образом, наличие перекрывающихся потенциальных ключей не всегда приводит к появлению проблем подобного рола. В заключение следует подчеркнуть, что концепция НФБК позволяет избавиться от проблем, которые присущи формам, соответствующим старому определению ЗНФ, Более того, новое определение концептуально проще старого, так как в нем не используются понятия 1 НФ, 2НФ, первичного ключа или транзитивной зависимости.
Дополнительно понятие потенциального ключа может быть заменено ссылкой на более фундаментальное понятие функциональной зависимости !в определении, данном в 1!1.2], имеет место именно такая замена). С другой стороны, концепции первичного ключа, транзитивной зависимости и т.д. весьма полезны на практике, поскольку позволяют сформулировать идею некоторого пошагового процесса, выполняемого разработчиком для приведения произвольной переменной-отношения к эквивалентному набору переменных- отношений в НФБК. Наконец заметим, что в ответе к упр.
11.3 приведен алгоритм, по которому произвольная переменная-отношение может быть подвергнута декомпозиции без потерь информации с ее преобразованием в набор проекций, находящихся в НФБК. 11.6. Замечание по поводу атрибутов, содержащих в качестве значений отношения Как было показано в главе 5, отношение может содержать атрибут, значения которого также являются некоторыми отношениями (рис.
11.17). Конечно, следствием этого является тот факт, что переменная-отношение, в свою очередь, также может содержать атрибуты, значениями которых являются некоторые переменные-отношения. Однако с точки зрения процедуры проектирования базы данных использовать подобные перемен- 448 Часть 111.