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

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


person SaurabJ21    schedule 06.12.2013    source источник


Ответы (2)


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

Он находится в НФБК, если для каждой FD X→Y мы либо имеем

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

FD: A→C, D→CB, AC→E. Начнем с первого ФД A→C.

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

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

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

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

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

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

person JoeR14    schedule 09.12.2013

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

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

person Mike Sherrill 'Cat Recall'    schedule 06.12.2013