Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
138
Добавлен:
16.03.2016
Размер:
5.67 Mб
Скачать

8.2.3. Вторая нормальная форма

Как видно, на рис. 8.3отсутствуют FD, не являющиесяминимальными. Наличие таких FD нарис. 8.1вызывало аномалии обновления. Проблема заключалась в том, что атрибутСЛУЖ_УРОВотносился к сущностислужащий, в то время как первичный ключ идентифицировал сущностьзадание_служащего_в_проекте.

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

32 Неключевым атрибутом называется атрибут, не входящий ни в один возможный ключ.

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

Рис. 8.4Значения переменных отношений

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

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

8.3. Нетранзитивные функциональные зависимости и третья нормальная форма

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

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

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

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

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

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