XQuery Query Processing in Relational Systems
With the rapid growth of XML documents to serve as a popular and major media for storage and interchange of the data on the Web, there is an increasing interest in using existing traditional relational database techniques to store and/or query XML data. Since XQuery is becoming a standard XML query language, significant effort has been made in developing an efficient and comprehensive XQuery-to-SQL query processor. In this thesis, we design and implement an <em>XQuery-to-SQL Query Processor</em> based on the <em>Dynamic Intervals</em> approach. We also provide a comprehensive translation for XQuery basic operations and FLWR expressions. The query processor is able to translate a complex XQuery query, which might include arbitrarily composed and nested FLWR expressions, basic functions, and element constructors, into a single SQL query for RDBMS and a physical plan for the <em>XQuery-enhanced Relational Engine</em>. In order to produce efficient and concise SQL queries, succinct XQuery to SQL translation templates and the optimization algorithms for the SQL query generation are proposed and implemented. The preferable <em>merge-join</em> approach is also proposed to avoid the inefficient <em>nested-loop</em> evaluation for FLWR expressions. <em>Merge-join</em> patterns and query rewriting rules are designed to identify XQuery fragments that can utilize the efficient <em>merge-join</em> evaluation. Proofs of correctness of the approach are provided in the thesis. Experimental results justify the correctness of our work.