Верно ли, что база данных по умолчанию является 2NF, если таблица имеет только 1 первичный ключ?

то есть есть таблица только с 1 первичным ключом (без составных ключей). Это 2NF по умолчанию? Предположим, что это уже 1NF


person Evil Washing Machine    schedule 19.04.2012    source источник
comment
Patno, PatName, appNo, time, доктор говорит, что Patno является первичным ключом. разве это не 2NF? Частичных зависимостей ключей нет.   -  person Evil Washing Machine    schedule 19.04.2012
comment
Отвечает ли это на ваш вопрос? когда в таблице 1NF нет составные ключи-кандидаты находятся во 2NF?   -  person philipxy    schedule 17.02.2021


Ответы (4)


http://en.wikipedia.org/wiki/Вторая_нормальная_форма

в вашем примере PatNo не является первичным ключом, поскольку PatNo может посещать более одного врача или иметь более одного appNo.

person Randy    schedule 19.04.2012
comment
может там только один врач? Ваш ответ действительно не помогает вообще. - person Evil Washing Machine; 20.04.2012

Грубо говоря, таблица находится во 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НФ.

person Mike Sherrill 'Cat Recall'    schedule 19.04.2012
comment
Нет, в вашем вопросе говорится: является ли [таблица с первичным ключом из одного столбца] 2NF по умолчанию? Велика вероятность, что многие люди вспомнят кое-что о первичном ключе с одним столбцом и забудут часть о 1NF. - person Mike Sherrill 'Cat Recall'; 21.04.2012

Думаю теперь понял.

В моем примере, если есть более 1 врача, то врач также частично зависит от номера пациента, потому что врач должен видеть правильного пациента. Это просто сбивает с толку, потому что Doctor также транзитивно зависит от patNo через appNo.

person Evil Washing Machine    schedule 20.04.2012
comment
Нет, в вашем примере нет частичной ключевой зависимости между врачом и номером пациента. Транзитивные зависимости не имеют ничего общего с 2NF. - person Mike Sherrill 'Cat Recall'; 21.04.2012

Может быть, этот поздний ответ может быть полезен для других. Нас учили (возможно, ошибочно), что нерелевантные данные также подпадают под 2NF. Таким образом, animal(phylum, class, order, family, genus, species, greek_phoneme) не будет во 2NF, потому что греческие фонемы не имеют ничего общего с животными.

person redeveloper    schedule 07.04.2015