Рассмотрим следующий набор 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
  1. Удалить D из BC-> DE

    A-> BCD, BC-> E, B-> D, D-> A

  2. Удалить D из A-> BCD

    A-> BC, BC-> E, B-> D, D-> A

  3. Разложить A-> BC

    A-> B, A-> C, BC-> E, B-> D, D-> A

  4. Удалить 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

Кто-нибудь, пожалуйста, исправьте мой ответ, если я ошибаюсь.

Другие вопросы по тегам