Как определить декомпозицию, сохраняющую зависимость соединения без потерь

У меня есть проблема с домашним заданием, чтобы определить соединение без потерь, декомпозицию зависимостей для следующего:

R(A, B, C, D, E, F, G, H, I, J)

с функциональными зависимостями:

AB -> CG

C -> A

BD -> EF

Азбука -> DEFG

G -> H

G -> I

G -> J

H -> IJ

J -> I

I -> H

и я не уверен, как это сделать,

Я знаю, что первый шаг — определить минимальную обложку/каноническую обложку, что я и сделал здесь:

AB -> C

C -> A

BD -> E

BD -> F

BC -> D

BC -> G

G -> J

H -> J

J -> I

I -> H

однако я не понимаю, что делать после этого.

Я действительно думаю, что этот вопрос: Проектирование соединения без потерь, сохранение зависимостей, база данных 3NF - это то, что я ищу, но я не понимаю ни одного из ответов. Ссылки на первый ответ мертвы, поэтому я не могу найти алгоритм.

Я действительно ищу пошаговые инструкции о том, как это сделать, любая помощь будет оценена.


person Hitomi86    schedule 12.01.2019    source источник
comment
Почему ты не знаешь, что делать дальше? Как называется и издается ваш учебник и где вы в нем застряли? PS С ФД это не то, что вы имеете в виду. Это должно быть замыкание.   -  person philipxy    schedule 13.01.2019


Ответы (1)


Да, первый шаг — найти минимальное покрытие. Затем вы должны объединить зависимости, которые имеют одинаковую левую часть. В вашем случае, например, BD->E и BD->F можно объединить в BD->EF. После слияния всех возможных зависимостей в вашем минимальном покрытии каждая зависимость может быть отношением (например, R1(B,D,E,F). Затем вы получаете отношения 3NF, сохраняющие зависимости. Но это может быть не без потерь, и вам может потребоваться преобразовать его в схему без потерь, добавив еще один связь.

Вот некоторые полезные ресурсы:

person Emre Sülün    schedule 13.01.2019