Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Функциональные зависимостиАномалии обновления Аномалии удаления
При удалении из отношения строки с информации о последнем сотрудники некоторого отделения, сведения об этом отделении будут полностью удалены из БД. Первые два отношения позволяют избежать возникновения этой проблемы.
При попытке изменения значения одного из атрибутов для некоторого отделения в отношении необходимо обновить соответствующие значения в строках для всех сотрудников этого отделения. Если такой модификации будут подвергнуты не все требуемые строки, то база данных будет содержать противоречивые сведения. Приведенные примеры иллюстрируют, что первые два отношения обладают более приемлемыми свойствами, чем отношение Staff-Branch. Нормализация и служит для получения правильно спроектированных отношений. Но вначале следует познакомиться с концепцией функциональной зависимости.
Функциональная зависимость описывает связь между атрибутами и является одним из основных понятий нормализации. Если в отношении R, содержащем атрибуты А и В, атрибут В функционально зависит от атрибута А (что обозначается А → В), то каждое значение атрибута А связано только с одним значением атрибута В. (При этом каждый из атрибутов А и В может состоять из одного или нескольких атрибутов) (рис.22).
А В
Рис. 22. Функциональные зависимости Детерминантом функциональной зависимости называется атрибут или группа атрибутов, расположенная на диаграмме функциональной зависимости слева от символа строки. В отношении Staff – может быть несколько сотрудников с одинаковыми должностями. Связь между атрибутами StaffNo и Position относится к типу 1:1, поскольку для каждого номера сотрудника имеется только одна должность. А связь между атрибутами Position и StaffNo имеет тип 1:N, так как существует несколько номеров сотрудников, занимающих одну и ту же должность. StaffNo – детерминант функциональной зависимости StaffNo → Position. Необходимо отметить, что функциональная зависимость Position → StaffNo. Для выявления ключей отношения Staff - Branch необходимо найти атрибут (или группу атрибутов), который уникальным образом идентифицирует каждую строку этого отношения. Это атрибут StaffNo. В отношении Branch потенциальными ключами являются TelNo и Branch-No. В отношении Staff – атрибут StaffNo.
Дата добавления: 2014-02-28; просмотров: 420; Нарушение авторских прав Мы поможем в написании ваших работ! |