![]() |
|
Модераторы: LSD |
![]()
|
|
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Здравствуйте!
Читаю книжку "Beginning Mysql" (Sheldon, Moes) (Third Normal Form page 111-116). В ней приводится примеры по нормализации. Если вам трудно ответить, то я буду очень благодарен, если вы дадите источник (русский, английский не важно), в котором про нормализацию подробно описано. В дополнение я посмотрел википедию. Я не понимаю 3-ей нормальной формы, которая заключается в том, что все неключевые атрибуты зависят только от ключевых. И никаких других зависимостей быть не должно. Приводится объяснение на примере сотрудников: Сотрудник Отдел Телефон Иванов Бухгалтерия 11-22-33 Петров Бухгалтерия 11-22-33 Ларин Снабжение 44-55-33 Фамилия выбрана первичным ключем. Это похоже предусловие для таблицы, что не должно быть одинаковых фамилий. Здесь мы видим, что существует ФЗ между бухгалтерией и телефоном. Зная, что название отдела – «Бухгалтерия», всегда можно сопоставить номер телефона - 11-22-33. То есть существует зависимость Отдел --> Телефон Но что значит, что все атрибуты зависят от ключевых?. Они вместе зависят? То есть (Отдел, Телефон) сопоставляется одному значению Сотрудник. Или каждый по отдельности? Отдел сопоставляется Сотрудник, Телефон сопоставляется Сотрудник ... ? Также не ясно про транзитивную зависимость. На множествах понятно: X->Z, X->Y, Y->Z Но где в этой таблице транзитивная зависимость? И из определения ФЗ (определение) выходит противоречие, поскольку, если считать, что отдел зависит от сотрудника. То тогда два отдела с одним именем «Бухгалтерия» сопоставляются двум разным сотрудникам (Иванов, Петров). А они должны сопоставляться одному, чтобы не нарушать определение. Похоже я запутался. |
|||
|
||||
| Gromdron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.9.2006 Репутация: нет Всего: 1 |
Книгу не читал, но чисто мое предположение - состоит из 3 таблиц:
FID | Фамилия OID | Отдел PID | Телефон Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Gromdron
Они пишут, что существуют зависимость от ключа. Существует определение функциональной зависимости: элемент из множества А является функционально зависимым от элемента из множества B, если элементу А сопоставляется только одно значения из множества B. Тогда колонка Отдел зависит от первичного ключа (Сотрудник). То есть одному значению из Отдел можно сопоставить ровно одно значение из Сотрудник. Но возьмите название отдела "Бухгалтерия". Этот отдел встречается в двух строках, а следовательно сопоставляется двум значениям первичного ключа. Несоответствие. Я не понимаю |
|||
|
||||
| Gromdron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.9.2006 Репутация: нет Всего: 1 |
Вы неправильно поняли.
Почитайте: http://alexvolkov.ru/database-normalizatio...ormal-form.html http://www.libma.ru/kompyutery_i_internet/..._lekcii/p10.php Если хотите понять: у вас дана исходная таблица, а не приведенная к 3НФ. Если ее привести к 3НФ получиться 2 таблицы: Отдел|Наименование отдела|Телефон 1|Бухгалтерия|11-22-33 2|Снабжение|44-55-66 Фамилия|Отдел Гришин|1 Васильев|1 Петров|2 Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Нет, там даже не в этом дело, похоже авторы статьи в русской википедии просто не до конца объяснили.
Я неправильно понял определение функциональной зависимости. http://en.wikipedia.org/wiki/Database_normalization -- здесь все подробно изложено Background to normalization: definitions |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |