BCNF: ищет пример, который на самом деле использует суперключ вместо ключа-кандидата - PullRequest
0 голосов
/ 20 января 2019

Определение нормальной формы Бойса-Кодда гласит, что определители всех нетривиальных функциональных зависимостей должны быть суперключами.

Все примеры отношений в BCNF, которые я нашел, используют ключи-кандидаты. Я ищу пример, который на самом деле имеет суперключ в качестве определителя, который не является ключом кандидата.

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

Допустим, у нас есть связь с ключом-кандидатом и дополнительная функциональная зависимость с суперключом в качестве определителя.

R1(A,B,C)
{A}
A,B -> C

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

Попытка создать другой пример с двумя подходящими ключами также бесполезна.

R2(A,B,C,D)
{A,B},{B,C}
A,B,C -> D

Это та же проблема, что и выше.

Мне действительно интересно, есть ли хотя бы пример без ключей-кандидатов. Но почему определение должно быть шире, чем необходимо? Или определения эквивалентны, поскольку зависимости всегда могут быть преобразованы?

1 Ответ

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

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

Вместокогда мы рассуждаем о конкретной схеме отношений, мы обычно имеем только подмножество всех функциональных зависимостей (поскольку их число может быть слишком большим, возможно, экспоненциальным с количеством атрибутов).Конкретный набор используемых зависимостей, обычно обозначаемый буквой F, обладает особым свойством: это покрытие всех зависимостей, содержащихся в отношении, то есть из него мы можем получить все зависимостиотношение, применяя всеми возможными способами набор аксиом, называемых аксиомами Армстронга.

F, набор зависимостей, указанных вместе с атрибутами в реляционной схеме, можно задавать различными способами: например,в упражнении они могут быть предоставлены в качестве входных данных для упражнения, в реальном дизайне базы данных они могут описать набор ограничений, которые считаются важными для моделирования определенной области реального слова и т. д.

, даже если они извлечены иззнания о ситуации, которая будет смоделирована с помощью базы данных, они могут содержать зависимости, подразумеваемые другими уже предоставленными, или, возможно, могут содержать избыточные атрибуты и т. д.

По этим причинам это считается важным первым шагом в нормализации кнайти каноническийпокрытие заданного набора зависимостей, то есть покрытие, составленное из набора зависимостей, которые: а) имеют только один атрибут в правой части;б) не имеют лишних атрибутов в левой части (то есть атрибутов, которые можно удалить, сохраняя свойство быть прикрытием);c) не имеют избыточных зависимостей (то есть зависимостей, которые могут быть получены из других через аксиомы Армстронга).

Теперь давайте рассмотрим общее определение BCNF:

Схема отношений Rнаходится в BCNF тогда и только тогда, когда для каждой нетривиальной зависимости X → Y F + , X является суперключем.

Обратите внимание, что речь идет о зависимостях вF + , который является замыканием для F, другими словами, который содержит all зависимостей, содержащихся в R и полученных каким-либо образом из F. Так что еслиотношение R имеет ключ-кандидат X K , очевидно, не только X K → T, например, имеет место, но для всех надмножеств S X K мыбудет иметь то, что S → T выполняется, и поэтому определение нормальной формы должно разрешить эти зависимости.

Теперь, из общего определения BCNF, можно доказать следующееТеорема, которая каким-то образом упрощает ее (и делает эффективным тест, проверяющий, есть ли отношение в BCNF):

Теорема: схема отношений Rнаходится в BCNF тогда и только тогда, когда для каждой нетривиальной зависимости X → Y от F суперключ имеет значение X.

Видите разницу?Сейчас мы говорим о F, а не о F + .

И эта теорема имеет следующее следствие:

Следствие: схема отношений R, в котором F является каноническим покрытием , находится в BCNF тогда и только тогда, когда для каждой нетривиальной зависимости X → A от F, X является ключом-кандидатом.

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

...