Quilt: Eine XML Anfragesprache für heterogene Datenquellen

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Bauinformatik II Softwareanwendungen 1
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
eXist Open Source Native XML Database
-17 Konjunkturerwartung Europa September 2013 Indikator > +20 Indikator 0 a +20 Indikator 0 a -20 Indikator < -20 Europäische Union gesamt: +6 Indikator.
Der Einstieg in das Programmieren
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Sortierverfahren Richard Göbel.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
DOM (Document Object Model)
XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.
Fakten, Regeln und Anfragen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
Einführung XML XML Einführung Andreas Leicht.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Übung Datenbanksysteme SQL-Anfragen (2)
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
XML-Algebren Martin Winkler.
Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Einführung Dateisystem <-> Datenbanksystem
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
Heute: Scherenzange zeichnen
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
- 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.
20:00.
Die Geschichte von Rudi
Datenbankentwicklung IV-LK
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Leistungsbeschreibung Brückenplanung RVS RVS
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Großer Altersunterschied bei Paaren fällt nicht auf!
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
+21 Konjunkturerwartung Europa Dezember 2013 Indikator > +20 Indikator 0 bis +20 Indikator 0 bis -20 Indikator < -20 Europäische Union gesamt: +14 Indikator.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Es war einmal ein Haus
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
Kompetenztraining Jura Martin Zwickel / Eva Julia Lohse / Matthias Schmid ISBN: © 2014 Walter de Gruyter GmbH, Berlin/Boston Abbildungsübersicht.
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
Einführung Dateisystem <-> Datenbanksystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
 Präsentation transkript:

Quilt: Eine XML Anfragesprache für heterogene Datenquellen Matthias Färber 15.01.2002

Ablauf: 1. Einleitung 2. Sprachkonzepte 3.Vergleich: Quilt und SQL für rel. DB 4. Ausblick, Diskussion

Einleitung Literatur: - Don Chamberlin(IBM, USA), Jonathan Robie(Software AG -USA), Daniela Florescu(INRIA - Frankreich) : Quilt an XML Query Language for heterogeneous Data Sources WebDB 2000 - Obige Autoren sind Mitglieder der XML-Query Working Group - http://www.w3.org/TR/xquery - http://www.almaden.ibm.com/cs/people/chamberlin/quilt.html

Einleitung Ursprung von Quilt: - WWW macht alle Arten von Informationen überall verfügbar - Um diese Information verarbeiten zu können benötigt man: Eine universelle Auszeichnungssprache (XML) Eine universelle Anfragesprache (Quilt) - Namensgebung von Quilt (Amerikanischer Flickenteppich):

Quilt (Flickenteppich)

Einleitung Ursprung von Quilt: - WWW macht alle Arten von Informationen überall verfügbar - Um diese Information verarbeiten zu können benötigt man: Eine universelle Auszeichnungssprache (XML) Eine universelle Anfragesprache (Quilt) - Namensgebung von Quilt (Amerikanischer Flickenteppich):

Einleitung Ursprung von Quilt: - WWW macht alle Arten von Informationen überall verfügbar - Um diese Information verarbeiten zu können benötigt man: Eine universelle Auszeichnungssprache (XML) Eine universelle Anfragesprache (Quilt) - Namensgebung von Quilt (Amerikanischer Flickenteppich): 1. Quilt „baut“ aus anderen XML Dokumenten ein neues zusammen

Einleitung Ursprung von Quilt: - WWW macht alle Arten von Informationen überall verfügbar - Um diese Information verarbeiten zu können benötigt man: Eine universelle Auszeichnungssprache (XML) Eine universelle Anfragesprache (Quilt) - Namensgebung von Quilt (Amerikanischer Flickenteppich): 1. Quilt „baut“ aus anderen XML Dokumenten ein neues zusammen 2. Quilts Sprachkonzepte haben ihren Ursprung in vielen verschiedenen anderen Sprachen: XPath, XQL, XML-QL, SQL, OQL, Lorel, YATL somit ist Quilt selbst eine Art Flickenteppich

Anforderungen an Quilt: Einleitung Anforderungen an Quilt: - klassische DB Operationen wie Joins und Union - Anfragen kurz aber lesbar - Flexibilität (Unterschiedliche Informationsquellen) - Transformierung der Informationsstrukturen - Beibehaltung von Ordnung und Hierarchie in Dokumenten

