XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL -...

35
XML-Algebren Martin Winkler

Transcript of XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL -...

Page 1: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

XML-Algebren

Martin Winkler

Page 2: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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

Page 3: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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.

Page 4: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel• Q1

$d//person[emailaddress]/name

• Q2(for $x in $d//person[emailaddress]return $x)/name

• Q3let $x := for $y in $d//person where $y/emailaddress return $yreturn $x/name

Quelle:Michiels, P.; Mihaila, G. A. Simeon, J. Put a Tree Pattern in Your Algebra ICDE, 2007, 246-255

Page 5: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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

Page 6: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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

Page 7: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

NAL: Datenmodell

firstname: Hans lastname: Meiser

Moderator:

time: 05:00pm

tv-show

( , )

Page 8: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

NAL: Funktionsprinzip

• Beispiel: Selektion

• Parametrisiert mit Prädikat p

• Arbeitet auf Sequenz e

Outputsequenz:

Inputsequenz e: P true P true P trueP false

Page 9: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

ausgewählte Operatoren

• Projektion

• Unnest-Map

• Map

Hinzufügen eines Attributes mit dem Map-Operator

a a a a

Page 10: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

ausgewählte Operatoren

• Projektion

• Unnest-Map

• Map

Auspacken einer Sequenz mit dem Unnest-Map-Operator

a

Page 11: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

FOR $autor IN document("autoren.xml")//authorFOR $buch IN document("bestand.xml")//bookLET $cv := $autor/curriculum_vitaeWHERE 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>

Page 12: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

In kanonische Form bringenFOR $autor IN document("autoren.xml")//authorFOR $buch IN document("bestand.xml")//bookLET $cv := $autor/curriculum_vitaeLET $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

Page 13: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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:

Page 14: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

• Let-Statements werden auf Map-Operatoren abgebildet.

Page 15: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

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

Page 16: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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:

Page 17: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Tree Algebra for XML, TAX

• Für das DBMS Timber von Jagadish et al. Entwickelt

• Datenmodell: Bäume- Data Trees- Pattern Trees- Witness Trees

Page 18: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Data Tree

Page 19: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Pattern Tree

Page 20: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Witness Tree

Beispiel zweier Witness Trees, die durch eine Selektion mit dem Pattern Tree aus der

Datenbasis gewonnen wurden.

Page 21: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Funktionsprinzip

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

Page 22: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

BeispielFOR $autor IN document("autoren.xml")//authorFOR $buch IN document("bestand.xml")//bookLET $cv := $autor/curriculum_vitaeLET $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>

Page 23: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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.

Page 24: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

• Pattern Tree p3 für die Aggregation

Nach der Aggregation dient C3 als Input für die Selektion:

Page 25: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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

Page 26: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

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

Page 27: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

FunktionsprinzipB1

C1 E1 D1 D2

A1

A2

B2

E2 E3 C2 C3

A3

Input Trees

B

D E C

A

?+

+Annotated Pattern Tree

B1

C1 E1 D1

A1 A2

B2

E2 E3 C3

A3Witness Trees

B1

C1 E1 D2

A1 A2

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

Page 28: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

FOR $autor IN document("autoren.xml")//authorFOR $buch IN document("bestand.xml")//bookLET $cv := $autor/curriculum_vitaeWHERE 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>

Page 29: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

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

erzeugt

Page 30: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

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

Page 31: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Beispiel

• Für alle diese APT ist eine einzige abschließende Sortieroperation nötig.

• Projektion und Duplikateliminierung.

Page 32: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

• Selektion der Rückgabewerte.

• Konstruktion des XML-Fragments der Rückgabe.

Page 33: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.
Page 34: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Vergleich der drei Algebren

• NAL: kein Structural Join, kein Holistic Twig Join, keine Indexkonzepte berücksichtigt; „tuple-flattening“ umständlichDatenmodell: Tupel

• TAX: Datenmodell näher an XML-Bäumen aber als einzige Achsen lassen sich child- und descendant-Achsen in Pattern Trees definierenDatenmodell: Bäume

• TLC: Wiederverwendbarkeit „alter“ Ergebnisse dank Logical ClassesDatenmodell: Knotenmengen und Bäume

Page 35: XML-Algebren Martin Winkler. Gliederung Motivation: Warum Algebren? Die Natix-Algebra, NAL - Datenmodell - Funktionsprinzip - Beispiel Tree Algebra for.

Vielen Dank für Ihre Aufmerksamkeit.