<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>XML Query Algera for Cost-based Optimization</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmirty Barashev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Proceedings of the Spring Young Researcher's Colloquium on Database and Information Systems</institution>
          ,
          <addr-line>Moscow, Russia, 2007</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Saint-Petersburg</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Several requirements for algebra suitable for e cient cost-based optimization are presented. It is shown that known XML algebras do not fully satisfy this requirements. A new algebra to satisfy better the requirements is introduced. ¤ This work was partially supported by RFBR (grant 0707-00268a).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Continously growing usage of XML data demands
for development of powerful query optimization
systems. Optimization approaches for XML databases
depend on database type. Relational based XML
DBMS decompose documents into conventional or
special binary relations [1]. XQuery clauses in such
systems are translated to queries in SQL-like
language and query processors employ traditional
relational query optimization techniques. So called
native XML DBMSs use their own data storage
formats. Query optimizers in the native XML
databases are not as e cient as their relational
counterparts. Usually they are limited with some logical
optimization methods and follow a naive physical
plan. However, an e cient optimizer should
consider many equivalent physical plans and choose the
best one using some cost function. Execution of
the best physical plan may be signi cantly,
sometimes several orders of magnitude faster comparing
to naive one. So the problem of generating the
optimization space is very important. Optimization
space is a set of equivalent expressions in some query
algebra and thus the nal plan quality is de ned by
some properties of the chosen algebra. Unlike
relational systems, there is no standard algebra for
XML queries, but there are many di erent algebras
[
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref3 ref7">12, 14, 4, 13, 8</xref>
        ] each having its own pros and cons.
      </p>
      <p>
        In this work we gather requirements for query
algebra suitable for e cient cost-based optimization
and propose an algebra based on elements of XAT
[
        <xref ref-type="bibr" rid="ref13">14</xref>
        ] and Xtasy [
        <xref ref-type="bibr" rid="ref11">12</xref>
        ] algebras and which meets the
requirements.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        Many researches in XQuery optimization are focused
on logical optimizations. A number of logical
transformations were considered in [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ], including
semantical optimization, pushing predicates, joins
reordering, eliminating redundant document-order sorts.
Rules of transforming XQuery queries to forms more
suitable for translation to SQL were described in [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ].
      </p>
      <p>
        XML Query Algebra [
        <xref ref-type="bibr" rid="ref2">3</xref>
        ] comes from the activity of
the W3C XML Query Working Group. That algebra
is mainly intended for the formal de nition of query
languages semantics. The algebra itself is an
abstract version of XQuery, where high-level operators
(e.g., n-ary for and sortby clauses) are mapped into
low-level algebraic operators. Rewriting rules are
provided resembling functional programming
languages rules and nested relational rules.
      </p>
      <p>
        Xtasy [
        <xref ref-type="bibr" rid="ref11 ref4">12, 5</xref>
        ] algebra also as YAT [
        <xref ref-type="bibr" rid="ref12">13</xref>
        ], XAT
[
        <xref ref-type="bibr" rid="ref13">14</xref>
        ] and SAL [
        <xref ref-type="bibr" rid="ref3">4</xref>
        ] algebras has operators de ned on
relational-like structures. Operations similar to
relational as selection, projection, join, cross product,
order by etc. have appeared in these algebras. But
also operations speci c to XPath and XQuery have
appeared. So in Xtasy they are presented by path
and return operations, those similar to bind and tree
in YAT algebra. In XAT and SAL algebras for
variable binding map operation is used.
      </p>
      <p>
        TAX [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ] is a query algebra developed in the
context of the TIMBER project. TAX data model is
based on unordered collections of ordered data trees,
and each TAX operator takes as input collections
of data trees, and produces as output collections
of data trees. Unlike YAT and SAL, TAX directly
manipulates trees without the need for an explicit
intermediate structure. Data extraction and
binding are performed by using pattern trees: pattern
trees, which resemble Xtasy input lters, describe
the structure of the desired data, and impose
conditions on them.
      </p>
      <p>MonetDB system [1] worth special attention.
Data in that system are stored as binary relations.
Queries are translated to special intermediate
SQLlike representation and then are executed as SQL.
Benchmarks show a signi cant superiority of
MonetDB over native XML DBMS, mostly when working
with big documents. The reason is that native XML
databases are lacking powerful query optimizers and
e cient indexing structures.</p>
    </sec>
    <sec id="sec-3">
      <title>Analysis of Algebra requirements</title>
      <p>Time required to evaluate some query could di er
