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не является ключом сам по себе.