Преобразование исходного плана выполнения запроса в аль-
тернативный план.
На рис. 1 приведено описание исследуемого клас-
са запросов к базе данных. Здесь используются следующие обозначе-
ния: Ri (
i
= 1
, n
)
— таблица
i
-го подзапроса, из которой читаются
записи в процессе выполнения запроса. Некоторые или все таблицы
могут совпадать; A10 — атрибут таблицы R1, который является резуль-
татом выполнения запроса (A10 может быть подмножеством атрибутов
или операций агрегирования); Ai1 (
i
= 1
, n
−
1)
— атрибут
i
-й табли-
цы, для которого установлено подусловие поиска Ai1
τ
i fi+1(Ai+1, 2),
τ
i (
i
= 1
, n
−
1)
— арифметический оператор сравнения (
=
, >, >
=
, <
и т.д.), fi (
i
= 2
, n
)
— одна из операций агрегирования (
MIN
,
MAX
,
SUM
,
COUNT
,
AVG
и др.). Это может быть и арифметическое выраже-
ние, куда входят несколько операций агрегирования; Ai2 (
i
= 2
, n
)
—
атрибут
i
-й таблицы, являющийся аргументом функции агрегирования
fi. Агрегирование значений Ai2 выполняется для тех записей таблицы
Ri, которые удовлетворяют условию WHERE
i
-го вложенного под-
запроса. Будем считать, что 1-й вложенный подзапрос — это самый
внешний запрос SELECT; Ai3 (
i
= 1
, n
−
1)
– атрибут
i
-й таблицы,
по которому устанавливается соединение с (
i
+1)-й таблицей (Ri+1) в
(
i
+ 1
)-м подзапросе (поэтому подзапрос является коррелированным);
Ai4 (
i
= 2
, n
) — атрибут
i
-й таблицы, по которому устанавливается
соединение с (
i
−
1
)-й таблицей (Ri-1) в
i
-м подзапросе.
На рис. 2,
а
показан результат частичной трансляции описания за-
проса (см. рис. 1) в дерево выражений реляционной алгебры (
π
и
σ
— операции проекции и селекции). На каждом
i
-м уровне вложенно-
сти (
i
= 1
, n
−
1)
введена операция
σ
без индекса, т.е. без условия,
Рис. 1. Описание исследуемого класса запросов
100 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2006. № 1