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.
148 CHAPTER 8. KEYX IMPLEMENTATION DETAILS<br />
a task of the XDBMS Infonyte DB so that the developer of an application has not<br />
to regard any persistency aspects like invoking serializations, etc.<br />
Compared to highly sophisticated commercial database products, Infonyte DB is a<br />
rudimentary database management system. Infonyte DB does not offer advanced<br />
features like multi-user control mechanisms or transactions. In particular, it<br />
cannot be guaranteed that some stored XML data is always valid concerning a<br />
given schema, because elements can be inserted or deleted in the DOM without<br />
consistency controls. Validation is always performed on demand and then on<br />
the whole XML data so that it is too expensive to validate the data after each<br />
modification. Infonyte comes with no satisfying indexing approach; it supports<br />
some structural queries in a rudimentary way. The performance measurements<br />
of section 5.5 show that the query execution time of Infonyte DB without a KeyX<br />
index can become very long. Infonyte offers no XML update language like XUPdate.<br />
Therefore, all manipulations must be performed in a low level manner on<br />
the DOM tree. Recapitulating, one can say that Infonyte’s state of development is<br />
not comparable to commercial relational products, so a company typically would<br />
not use it in productive environments. But this holds for most XML DBMS that<br />
are often initiated as research projects. An exception could be Tamino from the<br />
Software AG that is a fully commercial XDBMS. Anyhow, because Infonyte DB<br />
offers all features required for KeyX and the Software AG published only very few<br />
technical informations about Tamino the choice to use Infonyte DB was no fault.<br />
KeyX uses the Infonyte DB interfaces DOM and XPath. The XPath engine is<br />
used to evaluate queries when building an index or when no index is available for<br />
processing a query. For a selected node in the DOM tree Infonyte can return a<br />
unique id. The time to dereference an id is constant and not dependent on the<br />
size of the XML data or the position of the element. Any XDBMS that offers these<br />
two features may be used with the KeyX implementation in principle. The XPath<br />
interface of the XDBMS is handed over to the database applications of the highest<br />
layer with the difference that covered queries are executed upon an index. The<br />
database application is not aware if an index is used or not because it still sends<br />
XPath queries and gets XML nodes. This architecture makes it easy to integrate<br />
an indexing system in existing applications. Therefore, the results of this thesis<br />
may be used universally for native XDBML; they do not dependent on the specific<br />
DBMS Infonyte DB. A block diagram of the KeyX system can be found in<br />
figure 8.2.<br />
The architecture consists mainly of three parts: the query engine with the query<br />
optimizer as the central part, the ISP Tool that analyzes the workloads and optimizes<br />
the index configuration and a collection of the XML data, the workload and<br />
statistics. These data have to be stored persistently in order to survive system<br />
restarts. In a realistic environment it makes sense to log the workload for several<br />
weeks or months to get an impression of the typical usage of the database.<br />
The workload is a compressed file logging all occurred database operations in a