Einleitung Was ist Quilt ? - Funktionale Anfragesprache - Anfragen als Ausdrücke - Ein und Ausgabe für Quilt: XML Dokumente, Sammlungen und Fragmente von XML Dokumenten - Verschiedene Ausdruckkonzepte Navigation in XML Dokumenten Erstellen des Ergebnis-Dokuments Selektion, Projektion, Joins Operatoren und Funktionen Bedingungen, Quantoren Binden von Variablen

Ablauf: 2. Sprachkonzepte 1. Einleitung 3.Vergleich: Quilt und SQL für rel. DB 4. Ausblick, Diskussion

Sprachkonzepte 1. Pfad Ausdrücke Ausdruck Konzepte: 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

Sprachkonzepte Beispiel Familien: Familien Familie Mutter Vater Kinder Bsp.xml: <Familien> <Familie Familienname=Müller> <Mutter> <Person Alter=35> <Name> Anne <\Name> <\Person> <\Mutter> <Vater> <Person Alter=38> <Name> Bert <\Name> <\Person> <\Vater> <Kinder> <Person Alter=3> <Name> Paul <\Name> <\Person> <Person Alter=6> <Name> Ernie <\Name> <\Person> <\Kinder> <\Familie> <\Familien> Familien Familie Familienname Mutter Vater Kinder Person Alter Name

Sprachkonzepte Beispiel Familien: Familien Familie Müller Mutter Vater Bsp.xml: <Familien> <Familie Familienname=Müller> <Mutter> <Person Alter=35> <Name> Anne <\Name> <\Person> <\Mutter> <Vater> <Person Alter=38> <Name> Bert <\Name> <\Person> <\Vater> <Kinder> <Person Alter=3> <Name> Paul <\Name> <\Person> <Person Alter=6> <Name> Ernie <\Name> <\Person> <\Kinder> <\Familie> <\Familien> Familien Familie Familienname Müller Mutter Vater Kinder Person Person Name Alter Alter Name Anne 35 Bert 38 Paul 3 Ernie 6

Sprachkonzepte 1. Pfad Ausdrücke: - Übernommen von XPath - Zum Navigieren in Dokumenten (entlang der Knoten) - Ein Pfad-Ausdruck besteht aus einer Reihe von Schritten - In jedem Schritt bewegt man sich in einer bestimmten Richtung durch das Dokument - In jedem Schritt kann man mit Hilfe von Prädikaten unerwünschte Knoten elimieren - Das Ergebnis jeden Schrittes ist eine Menge von Knoten die als Startpunkt für den nächsten Schritt dienen können

Sprachkonzepte Beispiel Familien: Symbole: Wähle Dokument: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) Familien Familienname Müller Familie Mutter Vater Kinder Person Person Person Person Alter Alter Alter 35 38 3 6 Name Name Name Name Anne Bert Paul Ernie

Sprachkonzepte Beispiel Familien: Symbole: Wähle Wurzelknoten: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) / Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte Beispiel Familien: Symbole: Wähle Mütter: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) //Mutter Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte Beispiel Familien: Symbole: Personenknoten von Paul: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) //Person[Name=Paul] Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte Beispiel Familien: Symbole: Zweites Kind: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) //Kinder/Person[2] Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte Beispiel Familien: Symbole: Attribut und Dereferenz Operator: . Aktueller Knoten .. Vaterknoten / Sohn/Söhne // Nachkommen @ Attribute * Beliebiger Knoten [] Boolescher Ausdruck (für Prädikate) [n] Integer Prädikat -> Dereferenz Operator document(“Bsp.xml“) //Person[Name=Ernie]/ @MumId->/Person Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6 MumId

2. Element Konstruktoren Sprachkonzepte Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

2. Element Konstruktoren: Sprachkonzepte 2. Element Konstruktoren: - Zum Erstellen des Ergebnis-Dokuments - Tags werden explizit ausgeschrieben und mit gebundenen Variablen gefüllt - Beispiel: <AlleNamen> ... Füllen der Variable $n <Name> $n </Name> </AlleNamen>

3. FLWR (Flower) Ausdrücke Sprachkonzepte Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

