2014-01-24 3 views
3

Согласно примеру википедии, следующий пример не BCNF, потому что есть перекрывающие возможные ключи (имя и работа, а также название и исполнитель)разницы между 2НФОМ и НФКАМИ

Name Work  Contractor 
John Plumber  Plumber industries 
Ryan Plumber  Plumber industries 
Ryan Elektrician Electro industries 

Однако не эта таблица также не в 2NF? Учтите, что имя и работа составляют первичный ключ, тогда рабочий может быть получен только из работы, поэтому база данных должна быть разделена?

Если мое утверждение верно, может ли кто-нибудь предоставить мне (легкий) пример базы данных, которая не находится в BCNF, но является 2NF?

+0

http://dba.stackexchange.com/ – Mihai

+0

2НФ должен сделать с частичными ключевыми зависимостями, а не с перекрытия возможных ключей. –

ответ

1

не эта таблица также не в 2NF?

Нет, это не нарушает 2NF. 2NF требует, чтобы каждый атрибут nonprime полностью зависел от каждого ключа кандидата. Поскольку таблица в вашем примере не имеет атрибутов nonprime, она не может нарушать 2NF. Это существенная разница между BCNF и 2NF/3NF. BCNF требует, чтобы каждый атрибут полностью зависел от каждого ключа. Для нижних нормальных форм 2NF и 3NF требуется только нестандартные атрибуты.

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

0

Таблица находится в 2NF. В таблице может быть много ключей-кандидатов. В нашем примере у нас два. Следовательно, нет никаких неключевых атрибутов. Это означает, что все атрибуты prime/key. Работа определяет Подрядчика однозначно, в то же время Подрядчик также определяет работу однозначно.

Смежные вопросы