2010-11-22 3 views
1

Пытаясь узнать о нормализации баз данных, я смущен следующей таблице:Является ли эта таблица в 2NF?

 
Name  Date   Organisms 
aging  1984-07-13 human 
aging  1984-07-13 worm 
wrinkle 1987-08-15 human 
wrinkle 1987-08-15 mouse 
hairy  1990-09-30 mouse 

Книга Я использую подарки это как пример таблицы в 1NF. Однако, прочитав статьи Википедии о 1NF, 2NF и 3NF, я немного смущен.

Насколько я могу судить, эта таблица имеет два ключа-кандидата: {Name, Organisms} и {Date, Organisms}. Согласно Википедии (link text):

Таблица 1NF находится в 2NF тогда и только тогда, когда все ее атрибуты без перфораций функционально зависят от всего каждого ключа-кандидата. (Атрибут non-prime - это тот, который не принадлежит ни одному ключу-кандидату.)

По этому определению для «атрибута без первичности» мне кажется, что эта таблица не имеет атрибутов без первичности, поскольку каждое поле принадлежит хотя бы одному из двух ключей-кандидатов. Если нет атрибутов non-prime, то (поскольку эта таблица находится в 1NF), кажется, что эта таблица находится в 2NF по определению Википедии.

Однако я признаю, что эта таблица плохо разработана и подвержена обновлению ошибок, поэтому я думаю, что я должен что-то делать с ошибкой в ​​логике. Если кто-то может объяснить, в какой нормальной форме находится эта таблица, и/или где мои рассуждения ошибочны, я был бы очень признателен.

+0

dont think {Date, Organisms} - это ключ-кандидат, потому что это означает, что у вас не может быть разных имен на ту же дату, организм. но {name, организм} выглядит так, как будто может ... вопрос в том, зависит ли дата от имени или организма – Diogo

+0

Здесь нет никакого противоречия. Быть в 2NF означает, что он также находится в 1NF. Фактически любое отношение находится в 1NF по определению. Поэтому кажется, что книга верна. – sqlvogel

+1

Wiki - это выгребная яма с постоянно меняющимися «определениями», написанными любителями. Не тратьте впустую свое время, это смутит вас и затруднит ваш прогресс. – PerformanceDBA

ответ

1

Если вы правы, что нет непервичных атрибутов, то соответствующее отношение будет не менее 2NF. Однако угадать, какие ключи и зависимости могут применяться только на основе набора имен атрибутов, всегда будет очень субъективным упражнением. Такие примеры действительно полезны, если вы определите, какие зависимости должны быть удовлетворены.

Я рекомендую вам не полагаться на все, что вы читаете в Википедии. Это не хороший образовательный инструмент. Получите приличную книгу на эту тему, например, Крис Дат или Дэвид Майер.

+3

Книга Майера * Теория реляционных баз данных * доступна онлайн. http://web.cecs.pdx.edu/~maier/TheoryBook/TRD.html –

Смежные вопросы