30.08.2014 Views

url - Universität zu Lübeck

url - Universität zu Lübeck

url - Universität zu Lübeck

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!