Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch."—  Präsentation transkript:

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

2 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch2 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

3 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch3 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

4 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch4 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

5 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch5 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

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

7 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch7 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

8 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch8 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

9 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch9 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 Hello XQuery World

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

11 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch11 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

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

13 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch13 FLWR-Ausdrücke For, Let, Where, Return (Flower) For -Klausel for $x in (,, ) return { $x } Let -Klausel let $x := (,, ) return { $x }

14 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch14 Verbunde Realisierung als geschachtelte For -Schleife Beispiel for $d in $departments/department, $e in $employees/employee where $d/manager = $e/ID return {$d/name} {$e/forename} {$e/lastname}

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

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

17 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch17 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 ()

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

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

20 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch20 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

21 Spezifikations- uns Selektionsmethoden für Daten und Dienste - XQuery-Anfragen - Markus Mauch21 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

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


Herunterladen ppt "XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch."

Ähnliche Präsentationen


Google-Anzeigen