ПРИМЕР НОРМАЛИЗАЦИИ

В качестве примера рассмотрим процедуру нормализации БД «КОНСУЛЬТАНТ». Как говорилась выше, нормализация проводится методом декомпозиции, поэтому процедура нормализации часто называется декомпозицией. Одним из самых первых, но и одним из самых важных результатов в области реляционных БД стало доказанное Коддом утверждение о том, что большин­ство потенциальных аномалий в БД будет устранено в случае должной декомпозиции каждого отношения в нормальную форму Бойса-Кодда (НФБК). Хотя существуют нормальные формы более высокого уровня, которые накладывают даже более сильные ограничения на разрабатываемые отношения, на практике большинство проектировщиков стараются получить отношения в НФБК.К этому мы и будем стремиться.

Исходным отношением является универсальное отношение КОНСУЛЬТАНТ ПРИМЕР НОРМАЛИЗАЦИИ (см. рис. 19). Ранее было показано, что это отношение находится в 1НФ (рис. 20).

Опытному проектировщику БД достаточно беглого взгляда на диаграмму, приведенную на рис. 20, чтобы сделать вывод о том, что отношение КОНСУЛЬТАНТ нельзя считать "хорошим". Проектировщик придет к такому выводу, глядя на ФЗ, полученные для отношения КОНСУЛЬТАНТ, и обращая внимание на некоторые их нежелательные свойства. Из рис. 20 можно заключить, что отношение КОНСУЛЬТАНТ имеет только один потенциальный (возможный) ключ, а именно набор атрибутов . Этот вывод получен путем нахождения минимального набора значений атрибутов, которые, если они известны, определяют значения всех других атрибутов кортежа. С помощью ФЗ, представленных на рис. 20, легко видеть, что один номер ПРИМЕР НОРМАЛИЗАЦИИ Сном определяет Сфам, Кном и Тном и для определения Оценки должен быть известен весь набор Сном, Курс и Семестр. Таким образом, если известны значения атрибутов данного выше потенциального ключа, то значения всех других атрибутов кортежа, содержащего указанный потенциальный (возможный) ключ, будут однозначно специфицированы.

Детерминанты в отношении КОНСУЛЬТАНТ определить легко: ими являются левые части всех ФЗ в отношении. Детерминантами в КОНСУЛЬТАНТ являются , , и . Детерминанты заключены в угловые скобки для того, чтобы в данном случае выделить четыре различных детерминанта Следует заметить, что взаимные зависимости между Кном и Тном дают два детерминанта. Отношение КОНСУЛЬТАНТ не находится в НФБК. Это ПРИМЕР НОРМАЛИЗАЦИИ легко обнаружить, если расположить ря­дом перечень всех детерминантов и перечень всех возможных ключей и посмотреть, является ли каж­дый детерминант возможным ключом.

Потенциальные ключи отношения КОНСУЛЬТАНТ - Детерминанты отношения КОНСУЛЬТАНТ

Поскольку не каждый детерминант в отношении КОНСУЛЬТАНТ является возможным ключом, следовательно, КОНСУЛЬТАНТ не находится в НФБК и его необходимо подвергнуть декомпозиции.

Декомпозицию отношения, не приведенного к НФБК, на два отношения осуществляют с помощью ФЗ следующим образом:

Пусть отношение R(A,B,C,D,E, ) не приведено к НФБК Определяется ФЗ, например С → D, про которую известно, что она является причиной того, что отношение R не находится в НФБК (С ПРИМЕР НОРМАЛИЗАЦИИ является детерминантом, но не является потенциальным ключом ) Создаются два новых отношения R1(A,B,C,E, ) и R2(C,D), где зависимостная часть ФЗ была выделена из R и опущена при формировании отношения R1 и ФЗ была использована полностью при формировании отношения R2 . Теперь необходимо проверить, находятся ли в НФБК отношения R1 и R2 Про отношение R2(C,D) говорят, что оно является проекцией отношения R. Этот тип декомпозиции называется декомпозицией без потерь при естественном соединении .



В качестве примера использования метода выполним декомпозицию отношения КОНСУЛЬТАНТ. Обращаясь вновь к детерминантам и возможным ключам отношения КОНСУЛЬТАНТ, видим, что имеются три детерминанта, не являющихся ПРИМЕР НОРМАЛИЗАЦИИ возможными ключами:

, , и .

Началом процесса служит следующая схема БД ( универсальное отношение):

КОНСУЛЬТАНТ (Сном, Курс, Семестр, Сфам, Кном, Тном, Оценка).

Кандидатами среди ФЗ для осуществления проекции являются

Сном → Кном; Сном → Тном; Кном → Тном и Тном → Кном.

На этом этапе должно быть принято решение, ка­кую ФЗ следует выбрать для проведения первой проекции. Не исключено, что в итоге выбора той или иной начальной проекции будут получены различные БД. Если это именно так, то каждая из получившихся БД, вообще говоря, должна быть подвергнута анализу с целью выбора наиболее полно отвечающей требованиям и условиям предприятия.

Простым правилом выбора ФЗ для проекции может служить ПРИМЕР НОРМАЛИЗАЦИИ поиск "цепочки ФЗ" вида

А → В → С

