1 / 22

XQuery-Anfragen

XQuery-Anfragen. Markus Mauch. Spezifikations- und Selektionsmethoden für Daten und Dienste. Motivation. Extensible Markup Language (XML) Meta-Auszeichnungssprache Darstellung, Austausch und Weiterverarbeitung von semi-strukturierten Daten Selbstbeschreibend

stephanie
Download Presentation

XQuery-Anfragen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XQuery-Anfragen Markus Mauch Spezifikations- und Selektionsmethoden für Daten und Dienste

  2. Motivation • Extensible Markup Language (XML) • Meta-Auszeichnungssprache • Darstellung, Austausch und Weiterverarbeitung von semi-strukturierten Daten • Selbstbeschreibend • Validierung gegen ein Schema möglich  XML als Datenmodell für semi-strukturierte Daten • Problematik • Wie kann man Daten aus XML-Dokumenten extrahieren? • Gesucht: Mechanismus zur Beschreibung von Anfragen auf XML-Datenbanken Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  3. XML Query Language (XQuery) • XML Query Working Group (W3C) • Ziel: Anfragesprache für semi-strukturierte Daten • Erweiterung einer existierenden Anfragesprache? • Unterschiede zwischen semi-strukturiert und relational • Heterogenität vs. Homogenität • Hierarchische Daten • Metadaten • Implizite Ordnung  Entwurf der Anfragesprache XQuery Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  4. XML Query Language (XQuery) • Anforderungen an XQuery • Zusammensetzbarkeit • Abgeschlossenheit • Vollständigkeit • Korrektheit • Eigenschaften • Funktionale, stark typisierte Anfragesprache • Datentypen aus XML Schema • Ausdrücke • Operatoren • Kontrollstrukturen • Funktionen Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  5. Gliederung • Datenmodell und Typsystem • Grundlagen • Atomare Werte und Knoten • XQuery-Ausdrücke • Einfache Ausdrücke • Pfadausdrücke • FLWR-Ausdrücke • Funktionen • Erweiterte Konzepte • XQuery-Core • Typechecking-Problem • Schluss • Zusammenfassung • Bewertung und Ausblick Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  6. 1. Datenmodell und Typsystem Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  7. Struktur des XQuery-Datenmodells • Datenmodell • Beschreibung der inneren Struktur und der Beziehungen von Datenobjekten untereinander • Welche Informationen sind relevant? • Anfrage bildet eine Instanz des Datenmodells auf eine andere ab • Beispiel: Document Object Model (DOM) • XQuery-Datenmodell • Instanz repräsentiert ein XML-Dokument oder -Fragment • Grundlegendes Konstrukt: Folge von Items • Item • Atomare Werte oder Knoten • Einelementige Folge Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  8. Datentypen • Atomare Werte • Instanzen eines einfachen Typs • XQuery besitzt eigene und von XML Schema vererbte Datentypen • Beispiele • xs:integer • xs:string • xs:date • xs:boolean • xdt:untypedAtomic Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  9. Datentypen • Knoten • XML-Dokument:Baum bestehend aus Knoten • Knotentypen • element • attribute • text • document-node • comment • processing-instruction • namespace • Elementknoten • Einfacher und komplexer Inhalt • Textueller Wert und Typ <?xml version="1.0"?> <greetings> <!-- Welcome Message --> <welcome> Hello XQuery World </welcome> </greetings> Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  10. 2. XQuery-Ausdrücke Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  11. Grundlagen • Einfache XQuery-Ausdrücke • Literale • Operatoren • Variablen • Funktionsaufrufe • Beispiel • (1, 2, 3) • 1 to 3 • ((1, 2), (), 3) • Elementkonstruktoren • XML-Fragment • Elementkonstruktoren mit konstanten Elementnamen • Berechenbare Elementkonstruktoren Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  12. Pfadausdrücke • LokalisierungsschritteAchse::Knotentest[Prädikat] • XPath-Achsen • ancestor • preceeding • following • descendant • child • parent • … • Beispieldocument(`items.xml')/child::*/child::item[child::seller=`Smith']/child::description Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  13. FLWR-Ausdrücke • For, Let, Where, Return (“Flower“) • For-Klausel for $x in (<a/>, <b/>, <c/>) return <result>{ $x }</result><result><a/></result> <result><b/></result> <result><c/></result> • Let-Klausellet $x := (<a/>, <b/>, <c/>) return <result>{ $x }</result><result><a/><b/><c/></result> Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  14. Verbunde • Realisierung als geschachtelte For-Schleife • Beispielfor $d in $departments/department, $e in $employees/employee where $d/manager = $e/IDreturn <department> {$d/name} <management> {$e/forename} {$e/lastname} </management> </department> Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  15. Funktionen • Vordefinierte Funktionen • Numerische Funktionen, Zeichenkettenfunktionen, Datumsfunktionen, Funktionen auf Knoten und Folgen, Aggregatfunktionen, ... • Benutzerdefinierte Funktionen • Funktionskopf, Funktionsrumpf • Aufwertungshierarchiexs:integer  xs:decimal  xs:float  xs:double • Beispieldefine function highbid(element $item) returns xs:decimal{ max(document("bids.xml")//item[itemno = "123"]/bid-amount)} Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  16. 3. Erweiterte Konzepte Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  17. XQuery-Core • XQuery Formal Semantics • Eindeutige Beschreibung der Semantik • Fragment von XQuery • Besitzt eine zu XQuery identische Ausdrucksmächtigkeit • Abbildung von XQuery-Anfragen auf XQuery-Core • Beispiel[[$bib/child::book]]for $v1 in $bib return for $v2 in nodes($v1) return typeswitch ($v2) as $v3 case ELEMENT book {ANYTYPE} return $v3 dafault return () Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  18. Typechecking-Problem • Validierung vs. Typüberprüfung • Ist ein Dokument schemakonform? • Ist das Ergebnis einer Anfrage für alle Eingabedaten schemakonform? • Typechecking durch Typableitung<result> { for $x in $db/tuple return <a/>, for $x in $db/tuple return <b/>} </result> ELEMENT result((ELEMENT a)*, (ELEMENT b)*) ELEMENT result((ELEMENT a)n, (ELEMENT b)n), n >= 0 • Alternative • Typechecking durch Aufzählung Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  19. 4. Schluss Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  20. Zusammenfassung • XQuery als Anfragesprache für semi-strukturierte Daten • Datenmodell und Typsystem • Kombinierbarkeit der Ausdrücke • XQuery ist ausdrucksmächtig • Transformation von Dokumenten • Formale Definition • Eindeutige Semantik • Nachweisbar relational vollständig Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  21. Bewertung und Ausblick • Pro • Mächtiges und durchdachtes Sprachkonzept • Frei zugängliche Spezifikation • Kompatibilität zu anderen W3C-Empfehlungen • Kontra • Typechecking-Problem • Keine Aktualisierung von XML-Dokumenten möglich • Fehlende Volltext-Primitiven • XQuery Status: Candidate Recommendation • Aufnahme von XQuery in kommerzielle Datenbanksysteme  XQuery wird an Bedeutung gewinnen Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

  22. Vielen Dank für die Aufmerksamkeit. Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch

More Related