Многозначные зависимости

До сих пор речь шла лишь о функциональных зависимостях. В отношениях существуют и другие зависимости. Одним из видов зависимостей являются многозначные зависимости данного атрибута В от другого атрибута А в отношении R, содержащем и другие атрибуты. Говорят, что А многозначно определяет В в R (или что В многозначно зависит от А), обозначая указанную зависимость А®®В, если каждому значению А соответствует множество (возможно, пустое) значений B, никак не связанных с другими атрибутами R.

Это можно проиллюстрировать на примере отношения

ПРЕПОДАВАТЕЛЬ (ИД#, ДЕТИ, КУРСЫ, ДОЛЖНОСТЬ),

содержащего данные о детях преподавателя, читаемых им курсах и его должности.

Между преподавателем и детьми имеется связь типа 1:М, а между преподавателем и курсами связь М:N, если предположить, что некоторые курсы могут читать несколько преподавателей. Пусть экстенсионал отношения имеет вид, показанный на рисунке 8.3.

 

Рис. 8.3. Отношение «ПРЕПОДАВАТЕЛЬ»

 

Если объявляется многозначная зависимость атрибутов «ДЕТИ» или «КУРСЫ» от атрибута «ИД#», каждому значению атрибута «ИД#» должно соответствовать фиксированное множество значений атрибутов «ДЕТИ» или «КУРСЫ» соответственно. Другими словами, возможно изменение значения этих атрибутов в любой строке отношения. Замена значения атрибута «КУРСЫ» в кортеже (525-111 Кэт К412 Доцент) даст кортеж (525-11 Кэт К410 Доцент). Замена значения атрибута «ДЕТИ» на «Джон» даст кортеж (525-111 Джон К412 Доцент). (Порядок замены следует порядку предшествующего утверждения). Оба полученных кортежа уже имеются в отношении. Таким образом, другие значения кортежей никак не связаны со значениями многозначных атрибутов. Следовательно, имеют место многозначные зависимости

ИД#®®ДЕТИ и ИД#®®КУРСЫ.

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

Существуют аксиомы (правила вывода) для многозначных зависимостей. Введение многозначных зависимостей приводит к расширению рассмотренного выше множества правил вывода. Предположим, что X, Y и Z являются атрибутами отношения R, а U обозначает множество всех атрибутов R. Двумя наиболее важными правилами для многозначных зависимостей являются следующие:

а) дополнение. Если Х®®Y, то Х®®U—Х—Y. Это правило не имеет аналога для функциональных зависимостей;

б) транзитивность. Если Х®®Y и Y®®Z, то Х®®Z—Y. Это более ограниченный вариант транзитивности по сравнению с правилом для функциональных зависимостей.