Нормализация через BCNF основана на функциональных зависимостях. Это не, основанный на именах столбцов, хотя, по-видимому, это то, чему учат студентов университетов на основе их вопросов о SO.
Я бы предположил, что «voter_id» является суррогатным ключом, но это всего лишь образованные догадки. (И это не - хорошая основа для разработки баз данных.) Если это суррогатный ключ, то «voter_id» уникален, поэтому у нас есть этот FD.
- voter_id -> voter_name, residential_address, current_city, current_state, current_postal_code
Вы сказали, "Почтовый код уникален для каждого города и государства...", Так что у нас есть этот FD.
- current_city, current_state -> current_postal_code
Наконец, вы сказали, ".. Каждый адрес имеет только один почтовый индекс".
Основываясь на моем опыте, я думаю, маловероятно, что вы имели в виду живое_адрес -> current_postal_code. Я думаю, вы имели в виду, что home_address, current_city, current_state -> current_postal_code. Но мы уже знаем, что current_city, current_state -> current_postal_code, поэтому это не говорит нам ничего полезного о функциональных зависимостях.
Если есть только эти две функциональные зависимости, то единственным кандидатом для «избирателей» является «voter_id».
2NF связан с частичными зависимостями ключевых слов. Только ключ-кандидат одиночный столбец. Поэтому частичные ключевых зависимостей не существует. Так что «избиратели» находятся в 2NF.
3NF занимается транзитивными зависимостями. Есть хотя бы один: voter_id -> current_city, current_state и current_city, current_state -> current_postal_code. Так что «избиратели» не находятся в 3NF.
Является ли 'voter_ID' уникальным? – Pogrindis
Я думаю, что это 1nf, потому что город, штат и почтовый код могут быть извлечены, и вы не ссылаетесь на какую-либо другую таблицу, поэтому она не может быть даже 2nf –
Я должен согласиться с @ cricket_007 для уточнения: http: // i.imgur.com/Nz8cge9.jpg – Pogrindis