Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

- 85 -

F1. Рефлексивность: X X.

F2. Пополнение: X Y ZX Y.

F3. Аддитивность: X Y и X Z X YZ. F4. Проективность: X YZ X Y.

F5. Транзитивность: X Y и Y Z X Z.

F6. Псевдотранзитивность: X Y и YZ W X Z W.

3.4.3. Применение аксиом вывода

С использованием аксиом вывода можно получить и другие правила для вывода функциональных зависимостей. При проверке полученных правил в качестве опровержения достаточно привести пример отношения, которое удовлетворяет исходным зависимостям и не удовлетворяет выведенным. Например, утверждение о том, что зависимость XY ZW влечет за собой зависимость XZ, легко можно опровергнуть на примере отношения, содержащего оценки студентов за весеннюю сессию:

оценки( ФАМИЛИЯ ПРЕДМЕТ ОЦЕНКА ЭКЗАМЕНАТОР )

Балашов

ФИЗИКА

5

Петров

Балашов

ИСТОРИЯ

4

Сидоров

Как видно из конкретного отношения, в нем выполняется зависимость ФАМИЛИЯ ПРЕДМЕТ ОЦЕНКА ЭКЗАМЕНАТОР, но зависимость ФАМИЛИЯ ОЦЕНКА уже не удовлетворяется.

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

С другой стороны, эта система аксиом избыточна, поскольку обладает собственным подмножеством, которое обладает свойством полноты. Таким множеством являются аксиомы F1, F2 и F6. Все остальные аксиомы могут быть выведены из них. Аксиомы F1, F2 и F6 являются независимыми: ни одна из них не может быть выведена из двух оставшихся. Эти аксиомы называются аксиомами Армстронга.

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

Пусть F - множество функциональных зависимостей для отношения r(R). Замыканием множества функциональных зависимостей F, обозначаемого, как F+, называется множество функциональных зависимостей, полученное из F путем

- 86 -

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

Проще говоря, F+ - множество, состоящее из всех зависимостей, которые можно вывести из F, и не содержащее ни одной зависимости, не выводимой из F.

Таким образом можно говорить о справедливости утверждений:

Если зависимость XY принадлежит к F+, то она выводится из F.

Если зависимость XY выводится из F, то она принадлежит к F+.

Замыкание не может быть увеличено, то есть F+ = (F+)+. Многие трудности связаны с большим размером замыкания. Например, если имеется множество F = {AB, BC} функциональных зависимостей на схеме R=ABC, то его замыкание будет представлять собой F+ = {AA, ABA, ABCA, BB, ABB, ABCB, CC, ACC, ABCC, ABAB, ABCAB, ACAC, ABCAC, BCBC, ABCBC, ABCABC, AB, ACB, BC, ABC, AC, ABC}.

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

Кроме понятия замыкания будем использовать и противоположное ему понятие.

Если имеется множество функциональных зависимостей F над схемой R и множество G всех возможных функциональных зависимостей над R, то внешностью множества F будет называться множество F- =F+ - G.

Другими словами, множество G содержит все зависимости, которые нельзя вывести из F.

3.4.4. Выводы на основе аксиом вывода

Как уже упоминалось, если F влечет зависимость XY, то всегда можно из множества F вывести зависимость XY с помощью аксиом вывода. Эту последовательность применения аксиом называют выводом зависимости XY. В процессе вывода включаются зависимости, которые либо принадлежат множеству F, либо получаются в результате применения аксиом вывода к совокупности зависимостей, принадлежащих F и выведенных ранее.

- 87 -

Рассмотрим пример вывода для множества F = {ABE, AGJ, BEI, EG, GIH} функциональной зависимости ABGH.

Перед получением вывода напомним, что в него входят на каждом шаге выводимые функциональные зависимости, исходные (заданные ранее или выведенные на одном из предыдущих шагов) и правила вывода (в рассматриваемом случае - аксиомы вывода).

Шаг

Полученная

Исходные

Правило вывода

 

зависимость

зависимости

 

1

AB AB

 

Рефлексивность

2

AB B

AB AB

Проективность

3

AB E

 

Дано

4

AB BE

AB B, AB E

Аддитивность

5

BE I

 

Дано

6

AB I

AB BE, BE I

Транзитивность

7

E G

 

Дано

8

AB G

AB E, E G

Транзитивность

9

AB GI

AB G, AB I

Аддитивность

10

GI H

 

Дано

11

AB H

AB GI, GI H

Транзитивность

12

AB GH

AB G, AB H

Аддитивность

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

Шаг

Полученная

Исходные

Правило вывода

 

зависимость

зависимости

 

1

AB E

 

Дано

2

BE I

 

Дано

3

AB I

AB E, BE I

Псевдотранзитивность

4

E G

 

Дано

5

AB G

AB E, E G

Транзитивность

6

AB GI

AB G, AB I

Аддитивность

7

GI H

 

Дано

8

AB H

AB GI, GI H

Транзитивность

9

AB GH

AB G, AB H

Аддитивность

Второй вариант вывода короче, однако результат получен тот же: функциональная зависимость AB GH выводится из множества функциональных зависимостей F.

В теории реляционных баз данных часто применяется понятие используемого множества вывода. Если мы рассмотрим столбец

- 88 -

«Полученная зависимость», то увидим, что в него входят два вида зависимостей: взятые из множества F и выведенные из них.

