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

Определения. Пусть A1,A2, ..., An – набор атрибутов с приписанными им доменами D1, D2, ... Dn. Выражение R= < A1,A2, ..., An > называется схемой атрибутов. Любое отношение r с атрибутами из множества R называется отношением над схемой R (обозначается r = r(R)).

Пусть Q- непустое подмножество R, кортеж t принадлежит отношению r(R) , t=<t1, t2, ... , tn>. Ограничением кортежа t на множестве Q называется кортеж t(Q), состоящий из тех значений ti, что iQ.

Определение. Пусть множества А, В R, r – отношение над схемой R. Функциональной зависимостью называется формальное выражение вида AB. Функциональная зависимость AB выполняется в отношении r, если

( t, qr ) t(A)=q(A)  t(B)=q(B) (2)

Из определения следует, что если К является ключом r, то в r выполнятся функциональная зависимость КR. Поэтому понятие ключевой зависимости является частным случаем функциональной зависимости.

Рассмотрим в качестве примера отношение Авиарейсы (ПИЛОТ, РЕЙС, ДАТА, ВРЕМЯ ВЫЛЕТА). В этом отношении выполняются следующие ограничения:

  1. Для каждого рейса назначается только одно время вылета.

  2. Для каждого пилота, времени вылета и даты назначается один рейс.

  3. Для каждого рейса и даты назначается один пилот.

Эти ограничения можно записать в виде следующих функциональных зависимостей:

  1. {РЕЙС}{ВРЕМЯ}

  2. {ПИЛОТ, ДАТА, ВРЕМЯ} {РЕЙС}

  3. {РЕЙС, ДАТА}{ПИЛОТ}

Реляционное исчисление. Задача этой части – построить аксиоматическое исчисление функциональных зависимостей, т.е. описать систему аксиом и правил вывода, позволяющих выводить одни ф.з. из других, причем если в отношении r выполняются исходные, то выполняются и производные зависимости. Наша аксиоматика называется системой Армстронга и состоит из одной аксиомы и 3 правил вывода. Для краткости будем называть функциональные зависимости просто формулами.

Определение. Правило

называется допустимым, если для любого отношения r из того что все формулы из F выполняются в r, следует что формула A B также выполняется в r.

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

1. Аксиоматика функциональных зависимостей Армстронга.

Аксиомы:

Аксиомы: Пусть R—множество атрибутов, AR. Аксиомой является функциональные зависимости вида AA.

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

1) правило накопления

2) правило проективности

Определение. Пусть F- множество формул над схемой R, X,YR. Формула XY является логическим следствием набора формул F, если для любого отношения r над схемой R, если все формулы из F выполняются в r , то в r выполняется формула XY. Множество всех логических следствий из F будем обозначать F*.

Определение. Пусть F- множество формул над схемой R. Замыканием F (обозначается [F]) называется множество всех формул, выводимых из F.

Определение. Исчисление называется полным, если для любого множества формул F F* [F]. Исчисление называется непротиворечивым, если [F]  F*.

Теорема полноты. Аксиоматика Армстронга является полной и непротиворечивой.

Доказательство. 1. Докажем сначало непротиворечивость. Пусть F – непустое множество формул над схемой R. . Нам надо показать, что любая формула, выводимая из F по правилам Р1, Р5, является логическим слествием. Пусть r- произвольное отношение, в котором выполняются формула XY из F, т.е. ( t, qr ) t(X)=q(X)  t(Y)=q(Y). Пусть для кортежей t, qr выполняется t(XZ)=q(XZ), тогда выполняется и t(X)=q(X), и , значит, t(Y)=q(Y). Это означает, что в r выполняется формула XZY. Значит, формулы, выведенные по правилу Р1, являются логическими следствиями F. Аналогично доказывается, что применение правила P5 также дает логические следствия (доказать самостоятельно!) , и первая часть теоремы доказана.

2. Докажем теперь полноту аксиоматики Армстронга. Пусть она – не полна. Тогда существует формула XY, являющаяся логическим следствием F, но не выводимая из F. Заметим, что если из F выводимы формулы XY, XZ, то по правилу аддитивности выводима формула XYZ. Поэтому, найдется некоторое максимальное множество V такое, что XV выводимо из F, и для любого Z, XZ выводимо, влечет ZV. В силу предположения, Y не содержится в V. Определим некоторое отношение r, содержащее два кортежа:

где

Очевидно, что p(X)=q(X), и p(Y)q(Y), поэтому формула XY не выполняется в r. Покажем, однако, что все формулы из F, выполняются в r. Действительно, пусть формула AB принадлежит [F]. Если A не является подмножеством U, то p(A)q(A), и формула p(A)=q(A) p(В)=q(В) истинна. Если AU, то BU, т.к. выводимо XU, UA, AB и по правилу транзитивности, XB, и в силу выбора U, BU. Таким образом, все формулы из F выполнимы в r, а формула XY не выполняется в r, и, значит, последняя формула не является логическим следствием формул F. Получили противоречие, и теорема доказана.

Доказанная теорема дает практический способ проверки выводимости формулы из набора других формул:

  1. ищем максимальное :

  2. проверяем: (если ‘да’ , то V выводима из U)

Пример

Проверим, выводима ли .

Рисуем граф:

J

AB E G

I

H

Вывод: замыкание АВ содержит весь перечень формул, то есть , JH – подмножество этой формулы выводимо.

Оценка сложности и построение максимального множества

Исходное множество разрастается путем добавления новых элементов.

Наихудший случай:

- строится за n шагов .

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