Преобразования операций реляционной алгебры

Операндами операций реляционной алгебры (РА) являются отношения, т.е. неупорядоченные множества кортежей. Для выполнения операций необходимо просмотреть все кортежи исходного отношения (или отношений). Следствием этого является большая размерность операций РА. Уменьшения размерности можно достичь, изменяя последовательность выполняемых операций.

В качестве примера приведём отношения R1 и R2, содержащие по 1000 кортежей, причём только 10 кортежей в каждом отношении удовлетворяют условию F. Если выполнять следующую последовательность операций:

sF(R1 U R2),

то после выполнения объединения получится 2000 кортежей (если отношения не содержат одинаковых кортежей), а после селекции останется 20 записей. Если изменить последовательность выполнения операций:

sF(R1) U sF(R2)

то после селекции останется по 10 записей из каждого отношения, объеди-нение которых даст 20 требуемых кортежей. Если учитывать, что объединение выполняется путем сортировки данных (для удаления одинаковых кортежей) и промежуточный результат надо хранить, то выигрыш и по объёму памяти, и по времени очевиден: гораздо быстрее отсортировать 20 кортежей, а не 2000.

Оптимизация выполнения запросов реляционной алгебры основана на понятии эквивалентности реляционных выражений. Операндами выражений являются переменные-отношения Ri и константы. Каждое выражение реляционной алгебры определяет отображение кортежей переменных-отношений Ri (i=1,…,n) в кортежи единственного отношения, которое получается в результате подстановки кортежей каждого Ri и выполнения всех определяемых выражением вычислений.

Два выражения реляционной алгебры считаются эквивалентными, если они описывают одно и то же отображение.

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

  1. Закон коммутативности для декартовых произведений:

R1×R2=R2×R1

  1. Закон коммутативности для соединений (F – условие соединения):

R1><FR2= R2><FR1

  1. Закон ассоциативности для декартовых произведений:

(R1×R2)×R3=R1×(R2×R3)

  1. Закон ассоциативности для соединений (F1, F2 – условия соединения):

(R1><F1R2) ><F2R3= R1><F1(R2><F2R3)

  1. Комбинация селекций (каскад селекций):

sF1(sF2(R))= sF1vF2(R)

  1. Комбинация проекций (каскад проекций):

pA1,A2,...Am(pB1,B2,...Bn(R))=pA1,A2,...Am(R), где {Am}d{Bn}

  1. Перестановка селекции и проекции:

sFpA1,A2,...,Am(R))= pA1,A2,...,Am(sF(R))

  1. Перестановка селекции с объединением:

sF(R1 U R2)=sF(R1) U sF(R2)

  1. Перестановка селекции с декартовым произведением:
    • sF(R1×R2)= (sF1(R1))×(sF2(R2))

(если F = F1vF2, где F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие только в R2);

    • sF(R1×R2)=(sF(R1))×R2

(если F содержит атрибуты, присутствующие только в R1);

    • sF(R1×R2)=R1×(sF(R2))

(если F содержит атрибуты, присутствующие только в R2);

    • sF(R1×R2)= sF2(sF1(R1)×R2)

(если F = F1vF2, где F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие и в R1, и в R2).

  1. Перестановка селекции с разностью:

sF(R1-R2)=sF(R1)-sF(R2)

  1. Перестановка проекции с декартовым произведением:

pA1,A2,...,Am(R1×R2)= (pB1,B2,...,Bn(R1))×(font face=symbol>pC1,C2,...,Cr(R2))

где атрибуты {Bn} d{Am}, {Сr}d{Am} и атрибуты B1,B2,...,Bn представлены в отношении R1, а атрибуты С12,...,Сr – в R2.

  1. Перестановка селекции с пересечением:

sF(R1 ∪ R2)=sF(R1) ∪ sF(R2)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: