Рис 4.1. Редуцирование слева
Алгоритм PRED(F*)
Вход: F* - множество ФЗ.
Выход: F - редуцированное справа покрытие F*.
Begin
F := F*;
For каждая ФЗ X→Y* do
For каждый атрибут А из Y do
If PRF (F-{ X→Y }{ X→ (Y-A)}, X→A) then
Удалить А из Y в X→Y;
Удалить из F все зависимости вида X→Ø;
Return(F)
End.
Рис. 4.2, Редуцирование справа
Приложение 5
Проверка свойства сохранения F
Пусть F - множество ФЗ, заданных на атрибутах множества R, ρ = {Ri, i = 1,..., m} - декомпозиция множества R (), - множество сохраняемых (поддерживаемых) декомпозицией ρ ФЗ.
Декомпозиция ρ сохраняет все ФЗ из F (далее просто сохраняет F), если Fρ ≡ F.
Поскольку всегда верно F |= Fρ, то для проверки данного свойства достаточно установить выводимость Fρ |= F. Если множество Fρ известно, то эту выводимость легко проверить, используя алгоритм PRF (см. прил. 2). Чаще всего множество Fρ неизвестно. Выполнять его построение, исходя из F, R и ρ, нецелесообразно, поскольку эта задача является труднорешаемой (имеет неполиномиальную сложность по времени). В этом случае удобно воспользоваться алгоритмами PSX+ (рис. 5.1), PPRF (рис. 5.2).
Алгоритм PSX+ позволяет вычислить Х+ над Fρ, исходя из заданных F, ρ и X. В строке 5 алгоритма PSX+ вычисляется замыкание над F, для чего используется алгоритм SX+ (см. прил.2).
Алгоритм PPRF устанавливает выводимость Fρ |= X→Y . Применение его к каждой ФЗ X→Y позволяет проверить выполнение выводимости Fρ |= F.
Алгоритмы PSX+, PPRF имеют полиномиальную сложность по времени.
Алгоритм PSX+(F, ρ, X)
Вход: F - множество ФЗ, заданных на Ri;
ρ = {Ri, i = 1,..., m} - декомпозиция множества ;
X - подмножество множества R.
Выход: Замыкание X над Fρ.
Begin
Z := X;
While Z изменяется do
For каждый do
Z := (SX+(, F) )
Return (Z)
End .
Рис. 5.1
АлгоритмPPRF(F, ρ, X)
Вход: F - множество ФЗ, заданных на Ri;
ρ = {Ri, i = 1,..., m} - декомпозиция множества ;
X→ .
Выход: истина, если Fρ |= X→Y , ложь в противном случае.
Begin.
If PSX+( F, ρ, X) then return (TRUE)
else return (FALSE)
End.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.