Проверка 3-й нормальной формы из функциональных зависимостей - PullRequest
1 голос
/ 14 марта 2011

У меня есть вопрос об определении, находится ли отношение в 3-й нормальной форме на основе функциональных зависимостей.

R = {A,B,C,D,E}
A -> B
BC -> E ED -> A

Исходя из этого, я определил ключи-кандидаты: {ACD},{BCD},{CDE}
Википедия говорит, что отношение находится в 3-й нормальной форме, если для каждой функциональной зависимости X-> Y оно соответствует хотя бы одному из следующих требований: 1. Y является подмножеством X 2. X - суперключ Y является подмножеством K для некоторого ключа K

Моя работа: A -> B удовлетворяет 3 из-за ключа {BCD}, BC->E удовлетворяет 3 из-за {CDE}, а CD -> A удовлетворяет 3 из-за {ACD}.

Это правильный способ интерпретации этих правил?

1 Ответ

1 голос
/ 14 марта 2011

A -> B выражает функциональную зависимость.Но эти

R 1 = { A , B}
R 2 = { B, C , E}
R 3 = { E, D , A}

выражают отношения.(Я предполагаю, что вы имели в виду, что мы принимаем их как отношения, которые вы получили от разложения R.)

Нормальные формы применяются к отношениям;они не относятся к функциональным зависимостям.Нет смысла говорить «A -> B в 3NF» или «A определяет B в 3NF».

Итак, R 1 = { A , B} - это отношение.Он не «удовлетворяет правилу 3 из-за ключа {B, C, D}».Не может, потому что {B, C, D} не в R 1 .

Эти правила имеют отношение к ключам-кандидатам отношений, возникающих в результате разложения R, а не к ключам-кандидатам самого R.

Позже.,. Я понял, что сделал неверное предположение.Вы пытаетесь оценить R, а не разложить его.В этом случае ваши рассуждения верны, а R в 3NF.Можно также сделать вывод, что R находится в 3NF, потому что нет непростых атрибутов.Поскольку нет простых атрибутов, правая часть каждого FD должна быть частью ключа-кандидата.

Но R отсутствует в BCNF.(Или 4NF, или 5NF.) Вы можете это исправить?

...