BD-2st-1.2-w13.tresc-1.1-Slajd6

Z Studia Informatyczne
Wersja z dnia 12:41, 29 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przepisywanie zapytań: przesuwanie predykatów (2)

Przepisywanie zapytań: przesuwanie predykatów (2)


Prezentowany slajd również przedstawia regułę transformacji wykorzystującą technikę przesuwania predykatów selekcji przed operator połączenia. Rozważmy zapytanie przedstawione na slajdzie, którego celem jest znalezienie, dla każdego wykładu (wid), wieku najstarszego wykładowcy, który prowadzi ten wykład. Zapytanie przedstawione po lewej stronie zawiera klauzulę „HAVING max(wiek) > 40”. W oryginalnym drzewie zapytania, ten predykat jest weryfikowany po wykonaniu operacji połączenia relacji Wykładowca i relacji Wykład. Przesuwając predykat selekcji, wyspecyfikowany przez tę klauzulę, przed operator połączenia, minimalizujemy rozmiar jednego z argumentów operacji połączenia. W tym przypadku, minimalizujemy, prawdopodobnie, również rozmiar wyniku wykonania operacji połączenia. Niestety, przedstawiona reguła jest specyficzna i pozwala przesunąć predykat selekcji, zdefiniowany klauzulą HAVING, ze względu na typ operatora agregacji. Czy można zastosować tą regułę w przypadku, gdy operatorem agregacji jest operator MIN?


<< Poprzedni slajd | Spis treści | Następny slajd >>