Основные определения

Говорят, что атрибут X функционально определяет Y или Y функционально зависит от X (записывается как X ® Y), если в любом экземпляре схемы R каждому значению атрибута X (левая часть зависимости) в каждый момент времени соответствует точно одно значение Y (правая часть зависимости).

Например, пусть R = XYZ и задан экземпляр схемы R в виде: r(R) = X Y Z

Тогда, если во всех возможных экземплярах схемы R справедли- a b c

вы те же зависимости, что и в r(R), то можно сделать вывод о су- m b b

ществовании функциональной зависимости X ® Y (так как для a b d

X =“a” всегда Y =“b”) и отсутствии зависимости Y ® Z (так как для Y = “b” Z принимает разные значения: “c,b,d” ) . Также отсутствует зависимость Y ® X (так как для Y = “b” X принимает разные значения: “a” и “m”). Отсутствие зависимости будем обозначать так: X ↛ Y.

Аналогично можно определить понятие функциональной зависимости между наборами атрибутов X, Y отношения R = A1 , A2 , . . . , Ak , когда X Ì {A1,...,Ak} и Y Ì {A1,...,Ak}.

Заметим, что из существования зависимости X ® Y вовсе не следует существование зависимости Y ® X . Этот факт легко просматривается в только что приведенном примере.

Левую часть зависимости называют детерминантом, а правую – зависимой частью [4], [6].

Зависимости, в которых правая часть содержится в левой, будем называть тривиальными зависимостями, например, AB ® A.

Впервые концепция функциональной зависимости была предложена Коддом в работе [10].

Для наборов атрибутов расширяют понятие функциональной зависимости до понятия полной функциональной зависимости, о которой будет сказано в разделе 1.9.1.

Зная семантику данных предметной области ПОСТАВКА_ДЕТАЛЕЙ с сущностями ПОСТАВЩИКИ, ДЕТАЛИ на множестве атрибутов U = {PN, PIM, ST, GOR, DN, DIM, CENA, KOL}, можно определить следующее множество функциональных зависимостей (набор атрибутов взят из примера 1):

 

F = {PN ® PIM, PN ® GOR, PN ® ST, GOR ® ST, DN ® DIM, DN ® CENA, (PN,DN) ® KOL}.

 

Множество F может содержать не все зависимости. Некоторые зависимости могут быть получены путем логического вывода из F-зависимостей. Например, если в F имеются зависимости PN ® GOR и GOR ® ST (подчеркнуты), то зависимость PN ® ST логически следует из них транзитивно.

Можно утверждать, что, если некоторый набор атрибутов X является первичным ключом схемы отношения R, то будет справедлива любая функциональная зависимость вида X ® Y, где Y – любое множество атрибутов схемы R. Этот факт следует из определения функциональной зависимости атрибутов.

Итак, пусть F - некоторое множество функциональных зависимостей, справедливых для схемы отношения R на множестве атрибутов U , а X ® Y - некоторая функциональная зависимость такая, что (X ® Y) Î F и X, Y Í U. Говорят, что зависимость X ® Y логически следует из F , если для каждого экземпляра отношения r(R), удовлетворяющего всем зависимостям из F, также имеет место зависимость X ® Y.

Важно уметь выводить зависимости из заданного множества функциональных зависимостей. Такую возможность предоставляют аксиомы и правила вывода функциональных зависимостей атрибутов.