Можете ли вы иметь составной ключ в третьей нормальной форме (3NF)?

Я новичок в базах данных, и в настоящее время я работаю над заданием, в котором я должен создать ERD из табличных данных, которые были нормализованы до 3NF.

Проблема в том, что у меня есть составной ключ из 1NF, но все неключевые атрибуты зависят от обоих первичных ключей. Теперь я пытаюсь перевести его из 2NF в 3NF, и я не уверен, смогу ли я получить составной ключ.


person Mcar49    schedule 23.11.2014    source источник
comment
Бесполезно нормализовать до 2nf, а затем до 3nf. Просто используйте один из алгоритмов декомпозиции 3nf без потерь. (Существуют 3nf-разложения отношения, которые не являются 3nf-разложениями ни одного из его 2nf-разложений.)   -  person philipxy    schedule 24.11.2014


Ответы (1)


Вы можете иметь составной ключ в любой нормальной форме.

На самом деле, когда вы записываете функциональные зависимости в форме A->B, и A, и B относятся к наборам атрибутов. Вот почему они в верхнем регистре; заглавные буквы обозначают множества в теории множеств.

... все неключевые атрибуты, по-видимому, зависят от обоих первичных ключей...

Есть только один первичный ключ. В вашем случае этот первичный ключ имеет более одного атрибута.

Однако может быть более одного ключа-кандидата. При нормализации каждый ключ-кандидат одинаково важен. Например, если вы пытаетесь идентифицировать транзитивные зависимости, вам нужно искать транзитивность по отношению к каждому ключу-кандидату, а не только к первичному ключу.

person Mike Sherrill 'Cat Recall'    schedule 23.11.2014