Понимание 3NF - PullRequest
       32

Понимание 3NF

1 голос
/ 29 ноября 2011

В настоящее время я учусь в классе системного анализа и хочу лучше понять использование нормализации. Для 3NF, если я работал за столом, который содержал идентификатор ученика, имя, номер телефона и майор. Мне нужно будет использовать только студенческий билет и мажор, потому что по этому имени можно найти как имя студента, так и номер телефона. Я правильно понимаю?

1 Ответ

6 голосов
/ 07 декабря 2011

Давайте начнем с этого.,.

student_id  name                 phone            major
--
1           Darcy Sailer         000-111-2345     Mathematics
2           Lonnie Seman         000-111-3456     Fine Art
3           Mathew Bradburn      000-112-9086     Education
4           Edwina Loflin        000-111-2345     Psychology
5           Clinton Rosebrook    000-111-1000     Chemistry
6           Lonnie Seman         000-113-2975     Chemistry

Единственный ключ-кандидат - student_id.Это означает, что имена не уникальны, телефоны не уникальны, а основные не уникальны.

Чтобы таблица была в 3NF, она должна соответствовать этим требованиям.

  • Это в 2NF.
  • Каждый непростой атрибут напрямую зависит от каждого ключа-кандидата.(Нет транзитивных зависимостей.)

Эта таблица в 2NF.(Доказательство оставлено читателю.) Есть три непростых атрибута;все они напрямую зависят от единственного ключа-кандидата.Это означает, что

  • имя не определяет телефон,
  • имя не определяет мажор,
  • телефон не определяет мажор,
  • телефон не определяет имя,
  • мажор не определяет имя, а
  • майор не определяет телефон.

Так что он в 3NF.

При определении зависимостей между двумя столбцами вы пытаетесь ответить на вопрос: «Учитывая одно значение для первого столбца, всегда ли я нахожу одно и только одно значение для второго столбца?»

Например, чтобы определить, существует ли зависимость между «name» и «major», вы спросите: «Учитывая одно значение для« name », всегда ли я нахожу одно и только одно значение для« major »?»И ответ нет".Получив имя «Лонни Семан», вы найдете две специальности - изобразительное искусство и химия.

Неважно, что в реальном мире человек может иметь более одного номера телефона и более одногоосновной.Выбор записи только одного телефонного номера на человека или только одного основного номера на человека является важной частью проектирования базы данных, но это не имеет никакого отношения к нормализации.

Неважно, что в реальном миреВы редко начинаете с репрезентативных данных выборки.Ожидается, что разработчики баз данных будут знать такие вещи, как

  • Два человека могут иметь одно и то же имя.
  • Два человека могут иметь один и тот же номер телефона.
  • Два человека могут иметьодин и тот же мажор.
  • У одного человека может быть два или более телефонных номеров.
  • У одного человека может быть два специалиста.
...