very much depending on the chosen evaluation plan.
The main optimizer role is to nd the most e
ective one. The space of available physical plans is
mainly de ned by properties of algebra operations.
And the wider is that space the more e ective
evaluation plan could be found. Such properties of
algebraic operations as commutativity, associativity and
idempotance are desirable properties because they
extend search space, increasing optimizer’s freedom
for choosing optimal plan.</p>
      <p>One of the most important and widely used
constructions of XQuery are nested for-clauses. The
order of their evaluation in evaluation plan is
significant for performance as order of join operations in
relational algebra. Therefore the representation of
nested for-clauses with operations with good
algebraic properties is an important requirement.</p>
      <p>It is impossible to choose an order of operations
evaluation without estimation of a size of an
intermediate result, for example result of joining two
sequences from the given three. Therefore data
structures in query algebra must be good enough to
represent measurable intermediate results.</p>
      <p>
        XPath expressions also play an important role in
XQuery. There may be di erent plans of evaluating
the same XPath expression and some plans may be
much more expensive than others [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ]. So if XPath
would be presented with operations with good
algebraic properties probably the more e ective plan
could be found. It is the last important requirement.
      </p>
      <p>Concluding, XML query algebra suitable for
costbased optimization is expected to satisfy the
following requirements:
1. operations are de ned on data structures
suitable for representing measurable intermediate
results
2. nested for-clauses are mapped to operations
with good algebraic properties such as
commutativity and associativity
3. xpath expressions are also represented by
operations with good algebraic properties.</p>
      <p>W3C algebra operations de ned on sequences.
This de nition leads to several problems with an
intermediate result representation, because sequences
do not provide any information about
corresponding bound variables and e.t.c. Therefore there are
problems with intermediate result storing and
estimation that leads to problems with reordering of
some expensive operations. So this algebra does not
satisfy requirement (1). But this requirement is
satis ed by YAT, XAT, Xtasy algebras. These algebras
have operations de ned on relational-like structures,
which are as relations consist of tuples. This
structure is suitable for representing intermediate result
of joining group of sequences. In XAT algebra such
structure called XAT-table, in Xtasy Env.</p>
      <p>The XML Query algebra is very useful for
implementing simple XML query processors with ability
of logical optimization, but it appears unlikely that
it will form the basis for e ective implementations of
XML query processors with cost-based optimization.</p>
      <p>YAT, XAT and Xtasy algebras have
representation of nested for-clauses with join operations. These
operations have enough good algebraic properties.
So the requirement (2) is satis ed by these algebras.
But requirement (3) does not completely satis ed
by them. The reason is that their operations used
for xpath representation do not have complete
number of desirable algebraic properties. Therefore it is
impossible to arbitrary change evaluation order of
operations for navigational expressions.
4</p>
    </sec>
    <sec id="sec-4">
      <title>XAnswer Algebra</title>
      <p>In this section we propose new algebra called
XAnswer. This algebra is based on some elements of
XTasy and XAT algebras and satisfy requirements
described in previous section. First, it would be
described data structures, algebra operations de ned
on. After that main algebra operations, that are
similar to relational, would be introduced. And at
last speci c for XQuery algebraic operations would
be de ned and compared with analogues of Xtasy
algebra.
4.1</p>
      <sec id="sec-4-1">
        <title>XAnswer data structure</title>
        <p>
          XAnswer algebraic operations are de ned on
relational-like data structures like in [
          <xref ref-type="bibr" rid="ref11 ref13">12, 14</xref>
          ].
Below, this structure will be called Envelop. It is
represented with a table and consists of tuples which
contains XML-node values. Order of table attributes
or tuples is not signi cant.
        </p>
        <p>In case of XQuery each attribute of Envelop is a
name of variable that was bound in corresponding
subexpression. In case of XPath there are no any
variables, therefore some unique identi er is used as
corresponindg attribute instead of variable name.</p>
        <p>Lets consider a path expression:
book/author/address/country. Lets Assume
that identi er $VA denotes values of nodes with
tag name book, identi er $VB author, $VC
address, $VD country. The Envelop, obtained
after evaluation of considered path expression could
be represented with a table shown in Figure 1.</p>
        <p>XML data model assumes ordering of tags which
