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

 

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

 

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

 

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

 

· Модификация кортежей. Чтобы изменить разряд служащего, мы будем вынуждены модифицировать все кортежи с соответствующим значением атрибута СЛУ_НОМ. В противном случае будет нарушена естественная FD СЛУ_НОМ® СЛУ_УРОВ(у одного служащего имеется только один разряд).