Мне трудно понять 3 нормальную форму.Когда это будет в 3NF?
3 NF: 2 NF + Нет переходы
Так, например, для: Если у меня есть,
A -> B
B -> C
Тогда выше является своим родом переходных отношений и, следовательно, не будет в 3 NF ? Я правильно понимаю это?
Но в этом ответе What exactly does database normalization do?, по paxdiablo
, он говорит,
Third normal form (3NF) - 2NF and every non-key column in a table depends on nothing but the key.
В соответствии с этим, он будет в 3 НФ. Где я иду не так?
Это одна из тех простых понятий, что тексты слишком сложны. Прочтите следующее: http://www.essentialsql.com/get-ready-to-learn-sql-11-database-third-normal-form-explained-in-simple-english/ –
Является ли B ключевым столбцом или не? Если это не один из ключей-кандидатов, то B⟶C FD не зависит от ключа таблицы. Если это ключ-кандидат, то оба B⟶A и A⟶C также являются функциональными зависимостями (оба A и B являются ключами-кандидатами, поэтому оба определяют C, а каждый определяет другой), или A⟶B - это не ключевая зависимость. Если единственными функциональными зависимостями являются те, которые показаны, то вы не можете иметь как A, так и B - ключ-кандидат, поэтому отношение не может быть в 3NF или BCNF. –
Каковы все столбцы вашего примера? Что такое * все * FD? Должны ли эти два быть минимальным покрытием? Т.е. есть ли в таблице ФД те, которые должны присутствовать, когда эти два? Эти два не могут быть * единственными *, потому что если эти FDs удерживают, то A ⟶ C также выполняется. – philipxy