Bei GRIN registrieren oder einloggen

Your e-mail-address or password is wrong
Jetzt registrieren
Für neue Autoren: kostenlos, einfach und schnell
Dies wird Ihr Benutzername, bitte geben Sie eine gültige E-Mail-Adresse an

Passwort vergessen

Your e-mail-address or password is wrong

Neues Passwort anfordern
Entwicklung eines Tutorials für XQuery close

Bitte warten

Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.

Entwicklung eines Tutorials für XQuery

Untertitel: Development of a Tutorial for XQuery

Masterarbeit, 2009, 92 Seiten
Autor: Master of Science Dimitar Menkov
Fach: Informatik - Angewandte Informatik

Details

Kategorie: Masterarbeit
Jahr: 2009
Seiten: 92
Note: 1.0
Sprache: Deutsch
Archivnummer: V136542
ISBN (E-Book): 978-3-640-43656-9
ISBN (Buch): 978-3-640-43672-9

Zusammenfassung / Abstract

XML wird in den letzten Jahren immer öfters verwendet. Mittlerweile werden viele Informationen in XML gespeichert. Das gilt sowohl für XML- Datenbanken als auch für XML- Dokumente, die auf dem Dateisystem gespeichert sind. Diese Informationen können strukturiert, semi- strukturiert oder relativ nicht strukturiert (z.B. Bücher) sein. Noch mehr Informationen werden zwischen verschiedene Systeme vorübergehend als XML ausgetauscht. Die Informationen, können für verschiedene Zwecke gebraucht werden. In diesem Fall sind verschiedene Elemente von Interesse. Aus diesem Grund kann es wünschenswert sein, diese Daten entsprechend formatiert und transformiert zu bekommen. XQuery (kürz. XML Query Language) ist eine vom W3C spezifizierte Abfragesprache. XQuery wurde implementiert um genau diese Anforderungen zu erfüllen. Mit XQuery ist es möglich XML- Elemente zu selektieren, die Datenstruktur zu reorganisieren oder zu transformieren. Es ist ebenfalls möglich die Ergebnisse, die von der Abfrage zurückgegeben werden, in einer gewünschten Struktur auszugeben. XQuery bietet viele Features, die viele verschiedene Operationen an XML- Daten und Dokumente ermöglichen.


Textauszug (computergeneriert)

Technische Universität

München

Fakultät für Informatik

Lehrstuhl Informatik XI:

Angewandte Informatik /

Kooperative Systeme

Master′s Thesis in Informatik

Entwicklung eines Tutorials für XQuery

Development of a Tutorial for XQuery

Bearbeiter: Dimitar Menkov

Abgabedatum: 28.05.2009



Inhaltsverzeichnis

Abbildungsverzeichnis 5

Beispielverzeichnis 5

Tabellenverzeichnis 6

1. Einführung 8

1.1. XML als Sprache 8

1.2. Was ist eine Abfrage? 10

1.3. Warum ist XQuery nötig? 13

1.4. Das Beispiel 14

2. Datenmodell 16

2.1 Knoten 18

2.1.1 Knotenhierarchie 19

2.1.2 Knotenfamilie 19

2.1.3 Knotenidentität 21

2.2 Atomic Values 21

2.3 Sequenzen 22

2.4 Namespaces 23

2.5 Das Datenmodell als Baum 23

2.6 Das Datenmodell als Sequenz 25

3. XQuery als Abfragesprache 28

3.1 Input Funktionen 28

3.2 Navigieren durch den XML-Baum 29

3.2.1 Schritte 30

3.2.2 Achsen 31

3.2.3 Knotentests 32

3.2.4 Prädikate 33

3.2.4.1 Werteprädikat 33

3.2.4.2 Prädikate für Position 34

3.2.4.3 Das Kontext- Item 34

3.2.4.4 Der Baum in beiden Richtungen durchlaufen 35

3.2.4.5 Vergleich zwischen verschiedene Baumzweige 35

3.2.4.6 Finden eines Elements anhand seinen Namen 36

3.3 Erzeugen von XML Knoten und Attributen 36

3.3.1 Miteinbezogene Elemente und Attribute aus der Input- Dokument 37

3.3.2 Direkte Element- Konstruktoren 37

3.3.3 Computed Constructors 40

3.4. Verbinden und Restrukturieren von Knoten (FLWOR) 42

3.4.1 ,,For" und ,,Let" Klausel 44

3.4.2 ,,Where" Klausel 46

3.4.3 ,,Order by" Klausel 46

