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