В.Н.Лукин. Базы данных. Конспект лекций, ред 3.51, 08.12.09
Лекция 15. Покрытия функциональных зависимостей
При работе с базами данных необходимо поддерживать еѐ корректность, то есть сле-
дить, чтобы выполнялись все функциональные зависимости, которым она удовлетворя-
ет. Поэтому эффективность работы с базой данных зависит от представления функцио-
нальных зависимостей. Следовательно, нужно найти такое множество ФЗ, которое,
будучи эквивалентным заданному, обладает лучшими в каком-то смысле свойствами.
Рассмотрим методы представления ФЗ, которые позволят упростить эту задачу.
Пример
Пусть F = {A B, B C, A C, AB C, A BC}, G = {A B, B C}. Здесь все ФЗ из F
выводятся из G, то есть F G. Однако представление G предпочтительнее: временная
сложность алгоритма оценки множества ФЗ зависит от его объема.
Конец примера
Определение. Множество ФЗ F называется покрытием G, если F G.
Очевидно, что определение симметрично относительно множеств ФЗ, каждое из
них будет покрытием другого, но обычно подразумевают, что объем покрытия меньше.
Так как F
+
= G
+
, для X Y G выполняется F |= X Y.
Лемма об эквивалентности функциональных зависимостей
Обобщим понятие выводимости. Будем считать, что F |= G, если верно, что F |= X Y
для X Y G.
Лемма. Для заданных множеств ФЗ F и G над схемой R тождество F G имеет ме-
сто тогда и только тогда, когда F |= G и G |= F.
Доказательство
Пусть F G, тогда для каждой ФЗ X Y из F имеет место G |= X Y, то есть G |=
F, аналогично F |= G.
Пусть теперь F |= G, тогда G F
+
, применяя операцию замыкания к обеим час-
тям, получим G
+
(F
+
)
+
= F
+
, аналогично (G |= F) (F
+
G
+
), таким образом, F
+
= G
+
.
Из этой леммы следует простой способ проверки эквивалентности множеств
функциональных зависимостей, который использует алгоритм определения принад-
лежности функциональной зависимости замыканию множества ФЗ.
Неизбыточные покрытия
Определение. Множество ФЗ F неизбыточно, если у него нет собственного подмно-
жества F F, такого, что F F. Если F – покрытие G, то F – неизбыточное по-
крытие G.
Пример
Пусть G = {AB C, A B, B C, A C}, F = {AB C, A B, B C}. Здесь F G, но F –
избыточное покрытие, так как существует F′ = {A B, B C}, F F.
Конец примера
Функциональная зависимость X Y F избыточна в F, если {F – {X Y}} |=
X Y. Множество F неизбыточно, если в нѐм нет избыточных функциональных зави-
симостей.