Общий подход к декомпозиции
Этапы проектирования:
1) Разрабатывается универсальное отношение для БД (в универсальное отношение включаются все атрибуты, представляющие интерес для данного проектирования; как полагают большинство специалистов, их число не должно превышать двадцати, иначе декомпозиционный метод становится излишне громоздким).
2) Определяются все функциональные зависимости между атрибутами данного отношения.
3) Определяется, находится ли отношение в нормальной форме Бойса - Кодда. Если да, то проектирование завершается, если нет, то осуществляется декомпозиция, т.е. разбиение отношения.
4) Шаги 2 и 3 повторяются для каждого нового отношения, полученного в результате декомпозиции. Проектирование завершается, когда все отношения будут находиться в НФБК.
Декомпозиция может осуществляться следующим образом:
· Пусть отношение r(A, B, C, D, E,…) не находится в НФБК. Определяется F-зависимость, являющаяся причиной того, что отношение r не находится в НФБК, например, С ® D (атрибут С является детерминантом, но не является возможным ключом).
· Создаются два новых отношения: r1(A, B, С, Е,…) и r2(C, D), где зависимостная часть F-зависимости – атрибут D был выделен из отношения r и опущен при формировании отношения r1, F–зависимость С ® D была полностью использована при формировании отношения r2. Отношения r1 и r2 являются проекциями отношения r.
Такая декомпозиция называется декомпозицией без потерь при естественном соединении (т. е. естественное соединение r1 и r2 даст исходное отношение r).
Например, обратимся к отношению Консультант (№ студента, ФИО студента, № комнаты, № телефона, № курса, Семестр, Оценка), которое является универсальным отношением.
F-зависимости отношения Консультант (были определены нами ранее):
№ студента ® ФИО студента;
№ студента ® № комнаты;
№ студента ® № телефона;
№ комнаты ® № телефона;
№ телефона ® № комнаты;
№ студента, № курса, Семестр ® Оценка.
Возможным и единственным ключом отношения является составной атрибут: № студента, № курса, Семестр. Имеются три детерминанта, не являющиеся возможными ключами: № студента, № комнаты, № телефона. Необходимо выбрать F-зависимость для проведения первой проекции. Для этого отыскивают «цепочку» F-зависимостей вида: А ® В ® С и используют для проекции крайнюю правую зависимость. В нашем случае такими цепочками являются:
№ студента ® № комнаты ® № телефона;
№ студента ® № телефона ® № комнаты.
а) Выбрав F-зависимость № комнаты ® № телефона, получим следующие отношения:
r1(№ студента, № курса, Семестр, Оценка, ФИО студента, № комнаты);
r2(№ комнаты, № телефона).
Отношение r2 находится в НФБК (все его детерминанты являются возможными ключами) и не нуждается больше в декомпозиции.
Отношение r1 не находится в НФБК (детерминант № студента не является возможным ключом) и поэтому разбивается далее.
Детерминант № студента имеет два зависимых атрибута:
№ студента ® ФИО студента
№ студента ® № комнаты
Эти две зависимости в r1 можно рассматривать как одну с составной правой частью:
№ студента ® ФИО студента, № комнаты.
Выбирая данную F-зависимость для проведения второй проекции, получим следующие отношения:
r3(№ студента, ФИО студента, № комнаты);
r4(№ студента, № курса, Семестр, Оценка).
Данные отношения находятся в НФБК. Проектирование завершено: отношения r2, r3, r4 могут быть использованы при формировании БД для консультанта.
б) Выбрав для проведения первой проекции F-зависимость № телефона ® № комнаты, получим следующие отношения:
r1(№ студента, № курса, Семестр, ФИО студента, № телефона, Оценка);
r2(№ телефона, № комнаты).
Отношение r2 находится в НФБК, r1 – нет. Разбиваем r1 на следующие два отношения:
r3(№ студента, ФИО студента, № телефона);
r4(№ студента, № курса, Семестр, Оценка).
Отношения r3 и r4 находятся в НФБК, проектирование завершено.
Таким образом, имеем два различных решения. Какое из двух решений является «лучшим», определяется выбором проектировщика и зависит до некоторой степени от того, как планируется использовать БД.
6.2. Некоторые комментарии к декомпозиционному
методу проектирования
В предыдущем разделе было сказано, что в процессе проектирования с помощью проекций декомпозицию следует осуществлять путем поиска цепочек функциональных зависимостей вида: А ® В, В ® С с последующим проецированием, порождаемым F-зависимостью, замыкающей цепочку. Обоснование данной процедуры выбора состоит в утверждении, что всеми средствами следует избегать выбора функциональной зависимости, зависимостная часть которой сама (целиком или частично) является детерминантом другой F-зависимости.
Пусть имеется отношение r(A, B, C) и F-зависимости: А ® В, В ® С.
Выберем для проведения проекции F-зависимость А ® В.
Получим отношения: r1(A, B) и R2(A, С). Оба эти отношения находятся в НФБК, но F-зависимость В ® С утеряна (ни отношение r1, ни r2 автономно не содержат атрибуты, присутствующие в данной функциональной зависимости). С практической точки зрения это означает то, что нельзя будет утверждать, что некорректные связи между В и С не будут привнесены в БД. При использовании правила цепочки такой ситуации не возникает.
Рассмотрим другой случай возможной потери функциональной зависимости при проектировании. Пусть имеется отношение r(A, C, B) и F-зависимости: А ® В, С ® В.
Отношение r не находится в НФБК. Правило цепочки здесь неприложимо по причине их отсутствия. Если же одна из функциональных зависимостей будет выделена обычным способом, то другая будет потеряна:
· при выделении из r зависимости А ® В будут получены отношения: r1(A, B) и r2(A, C) и F-зависимость С ® В будет утеряна;
· при выделении из r зависимости С ® В будут получены отношения: r1(С, B) и r2(A, C) и F-зависимость А ® В будет утеряна.
Если отношение R разбить на r1(A, B) и r2(C, В), то ни одна из функциональных зависимостей не будет утеряна. Такой путь не соответствует стандартному методу декомпозиции. В его основе (в некоторых литературных источниках данный метод называется методом синтеза) лежит следующее утверждение: все F-зависимости с одинаковыми детерминантами необходимо выделять в группы и каждой группе отводить свое собственное отношение (что мы и сделали).
Метод синтеза используется как самостоятельно, так и в сочетании с методом декомпозиции (как альтернатива при поиске выхода из затруднительной ситуации). Тот факт, что существуют различные методы проектирования, которые могут быть использованы как порознь, так и до некоторой степени смешанным образом, свидетельствует о том, что проектирование БД является частично наукой, а частично искусством.
Дата добавления: 2016-06-15; просмотров: 2218;