XQuantum is an XML database that stores information and data as XML rather than
in relational tables. The system fully implements the XQuery
standard developed by the World Wide Web Consortium, W3C.
XQuantum is based on the January 23, 2007 W3C standard, XQuery 1.0: An XML Query Language
and the May 1, 2006 W3C draft standard, XQuery 1.0 and XPath 2.0 Full-Text.
Query optimization, plan generation, and indexing
can improve performance thousands of times depending on the query.
These techniques become essential whenever the size of the XML
data is greater than roughly 20 megabytes.
XQuantum uses cost-based query plan generation, which uses statistics about
the XML data to choose the best search algorithm. The diagram
below shows the various query processing steps:
Query processing steps used by XQuantum
During processing, the query is converted into an expression belonging to
an abstract algebra. The expression is then rewritten into a normal form
using the algebra's identity rules.
Next, a query plan is generated by computing the cost of using different
algorithms and selecting the best one.
The optimized plan is then executed, producing a ground expression stream;
(a ground expression is a constant expression with no functions or variables).
The ground expression is then serialized or converted into an XML stream.
The Type System
XQuery is a statically typed language, which uses type information to
statically check queries for correctness.
XQuantum generalizes XQuery's sequence type syntax to include full
regular expression types. The extended type system makes working
with XML data types much simpler.
XQuantum types XML content using optional type definitions stored in external type modules called .rtd files. A type module is the counterpart
of a query module and defines the data type for a single XML file. During query evaluation the validator applies this type information to the XML content, creating a typed ground expression stream.
Information on the XQuery standard can be found at the W3C web
site, www.w3.org/XML/Query. The
XQuery 1.0: A Query Language for XML
document describes the XQuery language, and the XQuery 1.0 and XPath 2.0 Full-Text document
describes the XQuery full-text extensions.