Structural joins: A primitive for efficient XML query pattern matching

  • Al-Khalifa S
  • Jagadish H
  • Koudas N
 et al. 
  • 50


    Mendeley users who have this article in their library.
  • 535


    Citations of this article.


XML queries typically specify patterns of selection pred- icates on multiple elements that have some specified tree structured relationships. The primitive tree structured re- lationships are parent-child and ancestor-descendant, and finding all occurrences of these relationships in an XML database is a core operation for XML query processing. In this paper, we develop two families of structural join algorithms for this task: tree-merge and stack-tree. The tree-merge algorithms are a natural extension of traditional merge joins and the recently proposed multi-predicate merge joins, while the stack-tree algorithms have no coun- terpart in traditional relational join processing. We present experimental results on a range of data and queries us- ing the TIMBER native XML query engine built on top of SHORE. We show that while, in some cases, tree-merge al- gorithms can have performance comparable to stack-tree algorithms, in many cases they are considerably worse. This behavior is explained by analytical results that demon- strate that, on sorted inputs, the stack-tree algorithms have worst-case I/O and CPU complexities linear in the sum of the sizes of inputs and output, while the tree-merge algo- rithms do not have the same guarantee.

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document


  • Shurug Al-Khalifa

  • H. V. Jagadish

  • Nick Koudas

  • Jignesh M. Patel

  • Divesh Srivastava

  • Yuqing Wu

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free