SQL-показать, что R не находится в нормальной форме Boyce-Codd


R = (J,K,L,M,N) с набором функциональных зависимостей {J->KL,LM->N,K->M,N->J}.

Я понимаю определение BCNF. Я считаю, что нет никаких тривиальных функциональных зависимостей и не может быть супер ключа. Насчет второй части я не уверен. Как бы вы определили супер ключ из букв? Был бы признателен за некоторый вклад в это.

1 4

1 ответ:

Отношение будет иметь нормальную форму Бойса-Кодда (BCNF), если замыкание атрибутов левой стороны для всех функциональных зависимостей содержит все атрибуты отношения (J, K, L, M, N). Другими словами, левые атрибуты каждой функциональной зависимости содержат ключ.

Давайте проанализируем ваши функциональные зависимости:

  1. J -> KL. Затем K -> M, затем LM -> N и N -> J. Итак, J -> KL удовлетворяет BCNF.
  2. LM -> N. Затем N -> J, затем J -> KL и вот и все, у нас есть все атрибуты.
  3. K -> M. Этот функционал зависимость, очевидно, является нарушением BCNF, потому что мы не можем получить дополнительные атрибуты из набора зависимостей.
  4. N -> J. Затем J -> KL и K -> M. Это удовлетворяет BCNF.
Таким образом, третья зависимость нарушает BCNF и атрибут K не является ключом сам по себе.