Как я могу определить ключи-кандидаты в этом отношении

У меня есть отношение R(ABCDEF) и функциональные зависимости F{AC->B, BD->F, F->CE}

Я должен найти все ключи-кандидаты для отношения (аксиомы Армстронга).

Я сделал это:

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

От F->CE => F->C and F->E

And then:
 1. BD->F
 2. F->E
 3. BD->E
 4. BD->EF
 5. BD->BD
 6. BD->BDEF
 7. BD->F
 8. F->CEF
 9. BD->CEF     => BD->BCDEF

Теперь я пытаюсь поставить A справа от BD->BCDEF, чтобы BD мог стать ключом-кандидатом.

Было бы здорово, если бы кто-то мог помочь.

РЕДАКТИРОВАТЬ:

 1. ABD->ABCDEF
 2. ACD->BD
 3. ACD->ABD    => AC->B and ACD->ABCDEF => BD->ABCDEF

person user2128702    schedule 10.07.2014    source источник
comment
Итак, вы уже решили, что BD является ключом-кандидатом, и пытаетесь выяснить, как это доказать? FWIW, это не так, и BD на самом деле не является ключом-кандидатом в R.   -  person Mike Sherrill 'Cat Recall'    schedule 10.07.2014
comment
Я не пытаюсь это доказать! Я уже сделал это, используя аксиомы Армстронга. Я использовал Transitivity, Augmentation, Reflexitivitity, Union, Decomposition и Pseudo Transitivity. Я ищу другие ключи-кандидаты! Как вы думаете, почему BD не является ключом-кандидатом?   -  person user2128702    schedule 10.07.2014
comment
BD не является ключом-кандидатом, потому что BD не может определить A.   -  person Mike Sherrill 'Cat Recall'    schedule 10.07.2014
comment
@MikeSherrill'CatRecall' Вау, я отредактировал свой вопрос, но он не обновился! Это странно. Сейчас буду редактировать! Извините за заблуждение.   -  person user2128702    schedule 10.07.2014


Ответы (2)


Последний шаг в вашей (отредактированной) логике

AC->B and ACD->ABCDEF, therefore BD->ABCDEF

Похоже, вы заменили AC на B в левой части. Похоже, вы мыслите арифметическими терминами, а не правилами логического вывода Армстронга. Не существует правила вывода, которое гласит: «Если AC->B, то везде, где появляется AC, вы можете заменить AC на B». (Иногда выглядит так и происходит, но это не так.) AC и B не равны и не эквивалентны.

Представьте, что имена людей уникальны. Тогда «имя» будет определять «рост», а «имя» будет определять «вес». Но вы не можете заменить имя на высоту; нельзя сказать, что "рост" определяет "вес". Условия не равны, и они не эквивалентны.

BD не является ключом-кандидатом, но ABD им является. (Есть другие.)

person Mike Sherrill 'Cat Recall'    schedule 10.07.2014

Эмпирические правила:

An Attribute appearing only on the left hand side in your FDs is in all keys.
An Attribute not appearing in any of your FDs is in all keys.
An Attribute only appearing on the right hand side in your FDs is not in any key.

A candidate key is the left hand side of a derived FD on which all attributes depend.

Пример:

R(ABCDE), (A->C, AB->D, D->B)

E не появляется ни в одном FD. E во всех тональностях. А появляется только с левой стороны. А во всех тональностях. C появляется только справа. C не находится ни в каких тональностях.

Ключи будут включать атрибуты:

AE

Найдите зависимости со всеми возможными ключами от AE:

A->C
A->AC    (X->XY axiom)
E->E
AE->ACE  (from previous 2 FDs)

Не все атрибуты справа, поэтому AE не ключ, а только часть всех ключей.

Начните комбинировать AE с BCD и посмотрите, что получится:

ADE->ABCDE   (as D->B, and by X->XY axiom D->BD. This is a key, by last rule of thumb)
ACE->ACE
ABE->ABCDE (AE->ACE, B->BD from axioms, this is a key)
ABCE->ABCDE, ABDE->ABCDE (superkeys of ABE, so ignore)
ACDE->ABDCE (superkey of ADE)

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

person rask004    schedule 02.04.2015