Программирование >>  Реляционные базы данных 

1 ... 38 39 40 [ 41 ] 42 43 44 ... 125


удовлетворяющие зависимости theater-* city (что можно проверить в отношении {theater, city}), но при их соединении получается OTHonjeHne, не удоапетворяющее зависимости title city-5-theater. Например, два отношения

theater

city

Guild

Menio Parl<

Park

Ivlenlo Park

theater

Guild

The Net

Park

The Net

допустимы, согласно функциональным зависимостям, к каждому из них, но их соединение дает два кортежа

fteafer

city

title

Guild

Mento Park

Park

MenIo Park

нарушающих зависимость title city -> theater. □

Решение этой проблемы состоит в ослаблении требования BCNF, допускаю щем реляционные схемы (как в примере 3.42), которые невозможно расчленить на BCNF, не утратив возможности проверять каждую функциональную зависимость в одном отношении. Такое ослабленное условие называется третьей нормальной формой.

Отношение R находится в третьей нормальной форме (3NF), если для любой нетривиа-аьной зависимости /1, ... А В, либо {Af, А,А } - надключ, либо В -член некоторого ключа.

Заметим, что условия 3NF и BCNF различаются словами В- член некоторого ключа , которые оправдывают зависимость типа theater city из примера 3.42, так как ее правая часть, city, является членом ключа.

Доказательство того, что 3NF соответствует своим целям, выходит за рамки этой книги. Тем ие менее всегда можно без потери информации разложить схему отношения на схемы в 3NF и контролировать все функциональные зависимости. Однако, если новые отношения не находятся в BCNF, в схеме остается некоторая избыточность.

Интересно заметить, что последний пример схемы отношения, находящейся в 3NF, но не в BCNF, отличается от рассмотренных ранее примеров нарушения BCNF. Одна из релевантных функциональных зависимостей, theater-> city, типична по форме и основана на том, что кинотеатр - это уникальный объект, расположенный в городе. Другая же -

title city -5- theater

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



Другие нормальные формы

Если речь идет сразу о третьей нормачьной форме, чго же случилось с первыми двумя нормальными формами Разумеется, они были определены, но в настоящее время применяются очень редко. Первая нормальная форма - это условие, согласно которому каждый ко.мпонент каждого кортежа является атомарным значением. Вторая нормальная форма слабее 3NF. Она допускает транзитивные зависимости в отношении, но запрещает нетривиа.пьиую зави снмость. левая часть которой является собственны.м подмножеством ключа. Есгь и четвертая нормальная форма, которая будет paccютpeнa в разделе 3.S.

3-7.8 Упражнения к разделу 3-7

Упражнение 3.7.1. Для каждой из реляционных схем:

*а) В(А. В, С, D) с функциональными зависимостями АВ- С, С-> D и D-A\

*b) R(A, В. С, D) с функциональными зависимостями В-> С, В- 1>,

c) R(A, В, С, D) с функциональными зависимостями АВ-* С. ВС D

CD- А и AD- В;

d) R(A, В, С, D) с функциональными зависимостями А-* В, В-С, С-* D и D -*А;

e) R(A, В. С. D. Е) с функциональными зависимостями АВ-¥ С, DE-¥ С и В- D;

f) Д(Д В, С, D, Е) с функциональными зависимостями АВ~> С, С-у D, D-B и О- Е

выполните следующее:

i) Укажите все нарушения BCNF, Не забудьте рассмотреть зависимости, которые не в.\одят в заданное множество зависимостей, но следуют из него. Указывать нарушения в виде зависимостей, имеющих в правой части более одного атрибута, необязательно.

О) Проведите декомпозицию отношений на множество новых отношений, находящихся в BCNF.

HI) Укажите все нарушения 3NF.

Л) Разложите огношения на множество новых отношений, находящихся в .3NF.

Упражнение 3.7.2. В разделе 3.7.4 было сказано, что по возможности следует расширять правую часть функциональной зависимости, нарушающей BCNF, но это сч1Гг<глось произвольным шагом, который люжно не делать. Рассмотр1гге отношение R со схемой \А, В, С, DI и <>ункцпональкыми зависимостями А-* В н А~* С. Любая из них нарушает BCNF, так как ключом для R яалястся {А, О). Допустим, что декомпозиция начинается с А-> В. Получится ли в конечюм счеге тот же результат, какой получился бы. если нарушающая BCNF зависимость предварительно была бы расширена яо ЙС? Почему да или почему нет?



! Упрожнение 3.7.3. R остается таким же, как в упражнении 3.7.2, но имеет зависимости В и В-> С. Сравните декомпозиции, начатые су4-*Ви с ВС. Подсказка: важно учитывать, какие зависимости истинны для полученных в резуль-тате декомпозиции отношений. Достаточно ли только тех зависимостей, которые содержат атрибуты лишь одной из схем, полученных в результате декомпозиции? Как быть с зависимостями, которые следуют из заданных зависимостей?

! Упрожнение 3.7.4. Допустим, что реляционная схема Я(/), В, Q с функциональной зависимостью А-* В разложена на S(,A, В) и Т\В, С). Приведите пример отношения R, проекция которого на 5 и Г и последующее восстановление по методу раздела 3.7.6 не приводят к тому же экземпляру отношения.

1 Упрожнение 3.7.5. Пусть отношение R(A, В, С, D, Е) разложено на S(A, В, Q и другие отношения. Укажите функциональные зависимости для S, если зависимостями для R являются:

*а) АВ DE, C-s- £, D-Cu ЕА:

b) AD, BD- Е, АС-ь. Е и DE--, В;

c) АВ Z), /JC-* £, ВС-* Д DA и £-> В;

d) АВ, В->С, С- D, D-*E и Е-*А.

В каждом случае достаточно обеспечить минимальный базис для полного множества зависимостей S.

3.8 Многозначные зависимости

Многозначная зависимость означает, что два атрибута или два множества атрибутов не зависят друг от друга. Это условие предполагает обобщение понятия функциональной зависимости в том смысле, что любая функциональная зависимость влечет соответствующую многозначную зависимость. Однако в некоторых ситуациях независимость множества атрибутов невозможно объяснить через функциональные зависимости. В этом разделе показано, как возникают многозначные зависимости и как их можно применить в разработке схемы БД.

3.8.1 Независимость атрибута - причина его избыточности

в некоторых случаях находящееся в BCNF отношение сохраняет избыточность, не связанную с функциональными зависимостями. Наиболее распространенный источник избыточности в BCNF - независимость одного или нескольки,х многозначных атрибутов какого-то класса при прямом преобразовании из ODL в отношения, описанные в разделе 3 2.

Пример 3.43, Пусть класс Star по определению, приведенному на рис, 3,38, имеет имя, множество адресов и множество кинозвезд Определение этого класса аналогично приведенному на рис. 2.5, за исключением типа атрибута address.

interface Star {

attribute string name; attribute Set<

Struct Addr {string street, string city) > address;

relationsiiip Set<Movie> starredin inverse Movie::stars;

Ри<. 3.38. Кинозвезды, no определению имеющие ogpeco и фильмы



1 ... 38 39 40 [ 41 ] 42 43 44 ... 125

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.07
При копировании материалов приветствуются ссылки.
Яндекс.Метрика