Я пытаюсь сделать свою базу данных в 3NF, я смущен одной вещью. В приведенном ниже объяснении я не понимаю, как Zip может быть первичным ключом таблицы адресов, если zip может произойти более одного раза. В таблице Student_Detail повторная запись zip прекрасна, но в качестве первичного ключа он не потеряет свое единство?Третья нормальная ограниченность формы
Третья нормальная форма (3NF)
Третья нормальная форма применяется, что каждый не-простой атрибут таблицы должны зависеть от первичного ключа, или мы можем сказать, что не должно быть так, что не-премьер атрибут определяется другим атрибутом non-prime. Поэтому эту переходную функциональную зависимость следует удалить из таблицы, а также таблицу, которая должна быть во второй нормальной форме. Например, рассмотрим таблицу со следующими полями.
Student_Detail Таблица:
student_id - Student_name - DOB - Улица - Город - государство - Zip
В этой таблице student_id является первичный ключ, но улица, город и состояние зависит от Zip. Зависимость между zip и другими полями называется транзитивной зависимостью. Следовательно, чтобы применить 3NF, нам нужно переместить улицу, город и штат в новый стол, а Zip - в качестве первичного ключа.
Новый Student_Detail Таблица:
student_id - Student_name - DOB - Zip
Address Table:
Zip - Улица - город - государство
Преимущество удаления transtive зависимость есть,
Объем дублирования данных уменьшается. Достигнута целостность данных.
Пример: http://www.studytonight.com/dbms/database-normalization.php
Они только предполагают, что данный почтовый индекс имеет один город, улицу и штат. Что на самом деле не верно в отношении почтовых индексов. Но даже при этом предположении «зависимость между zip и другими полями называется транзитивной зависимостью» плохо сформулирована, и поэтому их характеристика 3NF на ней. Это плохой ресурс.Найдите учебник/презентацию/курс колледжа/университета. Многие из них в сети. – philipxy