#sql #database #entity-relationship
#sql #База данных #сущность-отношение
Вопрос:
2NF имеет следующее определение
Таблица находится в 2NF тогда и только тогда, когда она находится в 1NF и ни один не простой атрибут не зависит от любого правильного подмножества любого ключа-кандидата таблицы.
Мой вопрос в том, почему зависимый атрибут должен быть не простым? Означает ли это, что основной атрибут может зависеть от правильного подмножества ключа-кандидата? Почему в этом случае это не приведет к избыточности? Я думаю о каком-то примере отношения
{a,b,c,d}, if we assume {a,b}, {b,c} are two candidate keys and FD is a->c
Комментарии:
1. Причина не-простого требования заключается в том, что каждый простой атрибут в составном ключе тривиально зависит от надлежащего подмножества ключа, а именно от него самого.
Ответ №1:
Эта цитата взята из Википедии (?), И я подозреваю, что она использует ссылку на Codd в большей степени, чем для Cj Date. Кодд изобрел концепцию первичного ключа, но теория отношений полностью отошла от идеи «первичного».
Вот более свежее определение Date из его словаря реляционных баз данных:
Relvar [переменная отношения]
R
находится в 2NF тогда и только тогда, когда каждый неключевой атрибутA
ofR
таков, что набор{ A }
неприводимо зависит от каждого ключа ofR
— эквивалентно, тогда и только тогда, когда для каждого нетривиального FDX -> Y
, который содержит inR
, (a)X
является суперключем или (b)Y
является подразделом или (c)X
не является подразделом.
Обратите внимание, что этот вопрос может быть закрыт для SO, потому что, как указано в его словаре, 2NF не особенно интересен на практике (он включает его только для исторического интереса).