Нормализация 3НФ

Я прочитал несколько примеров нормализации, однако наткнулся на один, который не понимаю.

Веб-сайт примера находится здесь: http://cisnet.baruch.cuny.edu/holowczak/classes/3400/normalization/#allinone

Часть, которую я не понимаю, это "Третья нормальная форма"

В моей голове я вижу транзитивные зависимости в EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone) как следующие Name->->Office|Floor и Name->->Office|Phone

Автор разбивает таблицу EMPLOYEE_OFFICE_PHONE (Name, Office, Floor, Phone) на EMPLOYEE_OFFICE (Name, Office, Floor) и EMPLOYEE_PHONE (Office, Phone)

По моему мнению в начале, я все еще вижу транзитивную зависимость в Name->->Office|Floor, поэтому я не понимаю, почему она в 3NF. Был ли я неправ, утверждая, что в Name->->Office|Floor есть транзитивная зависимость?

Обоснование транзитивности: вот мой список функциональных зависимостей

  1. Имя -> Офис
  2. Имя -> Этаж
  3. Имя -> Телефон
  4. Офис -> Телефон
  5. Офис -> Этаж (это неправильно? и почему?

Спасибо всем за помощь!


person ChickSentMeHighE    schedule 31.05.2011    source источник


Ответы (3)


5) вы предполагаете здесь схему именования ... офисы 4xx должны быть на 4 этаже ... 5xx должны быть на 5 этаже ... если такая схема существует, вы можете иметь свою зависимость ... до тех пор, пока это не является частью спецификации ... нет. 5 вне игры...

person DarkSquirrel42    schedule 31.05.2011

1. Name -> Office
2. Name -> Floor
3. Name -> Phone
4. Office -> Phone
5. Office -> Floor (Is this the incorrect one? and why?

(1) Вы, автор и я согласны, что Имя->Офис.

(2) Вы и автор соглашаетесь, что Имя->Этаж. Хотя это верно только на основе выборочных данных, также верно и то, что Office->Floor. Я бы исследовал эту проблему, задав такой вопрос: «Если офис пуст, знаю ли я, на каком этаже находится этот офис?» (Да)

Эти вещи предполагают наличие транзитивной зависимости, Имя-> Офис и Офис-> Этаж. Так что я не соглашусь с вами и с автором в этом вопросе.

(3) Вы говорите Имя-> Телефон. Автор говорит Офис->Телефон. Автор также говорит, что «каждый офис имеет ровно один номер телефона». Таким образом, учитывая одно значение для Office, я знаю одно и только одно значение для телефона. И учитывая одно значение для имени, я знаю одно и только одно значение для телефона. Я бы исследовал этот вопрос, спросив: «Если я перееду в другой офис, будет ли мой номер телефона подписан на меня?» Если да, то Имя->Телефон. Если нет, то Офис->Телефон.

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

(4) На самом деле это просто расширение (3) выше.

(5) См. (2) выше. Это не имеет никакого отношения к схеме наименования, и не нужно предполагать, что офисы с номерами 5xx находятся на 5-м этаже. Единственный уместный вопрос заключается в следующем: если задано одно значение для Office, существует ли одно и только одно значение для Floor? (Да) Я мог бы изучить этот вопрос, спросив: «Может ли один офис располагаться более чем на одном этаже?» (В реальном мире это отдаленно возможно. Но примеры данных не поддерживают такую ​​возможность.)

Некоторые дополнительные FD, основанные исключительно на выборочных данных.

Phone->Office
Phone->Floor
Office->Name
person Mike Sherrill 'Cat Recall'    schedule 01.06.2011

Прежде всего, позвольте мне дать четкое определение 3NF: - Отношение находится в 3NF, если выполняются следующие условия: - 1.) Отношение находится во 2NF 2.) Никакой непростой атрибут не транзитивно зависит от первичного ключа. Другими словами, отношение находится в 3NF, если для каждой функциональной зависимости X->Y выполняется одно из следующих условий: 1.) X является суперключом 2.) Y является основным атрибутом для вашего вопроса, если следующие FD настоящее время :-

 Name -> Office
 Name -> Floor
 Name -> Phone
 Office -> Phone

Тогда мы ничего не можем сказать об офисе и этаже. Вы можете убедиться в этом, применив и проверив любое из правил логического вывода Армстронга. Когда вы примените эти правила, вы обнаружите, что не можете сделать вывод об офисе и этаже.

person Satyapriya Krishna    schedule 17.03.2014