The eXtended Markup Language XML is an important standard for the platform and language independent expression of structured data. Although XML is used mainly for data exchange, there is an emerging need for enabling the persistent storage of XML data in databases. This raises many questions: How can XML data be indexed to speed up frequent queries? How to detect if a modifying operation affects an established index and must therefore be updated to keep it consistent? And last but not least: How can indexes that are best for a given application be determined automatically?
This publication introduces an approach for indexing XML data stored in a native XML database management system. The indexes are used to accelerate XPath based queries. Due to the complex path expressions in XPath that may use structural and value conditions the decision whether an XML index is affected by an operation that modifies the underlying original XML data is not trivial. This problem is reduced to the emptiness of the intersection of two XPath expressions. The well known Index Selection Problem that searches for an optimal set of indexes for a given set of querying and modifying database operations is extended and transferred from the relational world to XML indexes. An autonomous XML database management system is realized if the index selection tool is called periodically and creates and drops indexes automatically.