Понятие функциональной зависимости
Создание баз данных преследует две основные цели [2, 10, 17]:
– понизить избыточность хранимых данных;
– повысить их надежность.
Любое априорное знание о различного рода ограничениях, накладываемых на совокупности данных, может принести большую пользу для достижения указанных целей.
Один из способов формализации этих знаний – установление зависимостей между элементами данных. Известно два основных типа таких зависимостей:
1) функциональные зависимости;
2) многозначные зависимости.
Функциональная зависимость является обобщением понятия ключа.
В табл. 2.7 представлено отношение График (ПИЛОТ, РЕЙС, ДАТА, ВРЕМЯ-ВЫЛЕТА). Это отношение показывает, какой пилот участвует в данном рейсе в данный день и каково время вылета самолета. Не любое сочетание значений атрибутов ПИЛОТ, РЕЙС, ДАТА и ВРЕМЯ-ВЫЛЕТА допустимо в таком расписании.
Таблица 2.7
График |
ПИЛОТ |
РЕЙС |
ДАТА |
ВРЕМЯ-ВЫЛЕТА |
Мовчан |
83 |
9 августа |
10:15 |
|
Мовчан |
116 |
10 августа |
13:25 |
|
Синицын |
281 |
8 августа |
05:50 |
|
Синицын |
301 |
12 августа |
18:35 |
|
Синицын |
83 |
11 августа |
10:15 |
|
Федотов |
83 |
13 августа |
10:15 |
|
Федотов |
116 |
12 августа |
13:25 |
|
Вишневский |
281 |
9 августа |
05:50 |
|
Вишневский |
281 |
13 августа |
05:50 |
|
Вишневский |
412 |
15 августа |
13:25 |
На табл. 2.7 накладываются следующие ограничения.
1. Для каждого рейса назначается только одно время вылета.
2. Для данного пилота, даты и времени вылета возможен только один рейс.
3. Для данного рейса и даты назначается только один пилот.
Эти ограничения являются примерами F-зависимостей (F-зависимость – функциональная зависимость между данными).
F-зависимость имеет место тогда, когда значения кортежа на одном множестве атрибутов единственным образом определяют эти значения на другом множестве атрибутов.
Указанные выше ограничения можно сформулировать следующим образом.