XML-Algebren Martin Winkler.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Seminar Textmining WS 06/07 Aufgaben II 1.Dokumente im VSM 2.Ranking 3.Term-Term-Korrelation 4.Relevance Feedback 5.Termgewichtung.
Müll 1NaturEinkaufenMüll 2Vermischtes
Bauinformatik II Softwareanwendungen 1
Marco Barz Seminar über Algorithmen SoSe2007
Maschinelle Übersetzung I
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Union-Find-Strukturen
XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.
XQuery – String Funktionen Datenbanktechnologie / SS 2012 / Leonard Claus.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 16: Grundlagen des Data Mining.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
XML Standardisierungen und Abfragesprachen
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Übung Datenbanksysteme SQL-Anfragen (2)
Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
1 Gruppierung (1) Motivation: Bisher existierte nur die gesamte Relation als eine einzige Gruppe. Interessanter ist es, Aggregierungen über Teilmengen.
Hinweise zum 10. Übungsblatt zu GIN1b, WS04/05 Prof. Dr. W. Conen (Version 1.0alpha, )
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
XML Path Language XPath
Paper: Aesthetics of Class Diagrams Vorgetragen von Tilmann Bartels Paper von Holger Eichelberger Universität Würzburg Bis jetzt gibt es keine allgemeingültige.
Grundkonzepte Java - Klassendefinition
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
- XML-Path Language (xPath) ist eine Empfehlung des W3C - es wurde entwickelt, um durch ein XML- Dokument zu navigieren - und ist ein großer Teil von.
So, ein paar Fragen.. Wo sind mehr Bälle? Wo sind mehr Steine?
Die Grundterminologie
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Erhard Künzel für Info 9. Klasse:. Bereiche Objekt: Bereich Eingabe- bereiche Verbunde und Verteiler Darstellung von Datenflüssen.
... Unternehmens- leitung
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Halfadder a =1 s & cout b.
XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Variablenkonzept Klassisch, in Java Basistyp
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
Driften Spiel des Lebens. Anzahl der Ziehung en Absolute Häufigk eit blau Absolute Häufigk eit rot Relative Häufigk eit blau Relative Häufigk eit rot.
Seite 1 Computeria Wallisellen Peter Furger PC Akademie Steinacherstr. 44 Excel (Auszug) Seite 1.
PHP: Operatoren und Kontrollstrukturen
Brüche-Quartett Klasse 6-8 Spieler 4-6. Brüche-Quartett A1 Brüche-Quartett A2 Brüche-Quartett A3 Brüche-Quartett A4 Brüche-Quartett B1 Brüche-Quartett.
Schützengau Altomünster Wahlweiser Einsatz von Stamm- und Wechselschützen Allen Beispielen zugrunde gelegt ist das Klassengefüge des Gaues Altomünster.
Eike Schallehn, Martin Endig
Grundlagen des Relationenmodells
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
You need to use your mouse to see this presentation © Heidi Behrens.
Vorlesung #5 SQL (Teil 2).
Wiederholung Der wichtigste Befehl zur Datenmanipulation lautet:
XML-Datenbanken Weiterentwicklung eines Prototypen zur nativen Speicherung von XML-Dokumenten Georg Kiekel
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
XPath und XQuery Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
 Präsentation transkript:

XML-Algebren Martin Winkler

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

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.

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

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

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

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

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

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

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

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>

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

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:

Beispiel Let-Statements werden auf Map-Operatoren abgebildet.

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

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:

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

Data Tree

Pattern Tree

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

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

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>

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.

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:

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

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

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

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>

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

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

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

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

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

Vielen Dank für Ihre Aufmerksamkeit.