3.4.4 ,,Return" Klausel 47

3.4.5 Joins 48

3.5 Operatoren und Bedingte Ausdrücke 50

3.5.1 Arithmetische Operatoren 51

3.5.2 Vergleichsoperatoren 51

3.5.3 Sequenz Operatoren 53

3.5.4 Bedingte Ausdrücke 53


3.6 Funktionen 54

3.6.1 Built-In Funktionen 54

3.6.2 Benutzerdefinierte Funktionen 56

4. Vergleich von XQuery mit anderen Technologien 59

4.1 Vergleich mit SQL 59

4.1.1 Relationales Model vs. XML Datenmodell 59

4.1.2 Syntax 61

4.1.3 Zusammenspiel von SQL und XQuery 65

4.2 Vergleich mit XSLT 67

4.2.1 Gemeinsame Komponenten 68

4.2.2 Unterschiede 69

5. Implementierungen 73

5.1 Saxon 73

5.2 eXist 74

6. Erweiterungen und Weiterentwicklungen von XQuery 81

6.1 Update Facility 81

6.2 Volltextsuche 83

6.3 XQuery 1.1 84

7. Zusammenfassung 86

Appendix A: Primitive Datentypen 87

Appendix B: Built-In Funktionen 88

Literaturverzeichnis 89


Abbildungsverzeichnis

Abbildung 1: Ergebnis nach Select-Operation 11

Abbildung 2: Ergebnis nach ausgeführtem Update 11

Abbildung 3: Verarbeitungsmodell 16

Abbildung 4: Datenmodellkomponenten 18

Abbildung 5: Knotenhierarchie 19

Abbildung 6: Datenmodellinstanz als Baum 24

Abbildung 7: Datenmodellinstanz als Sequenz 26

Abbildung 8: Das ,,Mediathek" Dokument 29

Abbildung 9: Computed Konstruktor Syntax 41

Abbildung 10: Syntax der FLWOR- Ausdruck 43

Abbildung 11: Syntax der for Klausel 44

Abbildung 12: Syntax der let Klausel 44

Abbildung 13: Syntax der order by Klausel 47

Abbildung 14: Syntax: bedingter Ausdruck 54

Abbildung 15: Syntax der Funktionsdeklaration 56

Abbildung 16: SQL (relationale) Repräsentation von Mediathek.xml -Auszug 59

Abbildung 17: SQL (relationale) Repräsentation von PlaylistMediathek.xml - Auszug 60

Abbildung 18: XQuery / XSLT /XPath 68

Abbildung 19: Syntax des insert Ausdrucks 82

Abbildung 20: Syntax des delete Ausdrucks 82

Abbildung 21: Syntax des replace Ausdrucks 82

Abbildung 22: Syntax des rename Ausdrucks 83

Abbildung 23: Syntax des Transform- Ausdrucks 83

Beispielverzeichnis

Beispiel 1: Kleines XML Dokument 9

Beispiel 2: Auszug aus generierte Mediathek.xml 15

Beispiel 3: Auszug aus generierte PlaylistMediathek.xml 15

Beispiel 4: Query mit Prolog und Body 16

Beispiel 5: Queryergebnis anhand Beispiel 4 17

Beispiel 6: Knotenarten und Knotenverwandtschaft 20

Beispiel 7: Der Name des ersten Kinderknoten innerhalb des ersten Musikstücks 21

Beispiel 8: Extrahieren von Atomic Values mittels

data

und

string

21

Beispiel 9:Atomization 22

Beispiel 10:Eingabedokument mit Namensraum 23

Beispiel 11: Query mit Namensraum 23

Beispiel 12: Einfache Query 25

Beispiel 13: Ergebnis der Query 26

Beispiel 14: Einfache Navigation durch den XML- Baum 30

Beispiel 15: Anfrage mit Werteprädikat 33

Beispiel 16: Anfrage mit Prädikat für Position 34

Beispiel 17: Das Kontext-Item 35

Beispiel 18: XML Baum nach oben und nach unten durchlaufen 35

Beispiel 19: Vergleich zwischen verschiedene Baumzweige 36

Beispiel 20: Element anhand seines Namens finden 36

Beispiel 21: Elemente aus dem Input- Dokument 37


Beispiel 22: Konstruieren von XML- Elemente mit XML- Syntax 38

Beispiel 23: Hinzufügen eines Attributs zu einem Elementen 39

Beispiel 24: Entfernen von Kinder- Elemente 40

Beispiel 25: Einfacher computed Konstruktor 41