is missing in our Envelop structure. However for
optimization purposes better algebraic properties are
more important than ordering so we assume that
query result should be additionally sorted if needed.
Assuming these two Envelops are equal independent
of tuple or attribute order.
Path expressions are main building blocks of XQuery
expressions. Also their evaluation is one of the most
expensive elements in XQuery evaluation. Therefore
it is important to increase quality of xpath
evaluation plans. So query algebra has to provide a wide
space of equivalent plans for navigational
expressions. This problem could be solved by
representation of XPath with operations with good algebraic
properties. So XAnswer algebra use structural-join
(binary) and data extraction (unary) operations to
represent path expressions and each step of path
expression is represented with these operations.
4.2.1</p>
      </sec>
      <sec id="sec-4-2">
        <title>Structural-join operation</title>
        <p>
          Structural-join operation appears in many works
around the XPath optimization, for example [
          <xref ref-type="bibr" rid="ref1 ref14 ref5">6, 15,
2</xref>
          ]. XAnswer also has this operation with following
de nition:
        </p>
        <p>A ­axisAiBj B = f(x; y) j</p>
        <p>x 2 A; y 2 B; axisAiBj (x; y) = trueg</p>
        <p>Here A; B two input Envelops. Ai, Bj
attribute identi ers by which join is performed.
axisAiBj is a predicate by which join is performed.
It returns true, if elements of x and y, corresponding
to identi ers Ai; Bj are in axis relation (for example
child or parent).</p>
      </sec>
      <sec id="sec-4-3">
        <title>Example 1</title>
        <p>This example shows structural join of two
Envelops by child axis for attributes A2 and B1.
Result of joining is a new Envelop, every tuple of which
obtained by union of tuples of rst and second
Envelops in case when tuple element corresponding to
attribute B1 of the second Envelop is a child of
tuple element corresponding to attribute A2 of the rst
Envelop.</p>
        <p>Structural join operation has associativity(1)
and commutativity(2) properties. These properties
could be prooved using operation de nition.
(1) : (A ­axisAiBj B) ­axisBmCk C =</p>
        <p>= A ­axisAiBj (B ­axisBmCk C)
(2) : (A ­axisAiBj B) = (B ­axisAiBj A)
4.2.2</p>
      </sec>
      <sec id="sec-4-4">
        <title>Data Extraction operations</title>
        <p>There are some operations (leaf or unary
operations), which produces new Envelop without
provided any another as input. These operations are
presented with function call and element search
operations. GetDocumentRoot operation is a member
of function call operations family. This operation
generates a new Envelop containing root node for
provided document. GetDocuemntRoot operation
de ned as follows:</p>
        <p>GetDocumentRoot(Document) = fx j</p>
        <p>x is a root element of the Documentg</p>
        <p>The next important data extraction operation is
GetElement operation. It searches for elements, that
satisfy NodeTest condition in the provided set of
documents. For example as a NodeTest condition
could be a NameTest, i.e. some tag name.</p>
        <p>GetElement(N odeT est; DocSet) = fx j
x 2 elements of documents f rom DocSet;</p>
        <p>N odeT est(x) = trueg</p>
        <p>The result of evaluation of this operation is a new
Envelop containing values of nodes satisfying to the
NodeTest. As a single attribute of this Envelop,
some unique identi er is set. The following example
shows XAnswer algebraic expression for some
typical XPath twig query.</p>
      </sec>
      <sec id="sec-4-5">
        <title>Example 2</title>
      </sec>
      <sec id="sec-4-6">
        <title>Lets consider following path expression: document( doc.xml )/manufacturers//dealer/address The algebraic expression corresponding to this path expression is:</title>
        <p>((GetDocumentRoot(doc:xml)
­childv1v2 GetElement(manuf acturers; doc:xml))
­childv2v3 GetElement(dealer; doc:xml))
­childv3v4 GetElement(address; doc:xml)</p>
        <p>This algebraic expression could be represented
with a tree shown in Figure 3. For simplicity in
this gure does not provided some information like
axis predicates for structural joins. Evaluation is
performed by left-deep walking through this tree.
It means that for this tree rst would be extracted
document root node then manufacturers nodes then
would be performed structural join by child axis and
so on.</p>
        <p>Sometimes much more e ective plan could be
