Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии БД / Методичка Технологии БД (блоки 1-2).doc
Скачиваний:
82
Добавлен:
01.05.2014
Размер:
922.11 Кб
Скачать
      1. Нетранзитивные функциональные зависимости и третья нормальная форма

В произведенной декомпозиции переменной отношения СЛУЖАЩИЕ_ПРОЕКТЫ_ЗАДАНИЯмножество FD переменной отношенияСЛУЖ_ПРО_ЗАДАНпредельно просто – в единственной нетривиальной функциональной зависимости детерминантом является возможный ключ. При использовании этой переменной отношения какие-либо аномалии обновления не возникают. Однако переменная отношенияСЛУЖне является такой же совершенной.

Аномалии обновлений, возникающие из-за наличия транзитивных функциональных зависимостей

Функциональные зависимости переменной отношения СЛУЖпо-прежнему порождают некоторые аномалии обновления. Они вызываются наличием транзитивной FDСЛУ_НОМСЛУ_ЗАРП(через FDСЛУ_НОМСЛУ_УРОВиСЛУ_УРОВСЛУ_ЗАРП). Эти аномалии связаны с избыточностью хранения значения атрибутаСЛУ_ЗАРПв каждом кортеже, характеризующем служащих с одним и тем же разрядом.

  • Добавление кортежей.Невозможно сохранить данные о новом разряде (и соответствующем ему размере зарплаты), пока не появится служащий с новым разрядом. (Первичный ключ не может содержать неопределенные значения.)

  • Удаление кортежей.При увольнении последнего служащего с данным разрядом мы утратим информацию о наличии такого разряда и соответствующем размере зарплаты.

  • Модификация кортежей.При изменении размера зарплаты, соответствующей некоторому разряду, мы будем вынуждены изменить значение атрибутаСЛУ_ЗАРПв кортежах всех служащих, которым назначен этот разряд (иначе не будет выполняться FDСЛУ_УРОВСЛУ_ЗАРП).

Возможная декомпозиция

Для преодоления этих трудностей произведем декомпозицию переменной отношения СЛУЖна две переменных отношений –СЛУЖ1 {СЛУ_НОМ, СЛУ_УРОВ}иУРОВ {СЛУ_УРОВ, СЛУ_ЗАРП}. По теореме Хеза, это снова декомпозиция без потерь по причине наличия, например, FDСЛУ_НОМСЛУ_УРОВ. На Рис. 14 показаны диаграммы FD этих переменных отношений, а на Рис. 15 – их возможные значения.

Рис. 14 Диаграммы FD в отношениях СЛУЖ1 и УРОВ

Как видно из Рис. 15, это преобразование обратимо, т. е. любое допустимое значение исходной переменной отношения СЛУЖявляется естественным соединением значений отношенийСЛУЖ1иУРОВ. Также можно заметить, что мы избавились от трудностей при выполнении операций обновления.

  • Добавление кортежей.Чтобы сохранить данные о новом разряде, достаточно добавить соответствующий кортеж к отношениюУРОВ.

  • Удаление кортежей.При увольнении последнего служащего, обладающего данным разрядом, удаляется соответствующий кортеж из отношенияСЛУЖ1, и данные о разряде сохраняются в отношенииУРОВ.

  • Модификация кортежей.При изменении размера зарплаты, соответствующей некоторому разряду, изменяется значение атрибутаСЛУ_ЗАРПровно в одном кортеже отношенияУРОВ.

Третья нормальная форма

Рис. 15 Тела отношений СЛУЖ1 и УРОВ

Трудности, которые мы испытывали, были связаны с наличием транзитивной FD СЛУ_НОМСЛУ_ЗАРП. Наличие этой FD на самом деле означало, что атрибутСЛУ_ЗАРПхарактеризовал не сущностьслужащий, а сущностьразряд.

Определение: Третья нормальная форма

Переменная отношения находится в третьей нормальной форме (3NF)в том и только в том случае, когда она находится во второй нормальной форме, и каждый неключевой атрибут нетранзитивно функционально зависит от первичного ключа.

Отношения СЛУЖ1иУРОВоба находятся в 3NF (все неключевые атрибуты нетранзитивно зависят от первичных ключейСЛУ_НОМиСЛУ_УРОВ). ОтношениеСЛУЖне находится в 3NF (FDСЛУ_НОМСЛУ_ЗАРПявляется транзитивной). Любое отношение, находящееся в 2NF, но не находящееся в 3NF, может быть приведено к набору отношений, находящихся в 3NF. Мы получаем набор проекций исходного отношения, естественное соединение которых воспроизводит исходное отношение (т. е. это декомпозиция без потерь). Для отношенийСЛУЖ1иУРОВисходное отношениеСЛУЖвоспроизводится их естественным соединением по общему атрибутуСЛУ_УРОВ.

Заметим, что допустимые значения отношения УРОВмогут содержать кортежи, информационное наполнение которых выходит за пределы тела отношенияСЛУЖ. Например, в теле отношенияУРОВможет находиться кортеж с данными о разряде 4, который еще не присвоен ни одному служащему. Наличие такого кортежа не влияет на результат естественного соединения, который все равно будет являться допустимым значением отношенияСЛУЖ.