3. FLWR (Flower) Ausdrücke: Sprachkonzepte 3. FLWR (Flower) Ausdrücke: - steht für: FOR ... LET ... WHERE ... RETURN - Ursprung: SELECT ... FROM ... WHERE SQL Notation - Schachtelung ist möglich FOR / LET Geordnete Liste von Tupeln gebundener Variablen ($x,$y,$z),($x,$y,$z),... WHERE Reduzierte Liste von Tupeln gebundener Variablen RETURN Ergebnis: XML Dokument bzw. Fragment

3. FLWR (Flower) Ausdrücke: Sprachkonzepte 3. FLWR (Flower) Ausdrücke: Beispiel: Alle Namen die im Dokument Bsp.xml vorkommen: <AlleNamen> FOR $x IN document(Bsp.xml)//Name RETURN <Name> $x </Name> </AlleNamen> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

3. FLWR (Flower) Ausdrücke: Sprachkonzepte 3. FLWR (Flower) Ausdrücke: Beispiel: Alle Namen von Personen die jünger als 10 sind: <Grundschulkinder> FOR $x IN document(Bsp.xml)//Person LET $y := $x/ WHERE $x@Alter < 10 RETURN <Name> $y </Name> </Grundschulkinder> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

3. FLWR (Flower) Ausdrücke: Sprachkonzepte 3. FLWR (Flower) Ausdrücke: Beispiel: Das Alter von den Müttern die mehr als 1 Kind haben: <Mütter> FOR $x IN document(Bsp.xml)//Mutter LET $y := $x/Kinder/ WHERE count($y) > 1 RETURN <Alter> $x/@Alter </Alter> </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

4. Ausdrücke zur Verwendung von Operatoren und Funktionen Sprachkonzepte Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

4. Ausdrücke zur Verwendung von Operatoren und Funktionen Sprachkonzepte 4. Ausdrücke zur Verwendung von Operatoren und Funktionen - Von Quilt werden die üblichen arithmetischen und logischen Operatoren sowie Mengenoperatoren wie: UNION, INTERSECT, EXCEPT, ... zur Verfügung gestellt - Von XQL übernimmt Quilt die infix Operatoren BEFORE und AFTER, die dazu dienen die Positionen von Elementen zu vergleichen, die keinen gemeinsamen Vaterknoten haben - Es werden zusätzlich einige Funktionen zur Verfügung gestellt z.B.: document(“...“), count(), sum(), distinct() - Viele dieser Operatoren und Funktionen haben ihren Ursprung in SQL oder XPath - Es ist ebenfalls möglich eigene Funktionen zu definieren (auch rekursive)

Sprachkonzepte 5. Bedingunsausdrücke Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

Sprachkonzepte 5. Bedingunsausdrücke - IF ... THEN ... ELSE Konstrukte - Können beliebig verschachtelt werden - Beispiel <Mütter> (Altes Beispiel) FOR $x IN document(Bsp.xml)//Mutter LET $y := $x/Kinder/ WHERE count($y) > 1 RETURN <Alter> $x/@Alter </Alter> </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte 5. Bedingunsausdrücke - IF ... THEN ... ELSE Konstrukte - Können beliebig verschachtelt werden - Beispiel <Mütter> FOR $x IN document(Bsp.xml)//Mutter LET $y := $x./Kinder/ RETURN IF count($y)>1 THEN <Alter> $x/@Alter </Alter> ELSE </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte 6. Quantoren Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

Sprachkonzepte 6. Quantoren: -  und  Quantoren :  : EVERY und  : SOME - Beispiel : Junge Familien <Junge Familien> FOR $x IN document(Bsp.xml)//Familie WHERE EVERY $p IN $x/Person SATISFIES ($p@Alter<35) RETURN <Familienname> $x@Familienname </Familienname> </Junge Familien> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

Sprachkonzepte 7. Binden von Variablen Ausdruck Konzepte: 1. Pfad Ausdrücke 2. Element Konstruktoren 3. FLWR (Flower) Ausdrücke 4. Ausdrücke zur Verwendung von Operatoren und Funktionen 5. Bedingunsausdrücke 6. Quantoren 7. Binden von Variablen