achieved by changing evaluation order of structural
joins. So Figure 4. shows alternative equivalent
algebraic expression for the expression from Example
2. Equivalence of these expressions could be proved
by sequential applying of rule (1). In this case rst
would be performed joining of manufacturers and
document root then joining of dealers and addresses,
and at last the structural join by descendant-or-self
axis for manufacturers and dealers is performed.
Some operations in XAnswer derived from relational
algebra. That are such operations as selection,
projection, join, cross product, orderby. . . These
operations have the same properties as their relational
analogues.</p>
        <p>Selection:</p>
        <p>SelectP A = fx 2 A j P (x) = trueg</p>
      </sec>
      <sec id="sec-4-7">
        <title>Projection:</title>
      </sec>
      <sec id="sec-4-8">
        <title>Join:</title>
        <p>ProjectAi1 :::Ain A = fz j
A ./P B = f(x; y) j x 2 A; y 2 B;
z = (xAi1 ; : : : ; xAin ); x 2 Ag
P(x; y) = trueg
4.3</p>
      </sec>
      <sec id="sec-4-9">
        <title>Speci c for XQuery operations</title>
        <p>For and Let operators also known as variable binding
operators are one of the most important operators
in XQuery. These operators are similar in that they
de ne a variable in query evaluation context and set
to it some current value.</p>
        <p>XAnswer also has For and Let operations.
4.3.1</p>
      </sec>
      <sec id="sec-4-10">
        <title>For operation</title>
      </sec>
      <sec id="sec-4-11">
        <title>For operation de ned as follows:</title>
        <p>F orAvairA = fz j z = P rojectAi A; x 2 Ag
Here, var is a variable name; Ai identi er of
Envelop attribute; A - Envelop.</p>
        <p>The result of evaluation of For operation is a
new Envlelop, obtained from given by applying
projection by attribute corresponding to Ai. The
variable name became an identi er of the single
attribute of the new Envelop.</p>
      </sec>
      <sec id="sec-4-12">
        <title>Example 3</title>
        <p>Here var is a variable name; func - a function
referring to some already bound variables; i1::in
attribute identi ers corresponding to those variables.
For example as this function could be an XPath
expression like following: $b/address/country.</p>
        <p>The result is a new Envelop, obtained by
appending to the old one a new column with results
of evaluation of function for each tuple. The given
variable name became an identi er of appended
attribute.</p>
      </sec>
      <sec id="sec-4-13">
        <title>Example 4</title>
        <p>
          In this case path expression depends on single
variable corresponding to attribute denoted by $A2.
The next one important algebraic operation, speci c
for XQuery, is a Return operation. XAnswer Return
operation by functions and representation is similar
to the XTasy Return operation [
          <xref ref-type="bibr" rid="ref11 ref4">12, 5</xref>
          ].
        </p>
        <p>ReturnOF A, where A - an Envelop produced with
one of the XAnswer operations like Join or For
operation. OF - Output Filter, which is de ned by
following rule:</p>
        <p>OF ::= OF1,. . . ,OFn | label[val] | @label[val] |val
val ::= var | varCopy | xpath.</p>
        <p>Output Filter is a description of activities for
representation of an evaluated data. For example it
could be an XML element or an XML attribute
constructor, or a variable value or a result of evaluation
of navigational expression for some bound variable
and so on.
4.3.4</p>
      </sec>
      <sec id="sec-4-14">
        <title>DJoin operation</title>
        <p>This operation is used when evaluation of one
Envelop depends on evaluation of another. The only
way to perform this operation is nested loops.
Therefore the major goal of optimization is to
translate it to another join operations whenever it is
possible.
4.3.5</p>
      </sec>
      <sec id="sec-4-15">
        <title>Examples</title>
        <p>In the following example there are shown two
algebraic expression for Xtasy and XAnswer algebras
for the same XQuery expression.</p>
      </sec>
      <sec id="sec-4-16">
        <title>Example 5</title>
        <p>for $b in document("books.xml")/book
/author/addr
return &lt;entry&gt;$b&lt;/entry&gt;
An Xtasy algebraic expression for this query:
Returnentry[$b]path(_;$b;in)book[(_;_;=)author[
(_;_;=)addr[;]]](books:xml)</p>
      </sec>
      <sec id="sec-4-17">
        <title>An XAnswer algebraic expression:</title>
        <p>
          Returnentry[$b]((GetDocumentRoot(books:xml)
­childv1v2 GetElement(book; books:xml))
­childv2v3 GetElement(author; books:xml))
­childv3v4 GetElement(addr; books:xml)
Inspite of horizontal and vertical decomposition
rules of path operation in Xtasy [
          <xref ref-type="bibr" rid="ref11">12</xref>
          ], the space
of equivalent plans obtained in terms of XAnswer
algebra is wider then in terms of XTasy.
        </p>
      </sec>
      <sec id="sec-4-18">
        <title>Example 6</title>
        <p>for $a in document( doc.xml)/manufacturers
/dealer//address,
$b in document( doc2.xml )//manager
return $a
The tree of algebraic expression, corresponding to
the given query is shown in Figure 7. For
simplicity, nodes corresponding to join operation do not
provide any information about predicates by which
these join operations are performed. Copy of
variable value operation is used as output lter for the
return operation. As result a new element with
different to current elements id is created. Also as
output lter it could be a variable reference operation.
In this case an element with the same id would be
returned. This is the way to make changes in the
document.</p>
        <p>The next example shows a query with nested
for-clauses where the inner has a dependency to the
variable de ned in the outer.</p>
      </sec>
      <sec id="sec-4-19">
        <title>Example 7</title>
        <p>
          for $a in document( doc.xml )//dealer,
$b in $a//address
return $b
A tree of algebraic expression for this case is shown
in Figure 8. In this representation both for-clauses
input lters have the same part, corresponding to
the expression document( doc.xml )//dealer. In this
case common sub-expression would be evaluated
once and then obtained result would be reused in
evaluation of the second for-clause.
Sometimes nested for-clauses have not dependencies
between themselves but they have similar parts
of input path expressions. In this case special
optimization technique could be applied. It obtains
common parts of path expressions and rewrites
expression to provide sharing result of common
parts. Such query and corresponding to it algebraic
tree after some reforming are described in Example
8. In [
          <xref ref-type="bibr" rid="ref13">14</xref>
          ] such optimization is called expression
minimization. It is shown that bene t of this
optimization for class of similar queries could reach
20-70%, depending on XML document structure.
Each sub-query could have it’s own optimal plans
that have not common parts. In this case techniques
derived from multi query optimization for building
optimal plan for group of queries [
          <xref ref-type="bibr" rid="ref10">11</xref>
          ] could be used.
In case of such queries the space of equivalent plans
in terms of XAnswer algebra is wider than in terms
of XAT.
        </p>
      </sec>
      <sec id="sec-4-20">
        <title>Example 8 Lets consider following query: nd title for those books author of that is a rst author at least of one book.</title>
      </sec>
      <sec id="sec-4-21">
        <title>Corresponding XQuery expression:</title>
        <p>for $a in document( bib.xml )/book/author[1]
for $b in document( bib.xml )/book
where $b/author = $a
return $b/title</p>
        <p>It is easy to see that expression
