Разложить схему на BCNF с помощью алгоритма - PullRequest
0 голосов
/ 12 октября 2018

Правильны ли следующие шаги?

R = (P, N, O, C, E)

N -> P

E -> P

O -> C

O -> P

В вышеприведенном отношении мы видим, что есть два нарушения.N -> P и E -> P - отношение «многие к одному», а O -> C и O -> P - отношение «один ко многим».Это означает, что для 1 значения X существует 2 значения Y.Отношения могут быть переписаны как NE -> P и O -> CP.

Прежде всего, мы рассчитываем закрытие атрибута для данного отношения.И используя закрытие атрибута, мы найдем ключ кандидата для отношения.Чтобы R находился в BCNF, если X -> Y выполняется в R, X должен быть супер-ключом R.

P+ = P
N+ = NP
O+ = OCP
C+ = C
E+ = EP
NEO+ = NEOCP

Итак, ключ-кандидат (минимальный супер-ключ) - NEO.Теперь мы запускаем алгоритм.Для отношения NE -> P

S = {N, E, O, C, P} S = {NE, OCP} из-за функциональной зависимости NE -> P, которая нарушила BCNF.Таким образом, мы растворяем отношение на два отношения.S = {NE, OC, OP} из-за функциональной зависимости O -> CP, которая нарушила BCNF.Теперь у нас есть 3 отношения в форме BCNF.

...