Sprachkonzepte 7. Binden von Variablen: - Binden den Wert eines Ausdrucks an eine Variable - Ermöglichen die Wiederverwendung von Zwischenergebnissen - Beispiel: Sortiere alle Personen des Dokuments in älter und jünger als das Durchschnittsalter LET $a := avg(document(Bsp.xml)//Person@Alter) EVAL <Alte> FOR $x IN document(Bsp.xml)//Person WHERE $x@Alter > $a RETURN <Name> $x/Name </Name> </Alte> <Junge> WHERE $x@Alter <= $a </Junge>

Ablauf: 3.Vergleich: Quilt und SQL für rel. DB 1. Einleitung 2. Sprachkonzepte 3.Vergleich: Quilt und SQL für rel. DB 4. Ausblick, Diskussion

Vergleich: Quilt und SQL für rel. DB 1. Teile / Lieferanten Beispiel 2. Einfache Anfragen 3. Gruppieren 4. Joins

Vergleich: Quilt und SQL für rel. DB 1. Teile / Lieferanten Beispiel Relationale Daten: XML Daten: L.xml: <L_tupel> <L_Nr> <L_Name> T.xml <T_tupel> <T_Nr> <T_Beschr> LT.xml <LT_tupel> <L_Nr> <T_Nr> <Preis> L L_Nr L_Name Tabelle Lieferanten: T T_Nr T_Beschr Tabelle Teile: LT L_Nr P_Nr Preis Tabelle Preise:

Vergleich: Quilt und SQL für rel. DB 2. Einfache Anfragen: SQL: Quilt: SELECT T_Nr FROM T WHERE T_Beschr LIKE ´GEAR´ ORDER BY T_Nr FOR $t IN document(“T.xml“)//T_tupel WHERE contains( $t/T_Beschr,“GEAR“) RETURN $t/T_Nr SORTBY(.) L L_Nr L_Name T T_Nr T_Beschr LT L_Nr P_Nr Preis

Vergleich: Quilt und SQL für rel. DB 3. Gruppierung (Grouping): Gebe Teilenummer und Durschnittspreis der Teile aus, die von mehr als 3 Lieferanten geliefert werden: SQL: Quilt: SELECT T_Nr, avg(Preis) FROM LT GROUP BY T_Nr HAVING count(*) >=3 FOR $tn IN distinct(document(“LT.xml“)//T_Nr) LET $lt := document(“LT.xml“)//T_tupel[T_Nr = $tn] WHERE count( $lt) >= 3 RETURN <oft_vorhanden> $tn <avgPr> avg($lt/Preis) </avgPr> </oft_vorhanden> L L_Nr L_Name T T_Nr T_Beschr LT L_Nr P_Nr Preis

Vergleich: Quilt und SQL für rel. DB 4. Joins: Inner Join : Lieferantennamen mit den dazugehörigen Teilebeschreibungen: SQL: Quilt: SELECT L_Name, T_Beschr FROM LT, L ,T WHERE T.T_Nr=LT.T_Nr AND L.L_Nr=LT.L_Nr FOR $lt IN document(“LT.xml“)//LT_tupel) $l IN document(“L.xml“)//L_tupel[L_Nr=$lt/L_Nr]) $t IN document(“T.xml“)//T_tupel[T_Nr=$lt/T_Nr]) RETURN <lt_paar> $l/L_Name, $t/T_Beschr </lt_paar> L L_Nr L_Name T T_Nr T_Beschr LT L_Nr P_Nr Preis

Ablauf: 4. Ausblick, Diskussion 1. Einleitung 2. Sprachkonzepte 3.Vergleich: Quilt und SQL für rel. DB 4. Ausblick, Diskussion

Ausblick, Diskussion Derzeitiger Stand von Quilt: - Quilt hat zu der Entwicklung von XQuery maßgeblich beigetragen (Die Autoren von Quilt sind Mitglieder der Working Group) - Von der Navigationssprache XPath, die als Quelle für Quilt diente, ist am 20.12.2001 die Version 2.0 veröffentlicht worden. Hier wird als Quilt als `Background Reference´ genannt. - Quilt wurde an einigen Universitäten (UCLA, Washington, Pennsylvania) und bei INRIA(Frankreich) implementiert. Es wurden Parser, und Übersetzer (nach SQL) geschrieben und getestet.

Ausblick, Diskussion Zukunft von Quilt: - lebt in leicht abgeänderter Syntax in XQuery weiter - XQuery: - Zur Zeit noch Working Draft (Letzte Version 20.12.2001) - Wird von der W3C XML Query Working Group entwickelt - Beteiligte Firmen: IBM, Software AG, AT&T Labs, Bell Labs, Concentric Visions - Anwendungsgebiete: - Suche im Intranet (z.B. UNIVIS) - WWW ? Sinnvoll ?