url - Universität zu Lübeck
url - Universität zu Lübeck
url - Universität zu Lübeck
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 7<br />
The XML Index Update Problem<br />
In contrast to relational DBMS, where indexes and index structures are wellknown<br />
since decades, indexes in XDBMS are still an active field of research with<br />
no standards established yet. A lot of approaches have been introduced in recent<br />
years dealing with indexes for querying XML data. The problem of updating an<br />
index is a minor focus of most publications. If at all, the authors describe how<br />
their data structure can be updated from a technical point of view. To the best<br />
of our knowledge, the problem whether an XML index i is affected by a modifying<br />
operation o has never been faced before. We call this problem the XML Index Update<br />
Problem (XIUP).<br />
In this chapter we give an algorithm that is based on finite automata theory and<br />
decides whether an XPath-based database operation affects an index that is defined<br />
universally upon keys, qualifiers, and a return value of an XPath expression.<br />
Although we focus on the KeyX indexing approach the general idea and the algorithms<br />
are transferable to other selective indexing approaches for semistructured<br />
data. If an approach is non-selective (it covers all data) it is affected by any modification.<br />
We present an efficient intersection algorithm for the XPath fragment XP {[],∗,//}<br />
containing path expressions without the NOT operator. The algorithm is based<br />
on finite automata. For the XPath fragment XP {[],∗,//,NOT } containing path expressions<br />
with the NOT operator the intersection problem becomes NP -complete<br />
leading to exponential computations in general. With an average case simulation<br />
we show that the NP -completeness is no significant limitation for most real-world<br />
database operations.<br />
In addition, we provide algorithms for updating our KeyX indexes efficiently if<br />
they are affected by a modification. The Index Update Problem is relevant for all<br />
applications that use a secondary XML data representation (e.g. indexes, caches,<br />
XML replication/synchronization services) where updates must be identified and<br />
realized.