Используемым множеством вывода P функциональной зависимости X Y из множества функциональных зависимостей F называется такое его подмножество G, в которое входят только те зависимости из F, которые используются при выводе.

В рассмотренном примере используемым множеством будет следующее множество: G = {ABE, BEI, EG, GIH}. В используемое множество не вошла только одна зависимость из F:

AGJ.

Различным выводам функциональных зависимостей в общем случае соответствуют различные используемые множества.

Ранее давалось утверждение, что система аксиом Армстронга полна. Покажем на том же примере, что вывод можно получить и с помощью одних только аксиом Армстронга.

Шаг

Полученная

Исходные зависимости

Правило вывода

 

зависимость

 

 

1

AB E

 

Дано

2

BE I

 

Дано

3

AB I

AB E, BE I

Псевдотранзитивность

4

E G

 

Дано

5

AB G

AB E, E G

Псевдотранзитивность

6

GI H

 

Дано

7

GH GH

 

Рефлексивность

8

GI GH

GI H, GH GH

Псевдотранзитивность

9

GI GI

 

Дано

10

ABG GI

AB I, GI GI

Псевдотранзитивность

11

AB GI

AB G, ABG GI

Псевдотранзитивность

12

AB GH

AB GI, GI GH

Псевдотранзитивность

Обратите внимание на то, что на шагах 5 и 12 использовалась практически аксиома транзитивности, что правомерно, поскольку данная аксиома является частным случаем аксиомы псевдотранзитивности с Z= .

Следует заметить, что выводы с помощью аксиом Армстронга можно считать больше упражнением для ума, чем аппаратом для практической работы, из-за достаточно большой сложности, как стало ясно уже на достаточно простом примере.

-89 -

3.4.5.RAP-последовательность вывода

Ранее уже было показано, что некоторые подмножества аксиом вывода обладают полнотой, то есть если существует последовательность вывода P для XY, использующая аксиомы F1-F2, то обязательно существует и последовательность вывода P` для XY , которая использует только аксиомы из выбранного подмножества.

Однако на практике наибольшее применение нашло множество аксиом, которое не является подмножеством аксиом F1-F6. Это множество называется B-аксиомами. Если мы имеем отношение r(R) и подмножества X, Y, Z и W схемы R и одиночного атрибута C в R, то имеем набор аксиом:

B1.

Рефлексивность

X X

B2.

Накопление

{X YZ, Z CW} |= X YZC

B3.

Проективность

X YZ |= X Y

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

Шаг

Полученная

Исходные зависимости

Правило вывода

 

зависимость

 

 

1

X YZ

 

Дано

2

X Z

X YZ

Проективность

3

Z CW

 

Дано

4

X CW

X Z, Z CW

Транзитивность

5

X C

X CW

Проективность

6

X YZC

 

Аддитивность

Полнота B-аксиом доказывается выводом из них аксиом Армстронга. Рефлексивность совпадает с аксиомой B1. Пополнение выводится следующим образом:

Шаг

Полученная

Исходные зависимости

Правило вывода

 

зависимость

 

 

1

ZX ZX

 

Рефлексивность

2

X Y

 

Дано

3

ZX ZXY

ZX ZX, X Y

Накопление

4

ZX Y

ZX ZXY

Проективность

Теперь рассмотрим вывод для псевдотранзитивности:

Шаг

Полученная

Исходные

Правило вывода

 

зависимость

зависимости

 

1

ZX ZX

 

Рефлексивность

- 90 -

2

X Y

 

Дано

3

ZX ZXY

ZX ZX, X Y

Накопление

4

YZ W

 

Дано

5

ZX ZXYW

ZX ZXY, YZ W

Накопление

6

ZX W

ZX ZXYW

Проективность

Как видно из приведенных выводов, последовательность вывода можно достаточно строго формализовать. Такой подход называется RAP-последовательностью вывода (по первым буквам названия B- аксиом: Reflexivity, Accumulation, Projectivity). Эту последовательность можно записать в виде трех правил для проверки принадлежности XY к замыканию множества F:

1.Первая зависимость в последовательности вывода - XX .

2.Последняя зависимость - XY.

3.Все промежуточные зависимости определяются следующим образом: они либо принадлежат F, либо выводятся с помощью аксиомы B2.

Рассматриваемый подход позволяет достичь нужного результата путем многократного аккуратного перебора всех функциональных зависимостей в множестве F. Другим очевидным преимуществом данного метода является простота его программной реализации, к которой мы еще вернемся несколько позже.

В качестве примера рассмотрим опять то же множество функциональных зависимостей, что и для вывода с помощью системы аксиом F1-F6. Множества F = {ABE, AGJ, BEI, EG, GIH}. Надо вывести функциональную зависимость ABGH.

Шаг

Полученная

Исходные зависимости

Правило вывода

 

зависимость

 

 

1

AB AB

 

Рефлексивность

2

AB E

 

Дано

3

AB ABE

AB AB, AB E

Накопление

4

BE I

 

Дано

5

AB ABEI

AB B, AB E

Накопление

6

E G

 

Дано

7

AB ABEIG

AB ABEI, E G

Накопление

8

GI H

 

Дано

9

AB ABEIGH

AB ABEIG, GI H

Накопление

10

AB GH

AB ABEIGH

Проективность

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