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

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

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


person blutuu    schedule 05.11.2013    source источник


Ответы (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 не является самим ключом.

person Shad    schedule 05.11.2013
comment
Чтобы быть более конкретным, левая часть атрибутов должна быть суперключом. - person gokcand; 08.01.2018