Вопрос про третью нормальную форму

Следующая таблица:

EmpId  State   Zip
1       FL   342008
2       CA   342001

не находится в 3-й нормальной форме, потому что состояние транзитивно зависит от первичного ключа (EmpId).

Итак, если я сломаю это так: (EmpId, State) (State, PIN)

it's in 3NF.

Я также мог бы разбить его так: (EmpId,State) (EmpId,PIN), и он снова будет в 3NF.

Но во втором случае имеет место избыточность информации, т.е.

1  FL
2  FL

1 342008
2 342008

Какое свойство нарушает второе разложение?


person simplfuzz    schedule 18.04.2009    source источник
comment
Под PIN-кодом вы имеете в виду столбец Zip?   -  person Calvin    schedule 18.04.2009
comment
Это домашнее задание? Если это так, пожалуйста, отметьте это как таковое.   -  person overslacked    schedule 18.04.2009
comment
Это не домашнее задание. Я изучаю базы данных путем самообучения.   -  person simplfuzz    schedule 19.04.2009


Ответы (3)


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

EmpId Zip
1     342008

Zip    State
342008 FL

Всегда думайте о том, что от чего зависит. Конечно, уже существует стандартный процесс нормализации на основе теории множеств. Это тоже может вам помочь.

person Esteban Küber    schedule 18.04.2009

Это не относится напрямую к вашему вопросу, но, строго говоря, столбец штата является избыточным, поскольку его можно получить из почтового индекса (хотя вы показываете шестизначные почтовые индексы, которые не являются стандартными в США. ) Вы можете разбить таблицу по EmpID и ZIP, оставив состояние отдельно в таблице поиска.

person Dan Breslau    schedule 18.04.2009

Чтобы напрямую ответить на заданный вопрос, нарушенным свойством является FFD (полная функциональная зависимость от ключа).

person Peter Wone    schedule 06.09.2009