Bulk Evaluation of User-Defined Functions in XQuery
Hromadné vyhodnocování uživatelských funkcí v jazyce XQuery
dizertační práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/24326Identifikátory
SIS: 42941
Kolekce
- Kvalifikační práce [10690]
Autor
Vedoucí práce
Oponent práce
Kuznetsov, Sergey
Krátký, Michal
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
11. 9. 2009
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Prospěl/a
Dotazy v jazyce XPath jsou obvykle překládány do algebraického systému kombinujícího tradiční relační operátory s operátory specifickými pro XML. Konstrukce FLWOR jsou pak reprezentovány operátory nest, unnest, join a dalšími, čímž se ztrácí jejich vnořený charakter a otevírá se příležitost pro hromadné vyhodnocování a restrukturalizaci spojení. V jazyce XQuery přibývají dva další problémy - konstrukce stromů a přítomnost uživatelských funkcí. Rekurzivní charakter funkcí nedovoluje reprezentaci tohoto jazyka uvnitř relační algebry. V této práci je prezentován nový přístup k vyhodnocování založený na expandující síti relačních operátorů, nazvané R-program. V tomto prostředí jsou funkce vyhodnocovány hromadně namísto separátního vyhodnocování každého volání zvlášť. Vedle zřejmých výhod hromadného vyhodnocování R-programy dovolují restrukturalizaci toku dat přes rozhraní funkcí. V práci je uvedena sada transformací využivajících tyto schopnosti a algoritmy statické interprocedurální analýzy určující aplikovatelnost uvedených transformací.
XPath queries are usually translated into an algebra that combines traditional relational operators and XML-speciffic ones. In particular, FLWOR loops are represented using nest, unnest, join, and similar operators and their original nested-loop nature disappears, creating an opportunity for bulk evaluation and join reordering. In XQuery, two additional issues shall be handled - tree construction and the presence of user-deffined functions. The recursive nature of functions pushes the problem outside of the range of relational algebra. This thesis presents a novel evaluation framework based on an expanding network of relational operators, called R-program. In this environment, functions are evaluated in bulk instead of evaluating each call separately. Besides obvious advantages of bulk evaluation, R-programs also allow rearrangement of data flow across function boundaries. A set of program transformations employing these capabilities is described; together with rule-based static interprocedural analysis algorithms used to determine the applicability of the transformations.