Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Mariele Heidebrecht Geändert vor über 10 Jahren
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.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.