ZSBD-2st-1.2-w10.tresc-1.4-Slajd18

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Uporządkowanie wyników

Uporządkowanie wyników


W ogólnym przypadku wyrażenia XQuery zwracają wynik w ściśle określonym porządku. Wynika on albo z wyrażeń umieszczonych w klauzuli ORDER BY albo z oryginalnego porządku węzłów odczytywanych za pomocą klauzuli FOR.

Mimo iż dokumenty XML stanowią uporządkowane zbiory tekstowe, użytkownika może nie interesować kolejność zwracanych przez zapytanie XQuery elementów. Ze względów efektywnościowych można, zatem pozwolić sobie na pobieranie poszczególnych elementów bez zachowywania ich oryginalnego porządku.

Korzyści z takiego rozwiązania mogą być znaczące dla przykładu w sytuacjach, gdy dokumenty w rzeczywistości składowane są dla przykładu w relacyjnych lub obiektowych bazach danych i odtwarzanie dokumentów XML z uwzględnieniem oryginalnej kolejności elementów może być operacją kosztowną.

Deklaracja pozwalająca na zignorowanie porządku wynikowego ma postać funkcji unordered. Argumentem funkcji jest zapytanie, dla którego wynikowe krotki mogą być uzyskane w dowolnej kolejności.

Przykładowe zapytanie z wykorzystaniem funkcji unordered zostało przedstawione na slajdzie. Gdyby funkcji unordered nie było zbiór wynikowych elementów pracownik powinien się rozpoczynać od pracowników należących do pierwszego zespołu umieszczonego w dokumencie zespoly.xml. Użycie funkcji unordered może dla przykładu spowodować wykonanie operacji połączenia informacji pochodzącej z dokumentu zespoly.xml i pracownicy.xml w dowolny sposób, a następnie wygenerowanie odpowiedzi bez dodatkowego sortowania.


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