2014-10-19 5 views
-2

В настоящее время я запутался со всей нормировкой для баз данных.Нормализация базы данных (1NF 2NF 3NF)

Может ли кто-нибудь помочь мне разобраться, как перейти в 1NF после 3NF? Моя 1NF версия выглядит следующим образом, хотя и не уверен, что это правильно ..:

http://imgur.com/i7JTcXw,qPMtPdq

Ссылка содержит как UNF и мою версию таблицы 1nf.

ответ

0

Просто посмотрев здесь определения: http://www.studytonight.com/dbms/database-normalization.php. 1nf требует, чтобы каждая строка была надежно идентифицирована. В вашей таблице нет четкого первичного ключа. Каждая строка может быть идентифицирована по номеру рейса и части полей статуса (прибытие или вылет) и запланированное время

Я вижу, что ваша таблица нарушает 2nf, потому что ваши поля статуса, похоже, содержат несколько фрагментов информации и не являются одного типа данных, то есть он сообщает вам 2 части информации: прибытие/вылет и время. Существует также подразумеваемая ценность в фактическом статусе «Отменена», которая не имела бы связанного времени.

3nf устраняет зависимости между полями, которые не являются частью первичного ключа, в вашем случае я бы указал пальцем на поля от и до: их значения могли быть частью таблицы поиска, так как каждый номер рейса обычно предназначен для конкретный маршрут и, как таковой, повторять их в этой таблице, является ненужным дублированием. Например, вы, похоже, собираетесь на «Сидни», но на самом деле вы собираетесь «Сидней» (без запятой), поэтому запрос на все рейсы в Сидней будет искать QF431. Другая причина для их удаления заключается в том, что, поскольку он стоит, аэропорты отправления и назначения QF431 могут меняться между строками, которые могут нарушать правило, согласно которому каждый номер полета уникален для траектории полета. С текущей структурой это правило не может быть соблюдено dbms

+0

Приветствия за помощь, я попробую реализовать ваши предложения – DxSprods

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