2016-03-01 2 views
-2

Избиратель (voter_id, voter_name, жилой_адрес, current_city, current_state, current_postal_code).СУБД НОРМАЛИЗАЦИЯ Вторая форма нормализации

Почтовый индекс является уникальным для каждого города и штата, и каждый адрес имеет только один почтовый индекс.

В нормативных условиях избиратель находится в 2nf или 3nf?

+0

Является ли 'voter_ID' уникальным? – Pogrindis

+0

Я думаю, что это 1nf, потому что город, штат и почтовый код могут быть извлечены, и вы не ссылаетесь на какую-либо другую таблицу, поэтому она не может быть даже 2nf –

+0

Я должен согласиться с @ cricket_007 для уточнения: http: // i.imgur.com/Nz8cge9.jpg – Pogrindis

ответ

0

Чтобы проверить свою высшую нормальную форму, следить за этим основные шаги:

  1. Сначала переименовать атрибуты «Избиратель» для простоты. voter_id как "А" voter_name как "B" residential_address как "C" current_city как "D" current_state как "Е" current_postal_code как "F"

  2. в соответствии с заданными ФЗ: {DE -> F, C -> F}

3.Here Ключи-кандидаты: {ABCDE}. , следовательно,
Prime атрибуты (5): {А, В, С, D, Е}, Non Prime атрибуты (1): {F}

Для 2НФ: "Частичные Зависимости не допускаются". Средство. Часть ключа-кандидата не должна определять нечетные атрибуты.

здесь, частичные зависимости являются: {DE -> F, C -> F}

Таким образом, эта таблица не в 2НФ.

** Для того, чтобы быть в 2НФ, соотношение должно быть разлагаются так:

R1 = {} DEF,

R2 = {CF}

R3 = {ABCDE}

Надеюсь это поможет. Более подробно, как разложить таблицу и все, вы также можете найти: Detailed explanation of Normal forms

0

Нормализация через 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.