4 research outputs found

    Basiskomponenten von XML Datenbanksystemen

    Get PDF
    Für die Entwicklung von vielen kleinen und großen Softwaresystemen reichen herkömmliche (objekt-)relationale Datenbanksysteme nicht mehr aus. Viele interessante Daten sind in der Praxis nicht voll strukturiert und somit nicht effektiv mit einem Standarddatenbanksystem zu verwalten. Es werden deshalb neuartige standardisierte Systeme für unstrukturierte bzw. semi-strukturierte Daten benötigt. Diese Lücke wird nun von nativen XML Datenbanksystemen geschlossen, die als Datenformat das vom W3C standardisierte XML verwenden. XML Datenbanksysteme unterstützen außerdem viele weitere XML Standards, wie beispielsweise XSchema für Grammatiken, XPath und XQuery für die Anfrageverarbeitung, XSLT für Transformationen und DOM und SAX für die Applikationsanbindung. In dieser Arbeit werden Grundlagen von nativen XML Datenbanksystemen betrachtet, sowie neue Strukturen vorgeschlagen und alte Strukturen optimiert. Es wird auf eine solide Basis zum Testen von Algorithmen Wert gelegt. Hierzu wurde ein Testframework innerhalb der Java-Bibliothek XXL implementiert und anschließend verwendet. Die XXL Bibliothek enthielt bereits vor dieser Arbeit einige Komponenten, die für die Implementierung von Datenbanksystemen eingesetzt werden konnten, beispielsweise eine generische Anfrageverarbeitung und Indexstrukturen. Zusätzlich zu den vorhandenen Komponenten wurden nun neue hinzugefügt, so z.B. eine Komponente für den direkten Festplattenzugriff, ein frei konfigurierbarer Recordmanager, sowie ein Datenbank-Framework. Das zentrale Anliegen der Arbeit ist die Optimierung der Speicherungsebene von nativen XML Datenbanksystemen. Wichtig ist, dass bei der Abbildung von XML Dokumenten auf den Externspeicher die Baumstruktur erhalten bleibt und somit eine performante Anfragenverarbeitung mit wenigen Externspeicherzugriffen möglich wird. Ähnlich wie bei R-Bäumen, können für XML Speicherungsstrukturen verschiedene Splitalgorithmen angegeben werden, die gewisse Heuristiken verfolgen. Hier zeigte sich der neu entwickelte, so genannte OneCutSplit mit Scaffold als klar überlegen gegenüber den bisher bekannten Splitalgorithmen aus der Literatur. Für das Einfügen von Dokumenten wurde weiterhin ein Bulkloading Mechanismus implementiert. Es konnte gezeigt werden, dass die Speicherstruktur für die hiermit erzeugten Dokumente deutlich besser war als bei der Benutzung von Splitalgorithmen. Dies macht sich erheblich in den Antwortzeiten von Anfragen bemerkbar. Zur Beschleunigung der Anfrageverarbeitung sind in nativen XML Datenbanksystemen Indexstrukturen unverzichtbar. Zu diesem Zweck wurde ein neuartiger Signaturindex entwickelt und in die XML Speicherungsstruktur unter Verwendung von Aggregaten integriert. Die Evaluierung des Indexes zeigte einen deutlichen Vorteil bei der Auswertung von XPath-Ausdrücken. Weiterhin konnten erstmals durch die Benutzung des Datenbank-Frameworks von XXL native Speicherungsverfahren für XML mit solchen verglichen werden, die auf relationalen Datenbanksystemen aufsetzen. Hierbei zeigte sich, dass nativer XML Speicher auch bei einfachen XPath-Anfragen gute Leistungswerte besitzt. Bei Navigations- und Änderungsoperationen ist der native XML Speicher den relationalen Verfahren deutlich überlegen. In der Anfrageverarbeitung auf XML Daten spielen allerdings nicht nur XPath und XQuery eine Rolle. Für die Bearbeitung von großen Mengen von XML Dokumenten sind Operatoren sinnvoll, welche eine Verarbeitung durch Abbildung von XML Dokumenten auf neue XML Dokumente realisieren. Dies ist analog zur relationalen Algebra, in der allerdings der Grunddatentyp Tupel Verwendung findet. Im Vergleich zum relationalen Modell werden für XML jedoch viele verschiedene Operatoren benötigt, die nicht auf wenige Grundoperationen zurückgeführt werden können. In dieser Arbeit werden einige neue Operatoren vorgestellt, die nicht nur für die Anfrageverarbeitung innerhalb von XML Datenbanksystemen, sondern auch für Anfragen im Internet geeignet sind. Durch das entwickelte Framework soll es Anwendern in Zukunft auf einfache Art und Weise möglich sein, Internetquellen in eigene Anfragen einzubauen

    An Algebraic Approach to XQuery Optimization

    Get PDF
    As more data is stored in XML and more applications need to process this data, XML query optimization becomes performance critical. While optimization techniques for relational databases have been developed over the last thirty years, the optimization of XML queries poses new challenges. Query optimizers for XQuery, the standard query language for XML data, need to consider both document order and sequence order. Nevertheless, algebraic optimization proved powerful in query optimizers in relational and object oriented databases. Thus, this dissertation presents an algebraic approach to XQuery optimization. In this thesis, an algebra over sequences is presented that allows for a simple translation of XQuery into this algebra. The formal definitions of the operators in this algebra allow us to reason formally about algebraic optimizations. This thesis leverages the power of this formalism when unnesting nested XQuery expressions. In almost all cases unnesting nested queries in XQuery reduces query execution times from hours to seconds or milliseconds. Moreover, this dissertation presents three basic algebraic patterns of nested queries. For every basic pattern a decision tree is developed to select the most effective unnesting equivalence for a given query. Query unnesting extends the search space that can be considered during cost-based optimization of XQuery. As a result, substantially more efficient query execution plans may be detected. This thesis presents two more important cases where the number of plan alternatives leads to substantially shorter query execution times: join ordering and reordering location steps in path expressions. Our algebraic framework detects cases where document order or sequence order is destroyed. However, state-of-the-art techniques for order optimization in cost-based query optimizers have efficient mechanisms to repair order in these cases. The results obtained for query unnesting and cost-based optimization of XQuery underline the need for an algebraic approach to XQuery optimization for efficient XML query processing. Moreover, they are applicable to optimization in relational databases where order semantics are considered

    Rewriting Declarative Query Languages

    Full text link
    Queries against databases are formulated in declarative languages. Examples are the relational query language SQL and XPath or XQuery for querying data stored in XML. Using a declarative query language, the querist does not need to know about or decide on anything about the actual strategy a system uses to answer the query. Instead, the system can freely choose among the algorithms it employs to answer a query. Predominantly, query processing in the relational context is accomplished using a relational algebra. To this end, the query is translated into a logical algebra. The algebra consists of logical operators which facilitate the application of various optimization techniques. For example, logical algebra expressions can be rewritten in order to yield more efficient expressions. In order to query XML data, XPath and XQuery have been developed. Both are declarative query languages and, hence, can benefit from powerful optimizations. For instance, they could be evaluated using an algebraic framework. However, in general, the existing approaches are not directly utilizable for XML query processing. This thesis has two goals. The first goal is to overcome the above-mentioned misfits of XML query processing, making it ready for industrial-strength settings. Specifically, we develop an algebraic framework that is designed for the efficient evaluation of XPath and XQuery. To this end, we define an order-aware logical algebra and a translation of XPath into this algebra. Furthermore, based on the resulting algebraic expressions, we present rewrites in order to speed up the execution of such queries. The second goal is to investigate rewriting techniques in the relational context. To this end, we present rewrites based on algebraic equivalences that unnest nested SQL queries with disjunctions. Specifically, we present equivalences for unnesting algebraic expressions with bypass operators to handle disjunctive linking and correlation. Our approach can be applied to quantified table subqueries as well as scalar subqueries. For all our results, we present experiments that demonstrate the effectiveness of the developed approaches

    Natix - ein natives XML-DBMS

    Full text link
    corecore