Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobie.doc
Скачиваний:
72
Добавлен:
11.11.2019
Размер:
6.36 Mб
Скачать

4.3.1.3. Правила реляционной алгебры

Правильно построенная формула на множестве отношений R с помощью операторов ,  и  называется алгебраически выражением.

Так как в результате исполнения алгебраических операций всегда формируется только одно отношение, то алгебраическое выражение, сформированное на множестве отношений, есть отображение <, , >: R r.

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

  • r’=B1(B2 (r)) = B2(B1 (r)) – операция выбора коммутативна;

  • r’=B(r1r2)= B(r1)B(r2) – операция выбора над пересечением отношений равносильна пересечению операций выбора над каждым отношением, но B(r1)B(r2) более рациональна по времени;

  • r’=B(r1r2)= B(r1)B(r2) – операция выбора над объединением отношений равносильна объединению операций выбора над каждым отношением, но B(r1)B(r2) более рациональна по времени ;

  • r’=B(r1\r2)= B(r1)\B(r2) – операция выбора над разностью отношений равносильна разности операций выбора над каждым отношением, но B(r1)\B(r2) более рациональна по времени;

  • r’=B(r1>< r2)= B(r1)><r2 – операция выбора над соединением отношений равносильна соединению одного отношения с операцией выбора над другим отношением, но B(r1) )><r2 более рациональна по времени, так как B(r1>< r2) обрабатывает все кортежи прямого произведения r1 и r2;

  • r’=B(rel(r1))=rel(B(r1)) – операция проекции коммутативна с операцией выбора;

  • r’=(r1><r2)= (r2><r1) - операция соединения коммутативна;

  • r’=(r1><r2)><r3=r1><(r2><r3) – операция соединения ассоциативна.

4.3.2. Реляционное исчисление

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

Пусть r’={ t’ F(t’)}, где t’ – кортеж отношения, а F(t) - формула логической функции.

Также как в исчислении предикатов введем понятия переменные и постоянные кортежи. Для обозначения перемен­ных кортежей используем символы x, y, z,... , а для постоянных кортежей - a, b, c,... Любой постоянный или переменный кортеж называют термом и обозначают ti.

Элементарная формула определяется следующими правилами:

  • если r - имя отношения, а t - терм, то r(t) –элементарная формула;

  • если x и y – переменные кортежи и задан оператор сравнения двух или нескольких атрибутов Ai и Aj, то x(Ai)y(Aj) - элементарная формула;

  • никаких других формул нет.

Также как в исчислении предикатов введем понятия “свободных переменных-кортежей “ и “связных переменных-кортежей” Переменная-кортеж является связанной, если ей предшествует квантор по этой же переменной и свободной в противном случае.

Формулы реляционного исчисления с переменными-кортежами могут быть определены из элементарных формул рекурсивно:

  • любая элементарная формула есть формула, т.е. F= r(t) и F= x(Ai)y(Aj);

  • если F1 и F2 -формулы, то (F1), (F1 F2), (F1 F2) также формулы;

  • если x - переменный кортеж, F(x) - формула, то x(F) и x(F) также формулы.

  • никаких иных формул, кроме построенных по 1), 2), и 3) нет.

Итак, r’={t’ F(t)} есть множество свободных переменных-кортежей в F(t), формируемое связанными переменными-кортежами для истинного значения формулы F(t).

Операция выборки

r’={t’| x(r(x)(x(Ai)kdi))} или r’={t’| x(r(x)(x(Ai)x(Aj)))}.

Квантор существования используют потому, что накладываемые условия (x(Ai)kdi) или (x(Ai)x(Aj)) формируют частное суждение на множестве кортежей отношения. Условия могут быть заданы функциями kdi:=f(Ai) или Aj:=f(Ai, Aj).

Операция проекции

r’={t’| x(r(x)(t’[1]=x(Ai))(t’[2]=x(Aj))..(t’[n]=x(An))}.

Квантор всеобщности используют потому, что в результирующем отношении используют все кортежи исходного отношения.

Операция объединения

r’={t’| xy(r1(x)r2(y)((t’=x)(t’=y))}.

Квантор всеобщности используют потому, что в новое отношение следует перенести все кортежи отношений r1(x) и r2(y).

Операция разности

r’={t’| xy(r1(x)r2(y)((t’=x)(t’=y))}.

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

Операция пересечения

r’={t’| xy(r1(x)r2(y)(t’=x)(t’=y)}.

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

Операция прямого произведения

r’={t’|xy(r1(x)r2(y)(t’[1]=x[1])(t’[2]=x[2])..(t’[n1]=x[n1])

(t’[n1+1]=y[1]) (t’[n1+2]=y[2]).. (t’[n1+n2]=y[n2]))}.

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

Операция естественнного соединения

r’={t’|xy(r1(x)r2(y)(x(Ai)=y(Aj))(t’[1]=x[1])..(t’[i]=x[i]=y[j])..

(t’[n1]=x[n1])(t’[n1+1]=y[1])(t’[n1+2]=y[2])..(t’[n1+n2-1]= y[n2]))}.

Операция -соединения

r’={t’|xy(r1(x)r2(y)(x(Ai)y(Aj))(t’[1]=x[1])..(t’[i]=x[i])..

(t’[n1]=x[n1])(t’[n1+1]=y[1])..(t’[n1+j]=y[j])..(t’[n1+n2]= y[n2]))}.

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