Beispiel 26: FLWOR 43

Beispiel 27: Query mit for Klausel 44

Beispiel 28: Query mit let Klausel 45

Beispiel 29: Query mit for und let Klausel 45

Beispiel 30: Query mit for und let Klausel 45

Beispiel 31: For Klausel: mehrere Variablen 46

Beispiel 32: Query mit where Klausel 46

Beispiel 33: Order by Klausel 47

Beispiel 34: Order by Klausel 2 47

Beispiel 35: Join 48

Beispiel 36: Join mit Prädikat 49

Beispiel 37: Outer Join 50

Beispiel 38: Implizite Typumwandlung 51

Beispiel 39: Der eq Operator 52

Beispiel 40: Expliziter cast bei untyped Values 52

Beispiel 41: Operator für Reihenfolgevergleich 53

Beispiel 42: Der union Operator 53

Beispiel 43: Der except Operator 53

Beispiel 44: Bedingter Ausdruck innerhalb eines FLWORs 54

Beispiel 45: Built-in Funktionen 55

Beispiel 46: Die Funktion string 56

Beispiel 47: Funktionsdeklaration 57

Beispiel 48: Rekursive Funktion 58

Beispiel 49: Kombination von Werte / distinct-values 64

Beispiel 50: Join in SQL / XQuery 64

Beispiel 51: Geschachtelte SQL / XQuery Abfragen 65

Beispiel 52: Erzeugen einer relationalen Tabelle mit XML Inhalt 66

Beispiel 53: Auslesen von XML-Daten bei MySQL 66

Beispiel 54: XQuery Syntax vs. XSLT Syntax 69

Beispiel 55: Push Stylesheet 70

Beispiel 56: Emulation von Templates durch benutzerdefinierte Funktionen 71

Beispiel 57: Anlegen einer neuen Collection 75

Beispiel 58: Speichern von XML- Dokumente in der Datenbank 77

Beispiel 59: Einfügen von neuen Knoten 79

Beispiel 60: Löschen eines Musikstücks 80

Tabellenverzeichnis

Tabelle 1: Achsen 31

Tabelle 2: Operatoren für Wertevergleich bzw. generelles Vergleich 51

Tabelle 3: Knotenvergleich 52

Tabelle 4: Reservierte Funktionsnamen 58

Tabelle 5: SQL Query vs. XQuery Query 62

Tabelle 6: SQL vs XQuery: Der IN Operator 62

Tabelle 7: SQL und XQuery not Operator / Funktion 63

Tabelle 8: Äquivalente Funktionen bei XQuery und SQL 63


Tabelle 9: Mengenoperatoren 65

Tabelle 10: Vergleich zwischen XSLT und XQuery Merkmale 69


8

1. Einführung

Am Anfang dieser Master- Arbeit wird ein kurzer Überblick über XML als Sprache

geschafft. Anschließend wird erklärt was unter den Begriff ,,Abfrage" zu verstehen ist.

Sind beide Begriffe erklärt, wird dann besprochen warum eine XML- Abfragesprache

wie XQuery notwendig ist. In Kapitel 2 wird das XQuery Datenmodell beschrieben. In

Kapitel 3 wird XQuery als Abfragesprache ausführlich beschrieben. Hier wird erklärt

wie durch das XML- Baum navigiert werden kann, wie neue Knoten und Attribute er-

zeugt werden können. Weiterhin wird beschrieben wie Knoten restrukturiert werden

können. Die so genannten FLWOR- Ausdrücke werden Schritt für Schritt erläutert,

um dann die Sprache XQuery mit weiteren Technologien wie SQL und XSLT kon-

zeptionell vergleichen zu können. Im Nachhinein werden zwei Implementierungen

vorgestellt und ihre Funktionalität erläutert. Im Anschluss wird klar gemacht wie die

Zukunft von XQuery aussieht und welche Weiterentwicklungen und Anforderungen

geplant sind. Das gesamte Tutorial wird durch ein, von Anfang an sich erweiterndes,

Beispiel begleitet. Das Beispiel orientiert sich an klassische Musikstücke aus einer

iTunes Mediathek.

1.1. XML als Sprache

Die Extensible Markup Language (engl. für erweiterbare Auszeichnungssprache) ab-

gekürzt XML, ist eine Auszeichnungssprache für Dokumente, die strukturierte Infor-

mationen enthalten [XMLcom01]. XML wird zur Darstellung hierarchisch struktu-

rierter Daten in Form von Textdaten verwendet. Es wird vor allem zum Austausch

