Проблемы, связанные с использованием единственного отношения
На первый взгляд, полученное универсальное отношение можно использовать в качестве единственного отношения проектируемой БД. Существует несколько причин, по которым не следует данное отношение использовать в качестве единственного. Различают три проблемы, связанные с использованием отношений и с выполнением определенных операций.
· проблема вставки;
· проблема обновления;
· проблема удаления.
Если в отделе появляется новый сотрудник, то информацию о нем необходимо внести в БД. При этом значение атрибутов Проект, Квартал будут пустыми, а Вклад фактически равен нулю.
Сорокин
5-17
25AP
-
-
Как отмечалось ранее, пустых значений следует всячески избегать. Предположим, что в отношение включена новая запись о сотруднике Сорокине с пустыми полями и делается следующий запрос: “Напечатать список номеров и фамилий сотрудников, вклад которых не более 2”. В результате мы получим так называемый «черный список», в который попал и только что принятый на работу Сорокин.
Иванов
Андреев
Сорокин
В данном случае на простой вопрос мы получаем неверный ответ. Следовательно в нашей базе данных есть аномалии.
В данном отношении большое количество избыточных данных, что чревато тем, что при исправлении данных исправлению подвергнется только одна часть данных. Рассматриваемое отношение характеризуется явной и неявной избыточностью.
Явная избыточность: фамилия сотрудника, телефон лаборатории, номер лаборатории могут появляться в отношении многократно. Если какой-либо сотрудник, на пример Иванов, перейдет на работу в другую лабораторию, соответствующие изменения необходимо сделать во всех записях, где хранится информация о данном сотруднике.
Неявная избыточность это (для нашего примера) когда один номер телефона имеют несколько сотрудников лаборатории. Например, номер 5-17 появляется в записях с фамилиями Иванов и Андреев.
Предположим возникает следующая ситуация: Начальник отдела встречает Иванова и спрашивает его – “Вы были вчера на вашем рабочем месте? Я весь день вам звонил и никто не брал трубку”. А Иванов ему отвечает “Отдел связи сменил вчера номер на 9-17”. Начальник отдела приходит к себе в кабинет и меняет во всех записях телефон Иванова на 9-17. Через некоторое время ему необходимо позвонить в лабораторию 25-AP, а телефон он не помнит, он составляет запрос вывести все не повторяющиеся записи со значением поля Лном равным 25-AP.
Ответ: 9-17 и 5-17. По какому телефону звонить если заранее известно, что в каждой лаборатории только один телефон.