с последующим использованием для проекции крайней правой зависимости. Это объясняется следующим. Данная ФЗ является транзитивной. А как вы помните, для приведения к 3НФ необходимо исключить все транзитивные зависимости. Как вы также помните, НФБК является ужесточенной 3НФ. В нашем случае такой "цепоч­кой" является Сном -> Кном -> Тном и "конец цепочки" Кном -> Тном порождает первую проекцию. Полученные в итоге отношения R1 и R2 приведены на рис. 23 вместе с каждой из связанных с ними ФЗ.

Рис. 23. Отношения R1 и R2, полученные в результате проекции

Кном Тном из отношения КОНСУЛЬТАНТ

Отношение R2 (Кном.Тном) находится в НФБК, поскольку все его детерминанты являются ПРИМЕР НОРМАЛИЗАЦИИ возможными ключами. Отношение R2 не нуждается более в декомпозиции. Однако отношение R1 (Сном, Курс, Семестр, Сфам, Кном, Оценка) не находится в НФБК, так как детерминант не является возможным ключом. Следовательно, отношение R1 необходимо подвергнуть дальнейшему разложению. Кстати, отношение R1 имеет частичную зависимость ряда атрибутов от первичного ключа, следовательно, оно не находится даже во 2НФ, а находится в 1НФ. Детерминант , из-за которого возникло затруднение, имеет два зависимых от него атрибута

Сном -> Сфам, Сном -> Кном,

что можно рассматривать в качестве единичной ФЗ с составной правой частью

Сном -> Сфам, Кном.

Проекция отношения R1, порождаемая этой ФЗ, приводит к получению отношений R3 и ПРИМЕР НОРМАЛИЗАЦИИ R4, показан­ных на рис. 24. Эти два отношения находятся в НФБК и вместе с отношением R2 могли бы использоваться при формировании БД для консультанта. На рис. 25 представлен окончательный вид отношений для такой БД (названной КОНС), а также экземпляры каждого отношения с данными, совпадающими с использованными для исходного отношения КОНСУЛЬТАНТ. Заметим, в частности, что в процессе декомпозиции автоматически произошло разбиение исходного отношения КОНСУЛЬТАНТ на три логических компонента: R2, в котором содержится информация о комнатах и телефонах; R3, в котором содержится информация об учебных курсах и полученных студентами оценках; R4, в котором содержится информация о студентах. Такое логическое разбиение является прямым ПРИМЕР НОРМАЛИЗАЦИИ результатом использования в процессе декомпо­зиции заложенной в ФЗ информации, детализирующей то, как различные атрибуты в исходном отношении соотносятся друг с другом.

Рис. 24. Отношения R3 и R4, полученные в результате проекции

Сном -> Сфам,Кном из отношения R1

Рис.25. а - база данных КОНС, получившаяся после нормализации БД КОНСУЛЬТАНТ; б - экземпляр БД, в котором используются данные, приведенные в универсальном отношении КОНСУЛЬТАНТ

Обзор исходных аномалий

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

СДЕЛАЙТЕ ЭТО САМОСТОЯТЕЛЬНО!

Ниже приведен анализ аномалий.

Вставка. Когда отношение КОНСУЛЬТАНТ слу­жило основой БД, новый студент не мог быть в нее включен до действительного завершения им какого-либо курса. В БД Коне информация общего характе­ра о консультируемых студентах хранится в отноше­нии R4. Как только новый студент принимается в университет и ему отводится комната, так этот сту дент может быть включен в БД (в R4). Студенту нет необходимости даже просто приступить к посеще­нию учебного курса для того, чтобы быть включен­ным в БД ПРИМЕР НОРМАЛИЗАЦИИ. Таким образом, исходная аномалия встав­ки исключена с помощью декомпозиции.

Обновление. При использовании отношения КОНСУЛЬТАНТ проблема возникла на этапе изменения консультантом номера телефона миссис ДжонсГ на 7777. Результатом этого изменения явилось появление в БД двух различных телефонных номеров для теле­фона, установленного в комнате 120DH. В БД Конс телефонные номера располагаются в отношении R2, и каждая комната может иметь только один телефон­ный номер, назначенный расположенному в этой ком­нате телефонному аппарату. Следует помнить, что номер Кном является первичным ключом отношения R2, а значения первичного ключа по определению должны быть уникальными. Для модификации теле­фонного номера ДжонсГ следует в кортеже ПРИМЕР НОРМАЛИЗАЦИИ отноше­ния R2, в котором Кном=1200Н, изменить номер Тном на 7777. Обратите внимание на то обстоятельство, что это действие заключается в изменении телефон­ного номера для комнаты, так что для всех живущих в этой комнате студентов телефонный номер также бу­дет изменен. Таким образом исходная аномалия обнов­ления устраняется с помощью НФБК-проектирования.

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

Удаление. Когда отношение КОНСУЛЬТАНТ использовалось в качестве БД, удаление кортежа, вклю­чавшего значения Сном=4756 и Kypc ПРИМЕР НОРМАЛИЗАЦИИ=MUS389, приве­ло к исчезновению из БД студента с номером 4756. Этого не может произойти в случае БД Конс, по­скольку информация об оценках и информация о студентах общего характера разнесена в два различных отношения (R3 и R4). При исключении факта, что студент с номером 4756 посещал курс MUS389 в семестре F83, из отношения R3 будет удален кортеж . Это действие никак не ска­жется на общей информации о студенте, хранимой в R4.


documentajjxguj.html
documentajjxoer.html
documentajjxvoz.html
documentajjyczh.html
documentajjykjp.html
Документ ПРИМЕР НОРМАЛИЗАЦИИ