(SELECT Rl.A
FROM Rl. R2
WHERE Rl.A = R2.B AND Rl.C = R2.D)
Второй запрос:
(SELECT Rl.A FROM Rl WHERE Rl.K =
(SELECT AVG (R2.B) FROM R2 WHERE Rl.C = R2.D)
Или
(SELECT Rl.A FROM Rl. R3
WHERE Rl.C = R3.D AND Rl.K = R3.L)
R3 = SELECT R2.D, L AVG (R2.B)
FROM R2
GROUP BY R2.D
При использовании подобного подхода в оптимизаторе запросов не обязательно производить формальные преобразования запросов. Оптимизатор должен в большей степени использовать семантику обрабатываемого запроса, а каким образом она будет распознаваться — это вопрос техники.
Заметим, что в кратко описанном нами подходе имеются некоторые тонкие семантические некорректности. Известны исправленные методы, но они слишком сложны технически, чтобы рассматривать их в данном пособии.