Может ли ключ-кандидат подразумеваться другими атрибутами?

Скажем, у меня есть реляционная схема R(A,B,C,D,E) и одна функциональная зависимость A->BCDE. Поскольку замыкание A равно ABCDE (т. е. каждому атрибуту), это суперключ; поскольку это наименьший ключ, не содержащий другого ключа, он также является ключом-кандидатом.

Что, если мы затем добавим FD B->A — означает ли это, что B является ключом-кандидатом, или это означает, что A больше не является ключом-кандидатом?

Мой наставник работал над примером и сказал, что способ определить ключи-кандидаты из набора FD состоит в том, чтобы найти любой атрибут, который не появляется в правой части любого FD (т. е. любой (набор) атрибутов, который не соответствует действительности). не подразумевается никакими другими атрибутами). Обязательно ли это так? Если атрибут подразумевает все остальные, но сам подразумевается некоторым другим набором атрибутов, может ли он быть ключом-кандидатом?


person MisterM2402    schedule 19.11.2013    source источник


Ответы (2)


Если A->BCDE и B->A, то A->B->A. Следовательно, A и B являются кандидатами ключей R.

Предположим, у вас есть отношение R и набор зависимостей F. Если вы должны вывести ключи R только из того, что находится в F, то любой атрибут R, который не появляется в RHS какой-либо зависимости в F, должен быть prime (т. е. часть ключа-кандидата). Я полагаю, именно это имел в виду ваш учитель. Это не означает, что основные атрибуты могут никогда появляться в RHS. Они могут подойти, если есть несколько ключей-кандидатов.

person nvogel    schedule 22.11.2013
comment
Да, я думаю, она имела в виду атрибут prime. Спасибо за ответ, это именно то, что я хотел знать. - person MisterM2402; 22.11.2013

Может ли ключ-кандидат подразумеваться другими атрибутами?

Ключи-кандидаты подразумеваются зависимостями. Вероятно, вы все-таки это имели в виду.

Мой наставник работал над примером и сказал, что способ определить ключи-кандидаты из набора FD состоит в том, чтобы найти любой атрибут, который не появляется в правой части любого FD (т. е. любой (набор) атрибутов, который не соответствует действительности). не подразумевается никакими другими атрибутами).

Это не определяет ключи-кандидаты. Он определяет столбцы, которые должны быть частью каждого ключа-кандидата.

person Mike Sherrill 'Cat Recall'    schedule 22.11.2013
comment
Я имел в виду, что если, например, AB был ключом-кандидатом, а у вас есть C -> AB, то этот ключ-кандидат подразумевается другими атрибутами (C). Возможно, я использовал неправильную терминологию... В любом случае спасибо за ответ. Я очень ценю это. - person MisterM2402; 22.11.2013