Рассмотрим следующий набор F функциональных зависимостей на схеме отношений r(A,B,C,D,E,F):
Я безуспешно пытался связаться с моим инструктором, и я действительно хочу понять этот процесс, но независимо от того, сколько я читаю материала, я не могу вписаться в мой маленький мозг. Может кто-нибудь, пожалуйста, помогите мне со следующими вопросами?
A-->BCD
BC-->DE
B-->D
D-->A
а. Вычислить B +.
Я считаю, что это следующее. Это кажется правильным?
B + обозначает закрытие B.
B -> D
B + = {BD}
D -> A
B + = {ABD}
A -> BCD
B + = {ABCD}
До н.э. -> DE
B + = {ABCDE}
Все атрибуты отношения могут быть найдены с помощью B. Таким образом, B является первичным ключом отношения.
б. Докажите (используя аксиомы Армстронга), что AF - суперключ.
Я не понимаю, что делать с F, потому что это не проявляется в вышеуказанных отношениях.
с. Вычислить каноническое покрытие для вышеуказанного набора функциональных зависимостей F; дайте каждый шаг вашего происхождения с объяснением.
д. Дайте 3NF разложение r на основе канонического покрытия.
3 ответа
Часть C: каноническая обложка
A->BCD, BC->DE, B->D, D->A
Удалить D из BC-> DE
A-> BCD, BC-> E, B-> D, D-> A
Удалить D из A-> BCD
A-> BC, BC-> E, B-> D, D-> A
Разложить A-> BC
A-> B, A-> C, BC-> E, B-> D, D-> A
Удалить C из BC-> E
?: B-> D-> A-> C => B-> C => B-> BC-> E => B-> E?: B +:: B-> BD-> ABD-> ABCD-> ABCDE (E является элементом B+) A->B, A->C, B->E, B->D, D->A
Все атрибуты отношения могут быть найдены с помощью B. Таким образом, B является первичным ключом отношения.
Нет. Если бы B мог определить все атрибуты отношения, B был бы ключом-кандидатом. Может быть несколько ключей-кандидатов, и нет никаких формальных причин для идентификации одного ключа-кандидата как "первичного", а других как "вторичного".
Но B не определяет все атрибуты отношения. Это не определяет F.
Я не понимаю, что делать с F, потому что это не проявляется в вышеуказанных отношениях.
Говоря неформально, если атрибут не отображается справа от каких-либо функциональных зависимостей, он должен быть частью каждого суперключа.
r = {ABCDEF}
Чтобы доказать, что AF является суперключом (или ключом-кандидатом), вычислите замыкание AF для отношения R = {ABCDEF}. Используйте те же FD выше.
1 уменьшая каждый FD до единого att справа
A-> B A-> C AD BC -> D BC -> E B-> D D-> A
2 удаления посторонних атрибутов:
BC -> D уменьшается до B-> D, а BC -> E уменьшается до B-> E, так как C является посторонним в обоих случаях.
3 удаления избыточных FD:
A-> B, A-> C, B-> D, B-> E, D-> A
Кто-нибудь, пожалуйста, исправьте мой ответ, если я ошибаюсь.