Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_Po_Bazam_Dannykh (1).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.75 Mб
Скачать
  1. Покрытия функциональных зависимостей. Структура неизбыточных покрытий.

Рассмотрим некоторые методы представления множеств F-зависимостей. Например, любая F-зависимость, выводимая из множеств , также выводима из множества , поскольку все F-зависимости из F мо­гут быть выведены из F-зависимостей, принадлежащих G. По какой причине предпочтительнее более короткие представления?

Меньшее множество F-зависимостей гарантирует более быстрое исполнение алгорит­мов. Далее приводятся другие алгоритмы, для которых временная сложность также зависит от числа F-зависимостей на входе.

В системах баз данных F-зависимости способствуют обеспечению согласованности и целостности баз данных. Меньшее число F-зависимостей означает меньший объем исполь­зуемой памяти и меньшее количество проверок при модификации баз данных.

Определение 1. Два множества F-зависимостей F и G над схемой R эквивалентны, , если . Если , то F есть покрытие G.

В определении для покрытия нет упоминания об относительных размерах F и G. Однако далее рассматриваются покрытия частного вида, в которых F не превосходит G по числу F-зависимостей.

Если , то, поскольку , для каждой зависимости из следует .

В частности, для каждой F-зависимости из G имеет место . Обобщим понятие выводимости на множество F-зависимостей, записав это условие в виде . Поскольку определение эквивалентности симметрично относительно F и G, из сле­дует .

Так как включает каждую F-зависимость , такую, что , то из следует . Применяя операцию замыкания к обеим частям неравенства, полу­чаем . Аналогично влечет за собой . Таким образом, дока­зана

Лемма 1. Для заданных множеств F-зависимостей F и G над схемой R тождество имеет место тогда и только тогда, когда и .

Пример 1. Множества и эквивалентны. Множество F не эквивалентно множе­ству G , поскольку соотношение G |= CD E не выполняется.

Лемма 1 содержит простой способ проверки эквивалентности двух множеств F-зави­симостей. Функция DERIVES проверяет условие .

Алгоритм 1. DERIVES

Вход: два множества F-зависимостей F и G.

Выход: истина, если ; ложь в противном случае.

DERIVES (F,G)

begin

v := истина

for каждая F-зависимость из G do

v:=v and MEMBER(F, );

return (v)

end.

Функция EQUIV алгоритма 2 проверяет эквивалентность двух множеств F-зависимо­стей.

Алгоритм 2. EQUIV

Вход: два множества F-зависимостей F и G.

Выход: истина , если; ложь в противном случае.

EQUIV (F,G)

begin

v:= DERIVES(F,G) and DERIVES(G,F);

return(v)

end.

Неизбыточные покрытия.

Определение. Множество F-зависимостей F неизбыточно, если у него нет такого собственного подмножества F, что F F. Если такое множество F существует, то F избыточно. F является неизбыточным покрытием G, если F есть покрытие G и F неизбыточно.

Пример. Пусть . Множество эквивалентно G, но избыточно, потому что F’= является покрытием G. Множество F’ представляет собой неизбыточное покрытие.

По равносильной характеристике неизбыточности множество F неизбыточно, если в нем не существует F-зависимости , такой, что . Назовем F-зависимость из F избыточной в F, если . Это свойство положено в основу алгоритма 5.3 проверки избыточности F.

Алгоритм 3. REDUNDANT

Вход: Множество F-зависимостей F.

Выход: истина, если F избыточно; ложь в противном случае.

REDUNDANT (F)

begin

v:=ложь

for каждая F-зависимость из F do

if MEMBER( ) then v:=истина;

return(v)

end.

Для любого множества F-зависимостей G существует некоторое подмножество F, такое, что F является неизбыточным покрытием G. Если G неизбыточно, то F=G. Если G избыточно, то в G существует F-зависимость , которая является избыточной в G . Пусть . Заметим, что . Если G’ избыточно, то в G’ существует избыточная F-зависимость . Пусть G’’=G’-{ }; (G’’) . Процесс удаления избыточных F-зависимостей, естественно, должен закончиться. В результате для G образуется неизбыточное покрытие F. Этот процесс является основой алгоритма 5.4 NONREDUN, который для множества F-зависимостей вычисляет неизбыточное покрытие.

Алгоритм 4. NONREDUN

Вход: Множество F-зависимостей G.

Выход: неизбыточное покрытие G.

NONREDUN(G)

begin

F:=G;

for каждая F-зависимость из G do

if MEMBER ( ) then

F:=F-{ };

return (F)

end.

Пример 3. Пусть . Результатом работы NONREDUN(G) является множество . Если G представлено в порядке , результатом NONREDUN(G) является .

Из примера 3 видно, что множество F-зависимостей G может иметь более одного неизбыточного покрытия. Могут также существовать неизбыточные покрытия G, не содержащиеся в G. В примере 3 таким неизбыточным покрытием G служит множество F= .

Структура неизбыточных покрытий.

Определение Множества называются эквивалентными относительно , если и (обозначение ).

Теорема (о структуре неизбыточного покрытия). Если -неизбыточные покрытия, то относительно .

Доказательство. . Строим и для построения рассмотрим формулы . Если тогда . .

Пусть . Рассмотрим вывод над . Существует формула :в её выводе используется . Действительно, если бы её не существовало, то каждую формулу из можно бы было получить из , т.к. , то , то есть - избыточно. Приходим к противоречию.

Пусть в выводе используется . Тогда . Имеем , откуда по правилу проекции .

Обратно - аксиома.

, т.к. .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]