Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML-Algebren Martin Winkler.

Ähnliche Präsentationen


Präsentation zum Thema: "XML-Algebren Martin Winkler."—  Präsentation transkript:

1 XML-Algebren Martin Winkler

2 Gliederung Motivation: Warum Algebren?
Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for XML, TAX - Datenmodell - Funktionsprinzip - Beispiel Tree Logical Classes, TLC - Datenmodell - Funktionsprinzip - Beispiel Vergleich der drei Algebren

3 Warum Algebren? Warum sollte man eine Anfrage auf eine Algebra abbilden? Syntaktisch verschiedene Anfragen können die gleiche Bedeutung haben. Sie werden aber auf verschiedene Planoperatoren abgebildet. Die Pläne haben unterschiedliche Ausführungszeiten.

4 Beispiel Q1 $d//person[emailaddress]/name
Q2 (for $x in $d//person[ address] return $x)/name Q3 let $x := for $y in $d//person where $y/ address return $y return $x/name Quelle:Michiels, P.; Mihaila, G. A. Simeon, J. Put a Tree Pattern in Your Algebra ICDE, 2007,

5 Warum Algebren? Eine Umformung / Optimierung ist nur auf syntaktischer Ebene möglich. Algebren erlauben die Abbildung auf Operatoren und danach - Umformung - Optimierung - dann Abbildung auf physische Operatoren

6 Die Natix-Algebra, NAL Von Brantner et al. an der Universität Mannheim für das DBMS Natix entwickelt Datenmodell: Tupelsequenzen Knoten des XML-Baumes sind Tupel, Attribute des Tupels sind von Typ String, number, boolean oder wieder eine Tupelsequenz

7 NAL: Datenmodell tv-show Moderator: lastname: Meiser firstname: Hans
time: 05:00pm ( , )

8 NAL: Funktionsprinzip
Beispiel: Selektion Parametrisiert mit Prädikat p Arbeitet auf Sequenz e Outputsequenz: Inputsequenz e: s P true P true P false P true

9 ausgewählte Operatoren
Projektion Unnest-Map Map Hinzufügen eines Attributes mit dem Map-Operator c a a a a

10 ausgewählte Operatoren
Projektion Unnest-Map Map Auspacken einer Sequenz mit dem Unnest-Map-Operator U a

11 Beispiel FOR $autor IN document("autoren.xml")//author
FOR $buch IN document("bestand.xml")//book LET $cv := $autor/curriculum_vitae WHERE count($buch//page) >= 100 AND $autor/authored/title/text() = $buch/title/text() RETURN <book title={$buch/title/text()}> <author name={$autor/name/text()}> <curriculum_vitae>{$cv}</curriculum_vitae> </author> </book>

12 In kanonische Form bringen
FOR $autor IN document("autoren.xml")//author FOR $buch IN document("bestand.xml")//book LET $cv := $autor/curriculum_vitae LET $titel := $buch/title/text() LET $name := $author/name/text() LET $cv_elem := <curriculum_vitae>{$cv}</curriculum_vitae> LET $autor_elem := <author name=$name>{$cv_elem}</author> LET $buch_elem := <book title=$titel>{$autor_elem}</book> WHERE count($buch//page) >= 100 AND $autor/authored/title/text() = $buch/title/text() RETURN $buch_elem

13 Beispiel Das erste For-Statement wird in einen Unnest-Map-Operator überführt: Ebenso das zweite For-Statement, jedoch jetzt mit dem Ausdruck e1 als Eingabe:

14 Beispiel Let-Statements werden auf Map-Operatoren abgebildet.

15 Beispiel Die Variablen, die XML-Elemente repräsentieren, erfordern die Konstruktion eines solchen Elements, hier mit C (elem, tag[, attribut], inhalt) bezeichnet.

16 Beispiel Eine Selektion stellt sicher, dass das Prädikat der Where-Klausel von allen resultierenden Tupeln erfüllt wird. Der aufgrund der Query-Umformung vereinfachte Return-Teil kann jetzt durch eine einfache Projektion abgebildet werden:

17 Tree Algebra for XML, TAX
Für das DBMS Timber von Jagadish et al. Entwickelt Datenmodell: Bäume - Data Trees - Pattern Trees - Witness Trees

18 Data Tree

19 Pattern Tree

20 Witness Tree Beispiel zweier Witness Trees, die durch eine Selektion mit dem Pattern Tree aus der Datenbasis gewonnen wurden.

21 Funktionsprinzip Die Knotenlabels $1 bis $4 erlauben eine Adressierung der Knoten in der Datenbasis.

22 Beispiel FOR $autor IN document("autoren.xml")//author
FOR $buch IN document("bestand.xml")//book LET $cv := $autor/curriculum_vitae LET $page_count := count($buch//page) WHERE $page_count >= 100 AND $autor/authored/title/text() = $buch/title/text() ORDER BY $buch/title Ascending RETURN <book title={$buch/title/text()}> <author name={$autor/name/text()}> <curriculum_vitae>{$cv}</curriculum_vitae> </author> </book>

23 Beispiel Pattern Trees p1 und p2 für die For-Statements Beide Bäume werden als Eingabe für eine Selektion auf den Kollektionen C1(autoren.xml) und C2(bestand.xml) verwendet.

24 Nach der Aggregation dient C3 als Input für die Selektion:
Beispiel Pattern Tree p3 für die Aggregation Nach der Aggregation dient C3 als Input für die Selektion:

25 Tree Logical Classes, TLC
Von Lakshmanan et al. entwickelt Löste TAX als Algebra für das DBMS Timber der Universität von Michigan ab. Datenmodell: Knotenmengen und Bäume

26 Funktionsprinzip Daten liegen wie in TAX als Data Trees vor
Annotated Pattern Trees, APT, dienen dazu relevante (Teil-)Bäume zu extrahieren Das Ergebnis eines solchen Abgleiches sind Witness Trees. Die Knoten der Witness Trees sind Klassen der LCR (Logical Class Reduction) zugeordnet. Die Logical Class Labels dienen der Adressierung der Knoten und machen sie für weitere Operationen verfügbar

27 Annotated Pattern Tree
Funktionsprinzip B B1 B2 ? + D E C C1 E1 D1 D2 E2 E3 C2 C3 Annotated Pattern Tree + A1 A3 Input Trees A A2 B1 B1 B2 C1 E1 D1 C1 E1 D2 E2 E3 C3 A1 A2 A1 A2 A3 Witness Trees Quelle: Paparizos, S.; Wu, Y.; Lakshmanan, L. V. S. Jagadish, H. V. Tree Logical Classes for Ecient Evaluation of XQuery SIGMOD Conference, 2004, 71-82

28 Beispiel FOR $autor IN document("autoren.xml")//author
FOR $buch IN document("bestand.xml")//book LET $cv := $autor/curriculum_vitae WHERE count($buch//page) >= 100 AND $autor/authored/title/text() = $buch/title/text() ORDER BY $buch/title Ascending RETURN <book title={$buch/title/text()}> <author name={$autor/name/text()}> <curriculum_vitae>{$cv}</curriculum_vitae> </author> </book>

29 Beispiel Für beide FOR-Statements werden APT erzeugt
Für aufeinanderfolgende For-Statements wird ein Join-Operator erzeugt

30 Beispiel Die APT werden sukzessive erweitert
Aggregations- und Filteroperationen arbeiten auf den LC

31 Beispiel Für alle diese APT ist eine einzige abschließende Sortieroperation nötig. Projektion und Duplikateliminierung.

32 Selektion der Rückgabewerte.
Konstruktion des XML-Fragments der Rückgabe.

33

34 Vergleich der drei Algebren
NAL: kein Structural Join, kein Holistic Twig Join, keine Indexkonzepte berücksichtigt; „tuple-flattening“ umständlich Datenmodell: Tupel TAX: Datenmodell näher an XML-Bäumen aber als einzige Achsen lassen sich child- und descendant-Achsen in Pattern Trees definieren Datenmodell: Bäume TLC: Wiederverwendbarkeit „alter“ Ergebnisse dank Logical Classes Datenmodell: Knotenmengen und Bäume

35 Vielen Dank für Ihre Aufmerksamkeit.


Herunterladen ppt "XML-Algebren Martin Winkler."

Ähnliche Präsentationen


Google-Anzeigen