Читайте также:
|
|
Ранее рассматривалась рекомендация, в соответствии с которой выбор ФЗ для получения проекций исходного отношения осуществляется в результате поиска цепочек ФЗ следующего вида:
А ® В; В ® С
Для проецирования следовало использовать ФЗ, замыкающую эту цепочку. Эта рекомендация базируется на утверждении, что следует непременно избегать выбора ФЗ, зависимая часть которой - целиком или частично - является детерминантом отношения.
Посмотрим, к чему приводит неисполнение указанной рекомендации. Если исходное отношение имеет вид R (A, B, C) и ФЗ А ® В выбрана для проекции в первую очередь, то полученные в результате отношения будут R1 (A, C) и R2 (A, В). Хотя оба эти отношения находятся в НФБК, поскольку их детерминанты являются возможными ключами, при использовании этих отношений обнаруживается следующая проблема. Ни отношение R1 (A, C), ни отношение R2 (A, В) автономно не содержат атрибуты, присутствующие в ФЗ В ® С, которая является ФЗ исходного отношения R (A, B, C). Эта зависимость утеряна в процессе проектирования. С практической точки зрения это означает, что если полученные отношения будут использоваться для создания БД, то нельзя будет гарантировать, что в БД не будут привнесены некорректные связи между атрибутами В и С. На рис 1.9 иллюстрируется выявленная проблема. При естественном соединении отношений R1 и R2 по атрибуту А два различные значения атрибута С (3 и 4) оказываются соответствующими одному и тому же значению атрибута В (2), что противоречит ФЗ, утерянной в процессе проектирования.
Итак, в данном примере проблема возникает из-за проекции, порожденной ФЗ, у которой зависимая часть сама является детерминантом другой ФЗ.
Исходные данные: отношение R (A, B, C)
ФЗ А ® В
В ® С
(А ® С)
Возможные проекции: R1 (A, C) R2 (A, B)
А ® С А ® В
Корректные экземпляры отношений:
R1 | A | C | R2 | A | B |
Соединение R1 [ a=a] R2 | A | B | C |
Рис.1.9. Результат неверного выбора ФЗ для проекций.
Другим случаем возможной потери ФЗ в процессе проектирования является ситуация, в которой один атрибут зависит от двух различных детерминантов. Например, пусть для отношения R (A, B, C) определены зависимости, показанные на рис.1.10.
А
В R (A, B, C)
С
Рис.1.10. Два детерминанта с одним и тем же зависимым
атрибутом.
Это отношение не находится в НФБК, так как имеется только один возможный ключ <A, C>, в то время как детерминантами являются еще и <A> и <C>. Правило цепочек здесь неприложимо по причине их отсутствия. Кроме того, если одна из ФЗ будет выделена обычным способом, то другая будет потеряна. Например, при выделении из R (A, B, C) зависимости А ® В будут получены отношения R1(A, C) и R2(A,В), ни одно из которых не будет содержать зависимости С ® В. Наоборот, при первоочередном выделении ФЗ С ® В будет утеряна ФЗ А ® В. Возникла ситуация, обязывающая проектировщика найти способ разбиения отношения R(A, B, C) на R1(A, B) и R2(C, B), не приводящий к утере ни одной ФЗ.
Этот путь не соответствует стандартному методу декомпозиции, но может привести к лучшему результату. Единственное, что может сделать проектировщик, столкнувшись с указанной ситуацией, это проверить три возможных набора отношений и оценить, какой из трех наиболее соответствует техническому заданию. В частности, полученные в последнем варианте отношения необходимо проверить, чтобы убедиться в отсутствии проблем в случае соединения двух итоговых отношений для поиска данных на этапе эксплуатации окончательного варианта БД.
Рассмотренный только что третий вариант разбиения отношения называется методом синтеза. Согласно этому методу необходимо все ФЗ с одинаковыми детерминантами выделять в группы и каждой группе ставить в соответствие одно отношение. Затем получаемые отношения проверяются на их соответствие НФБК.
в последнем примере были две ФЗ с различными детерминантами. Согласно методу синтеза каждой ФЗ следует выделить ее собственное отношение - R1(A, B) и R2(C, B).
Метод синтеза может быть использован как самостоятельно, так и в сочетании с методом декомпозиции при поиске выхода из затруднительных ситуаций, подобных только что разобранной.
Дата добавления: 2015-07-20; просмотров: 115 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Общий подход к декомпозиции отношений | | | Удаление избыточных функциональных зависимостей |