von Daten zwischen verschiedenen IT-Systemen über das Internet eingesetzt. Im

Vergleich zu HTML sind die Tags (engl. für Auszeichnungselement) nicht fest defi-

niert. Der Benutzer kann selbst neue Elemente und Attribute definieren und sie, ent-

sprechend seinem Nutzen, benennen. Ein XML- Element kann unterschiedliche Da-

ten enthalten und beschreiben. Meistens sind es Daten in Form von Texte, aber auch

Grafiken oder abstraktes Wissen. Der wichtigste Punkt dabei ist, dass die Struktur

(DTD und Schemata) und das Layout (CSS, XSL) streng voneinander getrennt sind.

Auf diese Weise können ein und dieselben Daten z.B. einmal als Grafik und einmal

als Tabelle ausgegeben werden. Daraus lässt sich schließen, dass die XML- Ele-

mente den Inhalt beschreiben, und nicht seine Darstellung.

XML- Dokumente müssen sich an einigen Regeln halten (,,Wohlgeformtheit"):

Das Dokument hat genau ein Wurzelelement. Unterhalb dieses Wurzel-

element können weitere Elemente mehrfach und verschachtelt vorkommen

Die Elemente mit Inhalt sollen zunächst geöffnet und anschließend ge-

schlossen werden. Elemente ohne Inhalt können auch in sich geschlossen

sein.


9

<?xml version="1.0" encoding="UTF-8" ?>

<track>
<TrackID>474</TrackID>
<Name/>
<Size>4202991</Size>
</track>

Beispiel 1: Kleines XML Dokument

Die Start- und Endtags sind ebenentreu-paarig verschachtelt usw.

Soll XML für den Datenaustausch zwischen verschiedene Systeme zum Einsatz

kommen, ist es vorteilhaft, wenn das Format mit Hilfe einer Grammatik (z.B. DTD

oder XML- Schema) definiert ist. Ein XML- Dokument wird als ,,gültig" gekenn-

zeichnet, wenn das Dokument:

wohlgeformt

ist

auf eine Grammatik (z.B. DTD) verweist

sich an die Regel der Grammatik hält

Weiterhin lassen sich XML- Dokumente, anhand ihres beabsichtigen Gebrauchs und

ihres Strukturiertheitsgrades in strukturierte, unstrukturierte und semi- strukturierte

Dokumente klassifizieren.

Strukturierte (oder ,,datenzentrierte") Dokumente: Dokumente, die hauptsäch-

lich für die maschinelle Verarbeitung bestimmt sind. Die Dokumente folgen

ein Schema, das Entitäten eines Datenmodells beschreibt und definiert, in

welcher Beziehung die Entitäten zueinander stehen, sowie, welche Attribute

die Entitäten haben. Das Dokument ist somit stark strukturiert und für den un-

mittelbaren menschlichen Gebrauch weniger geeignet.

Unstrukturierte

(oder

,,dokumentzentrierte") Dokumente: Dokumente, die von

Menschen auch ohne zusätzliche Metainformationen verständlich sind. XML-

Elemente werden hauptsächlich zur semantischen Markierung von Passagen

des Dokuments genutzt (z.B. Kapitel oder Paragraphen eines Buches). Der

Begriff ,,unstrukturiert" ist ein wenig irreführend, da alle Dokumente eine ge-

wisse Struktur haben, auch wenn diese Struktur nur implizit gegeben ist (z.B.

Satzzeichen). Aufgrund der schwachen Strukturierung ist eine maschinelle

Verarbeitung schwierig. XML könnte verwendet werden, um unstrukturierte

Daten auszuzeichnen und zu repräsentieren. Diese Möglichkeit sollte aber

vermieden werden. Im Allgemeinen ist XML für die semantische Auszeich-

nung gedacht. Die Präsentation der Daten sollte z.B. an XSLT (Extensible

Stylesheet Language Transformation) überlassen werden.

Semi- strukturierte Dokumente: Eine Mischform für Dokumente, die stärker

strukturiert als dokumentzentrierte Dokumente und wiederum schwächer

strukturiert als datenzentrierte Dokumente sind.



Kommentare

Bisher keine Kommentare

Kommentar hinzufügen
Ihr Kommentar wird redaktionell geprüft und dann freigeschaltet

Andere Nutzer haben sich auch für folgende Titel interessiert:


Dieser Text kann über folgende URL aufgerufen und zitiert werden:

http://www.grin.com/e-book/136542/entwicklung-eines-tutorials-fuer-xquery
please wait Bitte warten