Нормальная форма Бойса-Кодда 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Нормальная форма Бойса-Кодда



ФЗ XY является неприводимой, если для любого подмножества ZX выполняется ZY или ZYF +

Пусть есть отношение R и F включает в себя нетривиальные неприводимые ФЗ. Тогда отношение R находится в нормальной форме Бойса-Кодда, если для любого XYF => X - ключ.

Пример:

R 1= AB, F 1=(AB, BA), A - ключ, B - ключ.

или

R 2= ACD, F 2=(ACD), AC - ключ.

Алгоритм синтеза "хорошей" БД

Пусть U - универсальная схема отношения (множество всех атрибутов предметной области) и F - множество ФЗ.

Перед выполнением алгоритма можно привести все ФЗ к одному атрибуту в правой части (по свойству декомпозиции) и удалить лишние ФЗ. Но это не обязательно.

Алгоритм:

  1. построить УНП для F;
  2. если среди ФЗ в УНП нет ФЗ, включающей все атрибуты из U, то добавить в УНП тривиальную ФЗ U →∅. Выполнение этого шага почти всегда обеспечивает свойство соединения без потерь будущей схемы БД;
  3. привести все нетривиальные ФЗ из УНП к неприводимому виду (удалить лишние атрибуты в левых частях ФЗ);
  4. разбить полученное множество ФЗ УНП на классы эквивалентности. Две зависимости X iY i и X jY j будем называть эквивалентными, если X i Y i = X j Y j. Далее введём обозначение K r = X i Y i - множество атрибутов в левой и правой частях ФЗ r -того класса эквивалентности;
  5. построить граф иерархии полученных на предыдущем шаге классов эквивалентности (если это возможно). Правило построения: j -ый узел соединяем снизу с i -ым узлом, если K jK i. В каждом узле записываются все ФЗ, соответствующего класса эквивалентности;
  6. из каждого класса эквивалентности в графе иерархии оставить только одну ФЗ. Правила выбора:
    1. удалить из класса эквивалентности лишние ФЗ;
    2. если в классе эквивалентности осталось больше одной ФЗ, то выбрать ФЗ с меньшим числом атрибутов в левой части;
    3. если у оставшихся ФЗ число атрибутов в левой части одинаково, то выбрать ту ФЗ, которая позволит редуцировать (вычеркнуть) атрибуты справа у ФЗ, расположенных выше в графе иерархии;
    4. если в результате не удалось выбрать ни одной, то выбрать произвольную;
  7. редуцировать атрибуты справа в оставшихся ФЗ. Для этого просмотреть каждый путь снизу вверх в графе иерархии. Двигаясь по выбранному пути, выполнить следующие действия в каждом узле пути:
    1. пусть XY - это ФЗ, записанная в данном узле. Каждый атрибут, принадлежащий правой части, вычеркнуть в правых частях ФЗ, расположенных в узлах этого пути по иерархии выше;
    2. для тривиальной ФЗ U →∅ атрибуты вычёркиваются слева;
  8. исключить из рассмотрения ФЗ с пустой правой частью (кроме редуцированной ФЗ U →∅). Исключённые на этом шаге ФЗ являются лишними и выводятся из оставшихся;
  9. каждую оставшуюся в графе иерархий ФЗ VW заменить на множество VW. Получившееся множество схем отношений обозначить как ρ;
  10. для полученной на предыдущем шаге схемы БД проверить:
    1. обладает ли она свойством соединия без потерь. Если не обладает, то добавить ключ универсальной схемы U в эту схему;
    2. обладает ли ρ свойством сохранения ФЗ. Если нет, то, использовать зависимости, не вошедшие в проекцию XY ∉Π R i (F), для построения новых схем отношений, то есть добавить в ρXY.

После выполнения всех шагов полученная схема ρ:

  • обладает свойством соединения без потерь;
  • обладает свойством сохранения ФЗ;
  • находится в 3НФ или НФБК;
  • содержит минимальное число схем отношений.

Пример

U =(поставщик,фирма,деталь,количество)=(A, B, C, D)

F =(AB, BA, ACD, BCD)

Строим ρ:

1)

УНП=(AB, BA, ACBD, BCAD)

2)

пропускаем этот шаг, так как есть ФЗ (даже не одна), включающая все атрибуты из U

3)

уменьшить число атрибутов не удаётся

4)

1 класс: AB, BA, K 1= AB

2 класс: ACBD, BCAD, K 2= ABCD

5)

6)

для K 2:

способ 1 - как во втором семинаре

можно ли вывести ACBD ∈(BCAD)+?

(AC)+= AC, BD ⊈(AC)+, значит нельзя

можно ли вывести BCAD ∈(ACBD)+?

(BC)+= BC, AD ⊈(BC)+, значит нельзя

способ 2 - вычеркнуть из правых частей ФЗ рассматриваемых классов эквивалентностей общие атрибуты. Если получаются ФЗ с пустой правой частью, то они являются лишними.

ACB

BCA

выше по иерархии ничего нет, выбираем BCAD

нет лишних ФЗ, потому...


 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 89; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.172.146 (0.005 с.)