то есть есть таблица только с 1 первичным ключом (без составных ключей). Это 2NF по умолчанию? Предположим, что это уже 1NF
Верно ли, что база данных по умолчанию является 2NF, если таблица имеет только 1 первичный ключ?
Ответы (4)
http://en.wikipedia.org/wiki/Вторая_нормальная_форма
в вашем примере PatNo не является первичным ключом, поскольку PatNo может посещать более одного врача или иметь более одного appNo.
Грубо говоря, таблица находится во 2НФ тогда и только тогда, когда она
- в 1NF и
- нет частичных ключевых зависимостей.
Это не совсем то же самое, что сказать, что таблица с первичным ключом из одного столбца находится во 2NF. Такой стол
person_id full_name phones
--
-43 Ericka Cimini 555-222-1515
555-232-6100
-18 Julio Martina 555-123-4567
имеет первичный ключ из одного столбца ("person_id"), но не входит в 1NF. (Подробности см. в википедии.) быть в 2НФ.
Думаю теперь понял.
В моем примере, если есть более 1 врача, то врач также частично зависит от номера пациента, потому что врач должен видеть правильного пациента. Это просто сбивает с толку, потому что Doctor также транзитивно зависит от patNo через appNo.
Может быть, этот поздний ответ может быть полезен для других. Нас учили (возможно, ошибочно), что нерелевантные данные также подпадают под 2NF. Таким образом, animal(phylum, class, order, family, genus, species, greek_phoneme)
не будет во 2NF, потому что греческие фонемы не имеют ничего общего с животными.