При рассмотрении функциональных зависимостей следует различать
1. Значение переменной-отношения в определенный момент времени
2. Набор всех возможных значений, которые переменная-отношение может принимать в раличные моменты времени.
Пусть r является отношением, X и Y – произвольными подмножествами атрибутов отношения R. Говорят, что Y функционально зависит от Х тогда и только тогда, когда одному значению Х в точности соответствует одно значение Y. Поэтому, если два кортежа в отношении совпадают по значению X, то они совпадают и по значению Y.
Обозначение функциональной зависимости : X→Y. Читается так : X функционально определяет Y, либо – Y функционально зависит от X.
В упрощенном определении ФУНКЦИОНАЛЬНАЯ ЗАВИСИМОСТЬ X→Y ОЗНАЧАЕТ, ЧТО
· Для любого заданного значения атрибута X существует только одно значение атрибута Y.
· Разным значениям атрибута X может соответствовать одно и то же значение атрибута Y.
С помощью данного определения выявим в данном отношении следующие функциональные зависимости
{ S# }→{ CITY }
{ S#, P# }→{ QTY }
{ S#, P# }→{ CITY }
{ S#, P# }→{ CITY , QTY }
{ S#, P# }→{ S#, P#, CITY , QTY }
{ S# }→{ QTY }
{ QTY }→{ S# }
{ S#, P# }→{ S#, P# }
Левая часть такой записи называется детерминантом, правая называется зависимой частью.
Детерминант и зависимая часть являются множествами атрибутов отношения. Когда множество содержит один атрибут, то оно называется одноэлементным множеством.
Пр рассмотрении переменных-отношений больший интерес представляют не те функциональные зависимости, которые существуют в конкретный момент времени при некоторых конкретных значениях, а те, которые выполняются для всех возможных значений переменной-отношения в любой момент времени. Например, функциональная зависимость
{ S# }→{ CITY } выполняется всегда для всех возможных значений переменной-отношения, поскольку в любой момент времени одному поставщику в точности соответствует только один город.
Пусть R является переменной-отношением, X и Y – произвольными подмножествами множества атрибутов переменной-отношения R. Y функционально зависит от Х тогда и только тогда, когда для любого допустимого значения переменной отношения Rкаждое значение множества X связано в точности с одним значением множества Y . Иначе говоря, если два кортежа переменной-отношения совпадают по значению X , то они совпадают и поп значению Y.
Термин функциональная зависимость используется в смысле безотносительности ко времени. В переменной-отношении «Поставки» существуют следующие независимые от времени функциональные зависимости :
{ S#, P# }→{ QTY }
{ S#, P# }→{ CITY }
{ S#, P# }→{ CITY , QTY }
{ S#, P# }→{ S# }
{ S#, P# }→{ S#, P#, CITY , QTY }
{ S# }→{ CITY }
НеКОТОРЫЕ функциональные зависимости, справедливые для отношения r, могут быть несправедливы для переменной-отношения R. Например,
{ S# }→{ QTY }
{ QTY }→{ S# }
данная зависимость означает следующее : «количество деталей для каждой поставки данного поставщика будет одинаково». Эта зависимость справедлива для конкретных значений , присутствующих в отношении, но несправедлива для всех возможных значений переменной-отношения.
Если Х является потенциальным ключом переменной-отношения, то все атрибуты переменной-отношения должны быть функционально зависимы от Х.