0

Я следующий пример, который я пытаюсь понять, где:Почему дается пример не в 3NF?

R = {A, B, C} 
FD = {A->B, B->C, AB->C} 

Prime ключ A.

Я знаю, что этот пример находится в 2NF, потому что у простого ключа есть только один элемент, но я не понимаю, почему этот пример не в 3NF.

C функционально зависит от AB, но B не является ключом или частью ключа. Это причина, почему это не в 3NF.

Благодаря

+1

* C функционально зависит от AB, но B не является ключом или частью ключа. * И поэтому это не 3-я нормальная форма. В 3-й нормальной форме объект зависит от ключа, всего ключа и всего лишь от ключа, поэтому помогите мне Codd. –

ответ

3

В отношении R, каноническое покрытие множества зависимостей FD является:

1. A → B 
2. B → C 

Причина в том, что зависимость A B → C может быть получена из других:

1. A → B (given) 
2. AB → B (by enrichment of A → B) 
3. AB → C (by transitivity of AB → B and B → C) 

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

A+ = A 
A+ = AB (by using A → B) 
A+ = ABC (by using B → C) 

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

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

Таким образом, схема не в НФБК, ни в 3NF, поскольку существует функциональная зависимость B → C, в котором определитель B не является ключевым, и C не является простым атрибутом. Наконец, разлагая схемы в двух отношениях:

R1 < (A B), { A → B } > 

R2 < (B C), { B → C } > 

мы имеем два соотношения, которые и в 3NF и в НФКАХ, и это разложение сохраняет функциональные зависимости от исходной схемы.