Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Quilt: Eine XML Anfragesprache für heterogene Datenquellen

Ähnliche Präsentationen


Präsentation zum Thema: "Quilt: Eine XML Anfragesprache für heterogene Datenquellen"—  Präsentation transkript:

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

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

3 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 - -

4 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):

5 Quilt (Flickenteppich)

6 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):

7 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

8 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

9 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

10 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

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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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>

24 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

25 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

26 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

27 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 < 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

28 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> </Alter> </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

29 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

30 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)

31 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

32 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> </Alter> </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

33 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> </Alter> ELSE </Mütter> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

34 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

35 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 RETURN <Familienname> </Familienname> </Junge Familien> Familien Familie Mutter Vater Kinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Ernie 6

36 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

37 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 := EVAL <Alte> FOR $x IN document(Bsp.xml)//Person WHERE > $a RETURN <Name> $x/Name </Name> </Alte> <Junge> WHERE <= $a </Junge>

38 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

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

40 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:

41 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

42 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

43 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

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

45 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 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.

46 Ausblick, Diskussion Zukunft von Quilt:
- lebt in leicht abgeänderter Syntax in XQuery weiter - XQuery: - Zur Zeit noch Working Draft (Letzte Version ) - 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 ?


Herunterladen ppt "Quilt: Eine XML Anfragesprache für heterogene Datenquellen"

Ähnliche Präsentationen


Google-Anzeigen