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

Я не понимаю нормальную форму Бойса-Кодда. Я посмотрел на свой учебник, но я не понимаю его. Скажем, отношение R = (A,B,C,D,E) и F={A->C, D->CB, AC->E}. Как вы определяете, находится ли R в BCNF? Нужна помощь. Спасибо!

2 ответа

Решение

Чтобы определить, является ли отношение BCNF, мы исследуем его функциональные зависимости.

Именно в BCNF, если для каждого FD X→Y мы имеем

  • X → Y - тривиальная функциональная зависимость (Y ⊆ X)
  • X - суперключ для схемы R.

FD являются A→C, D→CB, AC→E. Начнем с первого FD A → C.

A → C не является тривиальным, потому что C ∉ A. A→A является тривиальной зависимостью, например.

Теперь A → C суперключ? Чтобы проверить, что мы вычисляем замыкание левой части FD, в данном случае A. Замыкание - это все элементы, логически подразумеваемые как A. [A]+ = A ∪ C ∪ E = ACE или, таким образом, мы имеем A → ACE.

ACE не является суперключем, потому что он содержит все атрибуты отношения.

Таким образом, отношение не в BCNF, потому что A → C не является ни тривиальным, ни суперключом.

Есть и другие нарушения BCNF. [D]+ = BCD, который не является суперключем или тривиален. [AC]+ = ACE, который не является суперключом или тривиальным.

Надеюсь это поможет! Я думаю, что все правильно, но сейчас я готовлюсь к финалу и пытаюсь выучить много этого материала.

Неформально вы сначала идентифицируете все ключи-кандидаты. Затем вы смотрите на стрелки в функциональных зависимостях.

Если каждая стрелка является стрелкой из ключа-кандидата, она находится в BCNF.

Другие вопросы по тегам