Bitte warten
Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.
Untertitel: Development of a Tutorial for XQuery
Masterarbeit, 2009, 92 Seiten
Autor: Master of Science Dimitar Menkov
Fach: Informatik - Angewandte Informatik
Details
Tags: Informatik, XML, XQuery, XPath, Tutorial, MySQL, TU, München, Master, Bachelor, FLWOR, let, XSLT, FO, Abfrage, Abfragesprache, Query, Diplomarbeit, Update, Empfehlung, Requirement, 1.0, 1.1
Jahr: 2009
Seiten: 92
Note: 1.0
Sprache: Deutsch
ISBN (E-Book): 978-3-640-43656-9
ISBN (Buch): 978-3-640-43672-9
Andere Nutzer haben sich auch für folgende Titel interessiert:
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
Andere Nutzer haben sich auch für folgende Titel interessiert:
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für Microsoft Word
Autor: GRIN VerlagVorlagen, Muster, Formulare, Infobroschüren, 2005 Als PDF-Datei downloaden für 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit - Formatvorlage / Vorlage für eine Hausarbeit für OpenOffice.org
Autor: GRIN VerlagVorlagen, Muster, Formulare, Infobroschüren, 2005 Als PDF-Datei downloaden für 9,99 EUR
Formatvorlage zur Erstellung einer Diplomarbeit / Vorlage zur Erstellung einer Hausarbeit
Autor: Marco FeindlerVorlagen, Muster, Formulare, Infobroschüren, 2005 Als PDF-Datei downloaden für 6,99 EUR
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Autor: GRIN VerlagVorlagen, Muster, Formulare, Infobroschüren, 2008 Als PDF-Datei downloaden für 6,99 EUR
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wissenschaftlichen Arbeit
Autor: Zoran ZivkovicVorlagen, Muster, Formulare, Infobroschüren, 2004 Als PDF-Datei downloaden für 5,99 EUR
Erstellen einer schriftlichen Hausarbeit
Autor: Claudia NickelVorlagen, Muster, Formulare, Infobroschüren, 2006 Als PDF-Datei downloaden für 4,99 EUR
Grundtechniken wissenschaftlichen Arbeitens
Autor: Maik PhilippVorlagen, Muster, Formulare, Infobroschüren, 2004 Als PDF-Datei downloaden für 5,99 EUR
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - Hausarbeiten - Seminararbeiten
Autor: Mark RichterVorlagen, Muster, Formulare, Infobroschüren, 2008
Dieser Text kann über folgende URL aufgerufen und zitiert werden: