Основные виды зависимостей между атрибутами отношений: функциональные, многозначные, транзитивные.
Понятие функциональной зависимости является базовым, т.к. на его основе формулируются определения всех остальных видов зависимостей.
Определение функциональной зависимости: атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В. А®В
Это означает, что во всех кортежах с одинаковым значением атрибута А атрибут В будет иметь также одно и то же значение. А и В могут быть составными, то есть состоять из двух и более атрибутов.
(В примере функциональные зависимости - ФИО ® ДОЛЖН, ДОЛЖН® ОКЛАД.)
В отношении Преподаватель ключ является составным и состоит из атрибутов ФИО, Предмет, Группа, Вид_занятий.
Частичной зависимостью называют зависимость неключевого атрибута от части составного ключа. В рассматриваемом отношении атрибут Должност ь находится в функциональной зависимости от атрибута ФИО, являющегося частью составного ключа. Тем самым атрибут должность находится в частичной зависимости от ключа отношения.
|
|
Альтернативным вариантом является полная функциональная зависимость неключевого атрибута от всего составного ключа. В примере атрибут Часы занятий находится в полной функциональной зависимости от составного ключа.
Определение транзитивно. зависимости: Атрибут С зависит от атрибута А транзитивно, если для атрибутов А,В,С выполняется А®В и В®С, но обратная зависимость отсутствует. В нашем примере транзитивной зависимостью связаны атрибуты ФИО®Должность®Оклад.
Между атрибутами может быть многозначная зависимость. В отношении R атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R. Многозначные зависимости могут быть «один-ко-многим»(1:М), многие к одному(М:1) или многие ко многим(М:М). Например, если преподаватели ведут несколько предметов, а каждый предмет может вестись несколькими преподавателями, то имеет место зависимость(М:М) между атрибутами ФИО и Предмет.
(Эти же типы связей устанавливаются между отношениями.)
Выявим зависимости между атрибутами отношения Преподаватель. В результате анализа отношения получаем зависимости между атрибутами:
ФИО®Оклад
|
|
|
ФИО®Должность
|
|
ФИО®Стаж
ФИО®Надб
ФИО®Каф
|
Стаж®Надбавка
Должн®Оклад
|
Оклад®Должн
ФИО.Предмет.Группа. Вид_зан®Часы
После того, как выделены все функциональные зависимости следует проверить их согласованность с данными исходного отношения. Например, Должность доцент и Оклад 26000 должны соответствовать друг другу во всех кортежах, так как имеет место функциональная зависимость Должн®Оклад. Так же следует проверить и остальные данные.
|
|
№5.