document( bib.xml )/author could be evaluated once for
rst for-clause and then obtained result could be
reused in evaluation of second for-clause. In this case
algebraic expression could be presented as a graph,
shown in Figure 9.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>This paper outlines several requirements for query
algebra suitable for building high-performance
costbased optimizer for native XML DBMS. Also it was
shown that known algebras do not completely satisfy
to these requirements. An another algebra that
satis es to these requirements better was introduced.
This algebra is a base of XAnswer optimizer for
native XML DBMSs which is currently under
development.
[1] Monetdb home page http://monetdb.cwi.nl.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Al-Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. V.</given-names>
            <surname>Jagadish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Patel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Koudas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          .
          <article-title>"structural joins: A primitive for e cient xml query pattern matching"</article-title>
          .
          <source>In 18th International Conference on Data Engineering (ICDE'02)</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fernandez B. Choi</surname>
          </string-name>
          and
          <string-name>
            <surname>J. Simeon.</surname>
          </string-name>
          <article-title>The xquery formal semantics: A foundation for implementation and optimization</article-title>
          .
          <source>Technical report, World Wide Web Consortium</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Catriel</given-names>
            <surname>Beeri</surname>
          </string-name>
          and
          <string-name>
            <given-names>Yariv</given-names>
            <surname>Tzaban</surname>
          </string-name>
          .
          <article-title>SAL: An algebra for semistructured data and XML</article-title>
          .
          <source>In WebDB (Informal Proceedings)</source>
          , pages
          <fpage>37</fpage>
          <lpage>42</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Sartiani</surname>
          </string-name>
          .
          <article-title>E cient Management of Semistructured XML Data</article-title>
          .
          <source>PhD thesis</source>
          ,
          <source>Universita degli Studi di Pisa</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Torsten</given-names>
            <surname>Grust</surname>
          </string-name>
          .
          <article-title>Accelerating the xpath location steps</article-title>
          .
          <source>In ACM SIGMOD</source>
          , pages
          <fpage>109</fpage>
          <lpage>120</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Torsten</given-names>
            <surname>Grust</surname>
          </string-name>
          , Maurice Van Keulen,
          <string-name>
            <given-names>and Jens</given-names>
            <surname>Teubner</surname>
          </string-name>
          .
          <article-title>Accelerating xpath evaluation in any rdbms</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>29</volume>
          (
          <issue>1</issue>
          ):
          <fpage>91</fpage>
          <lpage>131</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H. V.</given-names>
            <surname>Jagadish</surname>
          </string-name>
          ,
          <string-name>
            <surname>Laks</surname>
            <given-names>V. S.</given-names>
          </string-name>
          <string-name>
            <surname>Lakshmanan</surname>
            , Divesh Srivastava, and
            <given-names>Keith</given-names>
          </string-name>
          <string-name>
            <surname>Thompson</surname>
          </string-name>
          .
          <article-title>Tax: A tree algebra for xml</article-title>
          .
          <source>In DBPL '01: Revised Papers from the 8th International Workshop on Database Programming Languages</source>
          , pages
          <fpage>149</fpage>
          <lpage>164</lpage>
          , London, UK,
          <year>2002</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Ioana</given-names>
            <surname>Manolescu</surname>
          </string-name>
          , Daniela Florescu, and
          <string-name>
            <given-names>Donald</given-names>
            <surname>Kossmann</surname>
          </string-name>
          .
          <article-title>Answering xml queries on heterogeneous data sources</article-title>
          .
          <source>In VLDB '01: Proceedings of the 27th International Conference on Very Large Data Bases</source>
          , pages
          <fpage>241</fpage>
          <lpage>250</lpage>
          , San Francisco, CA, USA,
          <year>2001</year>
          . Morgan Kaufmann Publishers Inc.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Priti</given-names>
            <surname>Mishra</surname>
          </string-name>
          and
          <string-name>
            <surname>Margaret H. Eich</surname>
          </string-name>
          .
          <article-title>Join processing in relational databases</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>24</volume>
          (
          <issue>1</issue>
          ):
          <fpage>63</fpage>
          <lpage>113</lpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Prasan</given-names>
            <surname>Roy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Seshadri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sudarshan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Siddhesh</given-names>
            <surname>Bhobe</surname>
          </string-name>
          .
          <article-title>E cient and extensible algorithms for multi query optimization</article-title>
          .
          <source>In SIGMOD '00: Proceedings of the 2000 ACM SIGMOD international conference on Management of data</source>
          , pages
          <fpage>249</fpage>
          <lpage>260</lpage>
          , New York, NY, USA,
          <year>2000</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Carlo</given-names>
            <surname>Sartiani</surname>
          </string-name>
          and Antonio Albano.
          <article-title>Yet another query algebra for xml data</article-title>
          .
          <source>In IDEAS '02: Proceedings of the 2002 International Symposium on Database Engineering &amp; Applications</source>
          , pages
          <fpage>106</fpage>
          <lpage>115</lpage>
          , Washington, DC, USA,
          <year>2002</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S. Cluet V.</given-names>
            <surname>Christophides</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Simeon</surname>
          </string-name>
          .
          <article-title>Semistructured and structured integration reconciled: Yat += e cient query processing</article-title>
          .
          <source>Technical report</source>
          , INRIA, Verso database group,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Song</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Elke A.</given-names>
            <surname>Rundensteiner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Murali</given-names>
            <surname>Mani</surname>
          </string-name>
          .
          <article-title>Optimization of nested xquery expressions with orderby clauses</article-title>
          .
          <source>In ICDEW '05: Proceedings of the 21st International Conference on Data Engineering Workshops, page 1277</source>
          , Washington, DC, USA,
          <year>2005</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <string-name>
            <surname>J.Patel Y.Wu</surname>
            and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Jagadish</surname>
          </string-name>
          .
          <article-title>Structural join order selection for xml query optimization</article-title>
          .
          <source>In ICDE ' 03 : International Conference on Data Engineering</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>