2013-12-06 2 views
1

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

ответ

1

Чтобы определить, является ли отношение 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, который не является суперким или тривиальным.

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

0

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

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