SQL-показать, что R не находится в нормальной форме Boyce-Codd
R = (J,K,L,M,N)
с набором функциональных зависимостей {J->KL,LM->N,K->M,N->J}
.
Я понимаю определение BCNF. Я считаю, что нет никаких тривиальных функциональных зависимостей и не может быть супер ключа. Насчет второй части я не уверен. Как бы вы определили супер ключ из букв? Был бы признателен за некоторый вклад в это.
1 ответ:
Отношение будет иметь нормальную форму Бойса-Кодда (BCNF), если замыкание атрибутов левой стороны для всех функциональных зависимостей содержит все атрибуты отношения
(J, K, L, M, N)
. Другими словами, левые атрибуты каждой функциональной зависимости содержат ключ.Давайте проанализируем ваши функциональные зависимости:
Таким образом, третья зависимость нарушает BCNF и атрибут
J -> KL
. ЗатемK -> M
, затемLM -> N
иN -> J
. Итак,J -> KL
удовлетворяет BCNF.LM -> N
. ЗатемN -> J
, затемJ -> KL
и вот и все, у нас есть все атрибуты.K -> M
. Этот функционал зависимость, очевидно, является нарушением BCNF, потому что мы не можем получить дополнительные атрибуты из набора зависимостей.N -> J
. ЗатемJ -> KL
иK -> M
. Это удовлетворяет BCNF.K
не является ключом сам по себе.