Сохранение зависимостей Декомпозиция с функциональной зависимостью не появляется в подсхеме - PullRequest
0 голосов
/ 24 января 2019

Я читаю учебник, содержащий следующий вопрос:

Given the following relation R {A,B,C,D,E,H} and the functional 
dependencies AB->CD, BC->D, C->H, D->HB, CH->AE
does the following decomposition is dependency preserving?
R1(A,C,E,H) R2(B,D,H), R3(A,B,C), R4(B,C,D)

Ответ учебника состоял в том, что он фактически сохраняет функциональную зависимость, где я думал, что это не из-зазависимость AB->D
Чтение этого ответа еще более запутало его, потому что это выглядело как
if there is a key inside one of the sub relations, the decomposition must be dependency preserving
Контрпример, который я не мог оспорить, это
For the two rows a1 b1 c1 d1 h1 e2 and a2 b1 c2 d2 h2 e2
все FD R удерживаются, но теперь R3 имеет
a1 b1 c1 and a2 b1 c2
, а R4 имеет b1 c1 d1 and b1 c2 d2,
, соединяющий R3 и R4 на B, дает a1 b1 c2 d2, что нарушаетAB->D FD

1 Ответ

0 голосов
/ 24 января 2019

В этом примере зависимости сохраняются, как указано в комментариях AntC.

Условие наличия ключа-кандидата в исходном отношении в разложенном отношении не является гарантией сохранения зависимостей.

Рассмотрим, например, отношение R(A B C D E) с зависимостями {A → E, BCE → A, D → C} и разложение R1(A B D), R2(A E), R3(C D). Отношение R1 содержит один из ключей-кандидатов исходного отношения ({ABD}), но при декомпозиции зависимость {BCE → A} не сохраняется.

Тот факт, что один из исходных ключей присутствует в одном разложенном отношении , может быть признаком того, что разложение не имеет потерь, но в целом нет никакой связи между разложением без потерь и сохранением зависимостей (см., Например, это ). Однако есть результат, который каким-то образом связывает два свойства, как показано в ответе на указанный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...