Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
94
Добавлен:
23.09.2019
Размер:
2 Мб
Скачать
☆

Ориентированный ациклический граф вывода

Ориентированный (directed) ациклический (acyclic) граф (DA-граф) – это орграф, не имеющий циклов. Помеченный DA-граф – это DA-граф, каждой вершине которого поставлен в соответствие некоторый элемент из множества меток L.

Определение. Пусть F – множество ФЗ над схемой R. DA-граф вывода над F – это DA-граф, помеченный символами атрибутов из R и построенный по следующим правилам.

  1. Множество изолированных вершин является DA-графом вывода над F.

  2. Пусть DA-граф вывода над F содержит n вершин i с метками Ai и в F существует ФЗ A1A2…AkCZ (k n). Определим новый граф, добавив к исходному DA-графу вывода вершину u с меткой C и дуги (1, u), (2, u),…, (k, u). Полученный граф является DA-графом вывода над F.

  3. Никакой другой граф не является DA-графом вывода над F.

Сокращённо DA-граф вывода над F называют DDA-графом над F (от английского derivation directed acyclic). Любой DDA-граф получается однократным применением правила (1) и многократным применением правила (2).

Пример

Пусть F – множество ФЗ из предыдущего примера: F = {ABE, AGJ, BEI, EG, GIH}. Ниже представлены разные этапы построения DDA-графа над F.

Конец примера

Определение. Пусть H – DDA-граф, содержащий вершину , которая не имеет входящих дуг. Тогда называется начальной вершиной. Начальная вершина добавляется с помощью правила (1).

Определение. Пусть H – DDA-граф над F. H называется DDA-графом для XY, если X – множество меток начальных вершин и каждый атрибут в Y – метка вершины в H.

Определение. Используемым множеством в DDA-графе H над F U(H) называется множество всех ФЗ в F, использованных при применении правила (2) во время построения графа H.

Пример

В предыдущем примере DDA-граф для ФЗ ABAB содержит две изолированных вершины. Его используемое множество пусто.

Конец примера

Теорема. Для множества ФЗ F над R и ФЗ XY следующие утверждения эквивалентны:

  1. F |= XY;

  2. Существует последовательность вывода на F для XY;

  3. Существует DDA-граф над F для XY.

Следствие. DDA-граф H над F для XY с U(H)=G существует тогда и только тогда, когда существует RAP-последовательность вывода на F для XY c используемым множеством G.

В [14] приводится алгоритм, проверяющий принадлежность XY множеству F+ (выводимость функциональной зависимости) с временной сложностью O(n), где n – количество ФЗ в F.

Определение реляционной базы данных

Сформулируем определение ключа на языке ФЗ. Ключ для схемы R – это подмножество K R, такое, что любое отношение r(R) удовлетворяет ФЗ KR, но никакое собственное подмножество K K этим свойством не обладает.

Будем считать, что схема R некоторого отношения состоит из двух частей: S и K, где S – множество атрибутов, K – множество выделенных ключей. Выделенным ключом может быть, в частности, суперключ. Введём обозначение R=(S, K).

Определение. Пусть U – множество атрибутов. Схемой реляционной БД R над U называется совокупность схем отношений {R1, R2,…, Rn}, где Ri=(Si, Ki), i = 1,2,…, n, ni=1 Si = U, и Si Sj при i j.

Определение. Реляционной БД d со схемой БД R называется такая совокупность отношений {r1, r2,…, rn}, ri = ri(Si), что для каждой схемы R = (S, K) из R существует отношение r в d со схемой S и удовлетворяющее каждому ключу из K.

время

Рейс

Время

83

10:00

83

10:00

83

10:00

81

05:00

81

05:00

81

05:00

41

13:00

31

18:00

16

13:00

16

13:00

Пример

рейсы

Пилот

Рейс

Дата

Иванов

83

09.01.2000

Петров

83

11.01.2000

Сидоров

83

13.01.2000

Петров

81

08.01.2000

Федоров

81

09.01.2000

Федоров

81

13.01.2000

Федоров

41

15.01.2000

Петров

31

12.01.2000

Иванов

16

10.01.2000

Сидоров

16

12.01.2000

БД d={рейсы, время} имеет схему R = {(Пилот Рейс Дата, {Пилот Дата}), (Рейс Время, {Рейс})}.

Конец примера