КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Транзитивная функциональная зависимость
Полная функциональная зависимость Функциональная зависимость Для этих нормальных форм справедливо отношение: отношение в более высокой НФ является отношением и в предыдущей НФ, но дополнительно удовлетворяет нескольким критериям. За основу принимается отношение в 1НФ. Отношение в 1НФ – отношение. Удовлетворяющее фундаментальным свойствам отношений (все атрибуты атомарные, все кортежи уникальны). В отношении R атрибут X функционально зависит от атрибута Y, если каждому значению Y соответствует в точности одно значение X (R.X (r) R.Y).
Функциональная зависимость X и Y называется полной, если атрибут X не зависит функционально от любого подмножества Y:
Функциональная зависимость называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X (r) R.Z и R.Z (r) R.Y и отсутствует функциональная зависимость R.X (r) R.Y.
2НФ Пример:
Пусть отношение называется СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ (СОТР_№, СОТР_ЗАРПЛ, ОТД_№, ПРОЕКТ_№, СОТР_ЗАДАН). Можно выделить составной первичный ключ: СОТР_№, ПРОЕКТ_№. Здесь может возникнуть проблема: аномалия, которая не позволяет корректно выполнять операции над данными, а именно: · добавление сотрудника, который не выполнил ещё ни одного проекта – аномалия включения; · если удалить какой-то кортеж, связанный с завершением проекта, то параллельно теряется информация, что сотрудник работает в каком-то отделе – аномалия исключения; · аномалия замещения выражается в том, что если переводить сотрудника в другой отдел, то необходимо модифицировать все кортежи, описывающие этого сотрудника. Наличие аномалий связано с тем, что неключевые атрибуты функционально зависят от первичного ключа. Функциональные зависимости: Чтобы от аномалий избавиться надо перейти в 2НФ. Отношение находится в 2НФ, если оно находится в 1НФ, и каждый неключевой атрибут полностью зависит от первичного ключа. Чтобы получить полностью функциональные зависимости, разделим отношение СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ на 2 части: СОТРУДНИКИ-ОТДЕЛЫ (СОТР_№, СОТР_ЗАРПЛ, ОТД_№) первичный ключ СОТР_№ функциональные зависимости: СОТРУДНИКИ-ПРОЕКТЫ (СОТР_№, ПРОЕКТ_№, СОТР_ЗАДАН) первичный ключ: СОТР_№, ПРОЕКТ_№ функциональные зависимости: 2НФ не является совершенной, поэтому строится 3НФ. Рассмотрим отношение в 2НФ. Видно, что функциональная зависимость является транзитивной: она является следствием двух функциональных зависимостей и , т.е. зарплата связана с отделом. Наличие (*) приводит к тому, что в БД нельзя внести информацию о зарплате в отделе до тех пор, пока в этом отделе не появится хотя бы один сотрудник. Т.е. транзитивная зависимость между неключевыми атрибутами сохраняет аномалии включения и исключения. Следовательно, процедуру нормализации нужно продолжать. 3НФ – это отношение в 2НФ, в котором каждый неключевой атрибут нетранзитивно зависит от первичного ключа. Подвергнем декомпозиции отношение СОТРУДНИКИ-ОТДЕЛЫ: СОТРУДНИКИ (СОТР_№, ОТДЕЛ_№) Ключ СОТР_№ функциональные зависимости: ; ОТДЕЛЫ (ОТД_№, СОТР_ЗАРПЛ) Ключ ОТД_№ функциональные зависимости: . ПРИМЕЧАНИЕ: отношение, находящееся в 1НФ может быть подвергнуто декомпозиции, если имеются функциональные зависимости между неключевыми атрибутами и элементами составного ключа. Выделение таких функционально зависимых атрибутов в отдельное отношение и есть основа декомпозиции. Дальнейшая нормализация должна выделять отношения, описывающие именно такие транзитивные зависимости. В выделенных отношениях в качестве ключевого может быть выбран любой атрибут. На практике декомпозиция до 3НФ в большинстве случаев является достаточной. Такой уровень выявляет основные связи в модели и на этом проектирование отношений БД заканчивается. НФ Бойса-Кодда Рассмотрим отношение СОТРУДНИКИ-ПРОЕКТЫ (СОТР_№, СОТР_ИМЯ, ПРОЕКТ_№, СОТР_ЗАРПЛ). Возможные первичные ключи: СОТР_№, ПРОЕКТ_№ и СОТР_ИМЯ, ПРОЕКТ_№. Функциональные зависимости: Такое отношение находится в 3НФ, но здесь есть функциональные зависимости атрибутов отношения от атрибутов, являющихся частью первичного ключа. И аномалия замещения будет состоять в том, что, чтобы изменить имя сотрудника с данным номером согласованным образом придётся изменить все кортежи, включающие номер сотрудника. Поэтому НФ Бойса-Кодда преследует выделение полных функциональных зависимостей. Для этого вводится понятие детерминант – это любой атрибут, который полностью функционально зависит от другого атрибута. И отношение находится в НФ Бойса-Кодда в том случае, если каждый детерминант является ключом. Для приведения СОТРУДНИКИ-ПРОЕКТЫ в НФ Бойса-Кодда можно произвести декомпозицию к двум отношениям: СОТРУДНИКИ и СОТРУДНИКИ-ПРОЕКТЫ. Т.к. детерминантом может быть либо СОТР_ИМЯ, либо СОТР_№, то 4НФ: Дополним модель условиями: 1. отдельные проекты: задание1, задание2, …; 2. если сотрудник работает над проектом, то он принимает участие во всех заданиях проекта (дополнительное условие). Описать эту ситуацию можно отношением ПРОЕКТЫ (ПРОЕКТ_№, ПРОЕКТ_СОТР, ПРОЕКТ_ЗАДАН). Уникальный ключ – комбинация всех атрибутов. Многозначные зависимости – отношение R со схемой R(A B C) содержит многозначную зависимость R.A ® ®R.B (атрибут А многозначно зависит от атрибута В). если множество значений В, которое соответствует паре (А, С): В~(А, С), зависит только от А, и на зависит от С. Т.е. многозначная зависимость между ПРОЕКТ_№ ® ® ПРОЕКТ_СОТР СОТР~(ПРОЕКТ, ЗАДАН) зависит от ПРОЕКТ и не зависит от ЗАДАН. Недостатки многозначной зависимости: если необходимо присоединить сотрудника к проекту, то нужно добавить столько кортежей, сколько существует заданий в данном проекте. ПРОЕКТ_№ ® ® ПРОЕКТ_СОТР ПРОЕКТ_№ ® ® ПРОЕКТ_ЗАДАНИЕ Нормализация: исходное отношение спроектировать без потерь таким образом, чтобы исходное отношение могло быть полностью восстановлено путём естественного соединения новых отношений. Если R (A, B, C) и существует многозначная зависимость R.A ® ® R.B, то R1 (A, B) и R2 (A, С). Причём по R1 и R2 исходное R может быть восстановлено полностью путём естественного соединения. – ПРОЕКТЫ – СОТРУДНИКИ (ПРОЕКТ_№, ПРОЕКТ_СОТР); – ПРОЕКТЫ – ЗАДАНИЯ (ПРОЕКТ_№, ПРОЕКТ_ЗААДАН). Уловие естественного соединения: ПРОЕКТ_№ из ПРОЕКТЫ – СОТРУДНИКИ = ПРОЕКТ_№ из ПРОЕКТЫ – ЗАДАНИЯ.
Дата добавления: 2014-12-25; Просмотров: 2580; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |