Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "1 Quilt: Eine XML Anfragesprache für heterogene Datenquellen Matthias Färber 15.01.2002."—  Präsentation transkript:

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

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

3 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 Obige Autoren sind Mitglieder der XML-Query Working Group - -

4 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 5 Quilt (Flickenteppich)

6 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 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 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 9 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 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 11 Ablauf: 1. Einleitung 2. Sprachkonzepte 3.Vergleich: Quilt und SQL für rel. DB 4. Ausblick, Diskussion

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

13 13 Sprachkonzepte Beispiel Familien: Bsp.xml: Anne Bert Paul Ernie Familien Familie MutterVaterKinder Person Alter Name Familienname

14 14 Sprachkonzepte Beispiel Familien: Familien Familie MutterVaterKinder Person Alter Name Bsp.xml: Anne Bert Paul Ernie Familienname Müller Paul 3 Bert 38 Anne 35 Person Name Alter Ernie 6

15 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 16 Sprachkonzepte Beispiel Familien: Familien Familie MutterVaterKinder Person Alter Name Familienname Müller Paul 3 Bert 38 Anne 35 Person Name Alter Ernie 6 Symbole: Wähle Dokument:. Aktueller Knoten..Vaterknoten /Sohn/Söhne *Beliebiger Knoten []Boolescher Ausdruck (für Prädikate) [n]Integer Prädikat ->Dereferenz Operator document(Bsp.xml)

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

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

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

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

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

22 22 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 23 Sprachkonzepte 2. Element Konstruktoren: - Zum Erstellen des Ergebnis-Dokuments - Tags werden explizit ausgeschrieben und mit gebundenen Variablen gefüllt - Beispiel:... Füllen der Variable $n $n

24 24 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 25 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 WHERE RETURN Geordnete Liste von Tupeln gebundener Variablen($x,$y,$z),($x,$y,$z),... Reduzierte Liste von Tupeln gebundener Variablen Ergebnis: XML Dokument bzw. Fragment

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

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

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

29 29 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 30 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 31 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

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

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

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

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

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

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

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

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

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

41 41 Vergleich: Quilt und SQL für rel. DB 2. Einfache Anfragen: SQL:Quilt: T T_Nr T_BeschrLT L_Nr P_Nr PreisL L_Nr L_Name 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(.)

42 42 Vergleich: Quilt und SQL für rel. DB 3. Gruppierung (Grouping): SQL:Quilt: T T_Nr T_BeschrLT L_Nr P_Nr PreisL L_Nr L_Name 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 $tn avg($lt/Preis) Gebe Teilenummer und Durschnittspreis der Teile aus, die von mehr als 3 Lieferanten geliefert werden:

43 43 Vergleich: Quilt und SQL für rel. DB 4. Joins: SQL:Quilt: T T_Nr T_BeschrLT L_Nr P_Nr PreisL L_Nr L_Name SELECT L_Name, T_Beschr FROM LT, L,T WHERE T.T_Nr=LT.T_Nr ANDL.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 $l/L_Name, $t/T_Beschr Inner Join : Lieferantennamen mit den dazugehörigen Teilebeschreibungen:

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

45 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 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 "1 Quilt: Eine XML Anfragesprache für heterogene Datenquellen Matthias Färber 15.01.2002."

Ähnliche Präsentationen


Google-Anzeigen