Вопрос о 3-й нормальной форме - PullRequest
0 голосов
/ 18 апреля 2009

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

EmpId  State   Zip
1       FL   342008
2       CA   342001

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

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

это в 3NF.

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

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

1  FL
2  FL

1 342008
2 342008

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

Ответы [ 3 ]

1 голос
/ 18 апреля 2009

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

EmpId Zip
1     342008

Zip    State
342008 FL

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

0 голосов
/ 06 сентября 2009

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

0 голосов
/ 18 апреля 2009

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

...