XML-Query Übersicht •Was ist XML-Query? •Vergleich RDB XML-Dokument •Syntaktisches und Use-Cases •Kritik und Diskussion Was ist ... Xpath Schema XML-Query ? XML Was macht XML-Query ? • Extrahieren von Daten aus Dokumenten. • Link zur DB-Welt • Wichtiges Bindeglied in der XML-Welt „Ultimately, collections of XML files will be accessed like databases.” Ziele ... goals: “Queries operate on single documents or fixed collections of documents. They can select whole documents or subtrees of documents that match conditions defined on document content and structure, and can construct new documents based on what is selected” ... und Anwendungen • Strukturierte “Human readable” Dokumente durchsuchen • Queries für XML-Repräsentationen von Datenbanken • Administratives: Queries für Konfigurations-dateien • Kataloge durchsuchen : Informationen von verschiedenen Anbietern holen und vergleichen Allgemein: Extrahieren und neu zusammenstellen von Dokumenten mit Berücksichtigung der XMLStruktur. Entwicklungsstand • Richtlinien des W3C für XMLQuery Sprachen. • Erste Xquery V1.0 • Erste Demoanwendungen Vergleich RDB XML-Dokument ERM vs. DTD DB bib Dem entspricht DTD: Book <!ELEMENT bib (book* )> <!ELEMENT book (title, author)> .... Title Oder Schema ... #ISBN #ISBN #AutNr Author #AutNr Name Tabellen vs. Baumstruktur DB bib <bib> Book <book> ISBN Titel 11.. XQL ... 12.. SQL ... <title ISBN=„12..“>SQL</title> <author> <name>Meyer</name> BookAuthor ISBN AuthorNr 11.. 1 12.. 1 Author </author> </book> ..... </bib> AuthorNr Name 1 Meyer Syntaktisches Syntaktisches • Xquery <bib> { SELECT year, title FROM book for $b in document("/XQuery/docs/XMP/bib.xml")/bib/book where $b/publisher "Addison-Wesley" and $b/@year > 1991 WHERE author=„=Addison-Wesley “ AND year > 1991 return ; <book year={ $b/@year }> { $b/title } </book> } </bib> Syntaktisches • XML-QL where <PLAY.ACT> <TITLE>$at</> <SCENE> <TITLE>$st</> <SPEECH><SPEAKER>$sp</SPEAKER> <LINE>$l</LINE> </SPEECH> </SCENE> </> in "http://bilbo.cis.upenn.edu/~adeutsch/xmlqldemo/xml/shakespeare/j_caesar.xml", text($l) like ".*(Et tu, Brute!).*" Syntaktisches • XML-QL construct <quote> <person>$sp</> <act>$at</> <scene>$st</> </quote> Zusammengefasst Zugriff mit SQL Zugriff mit XML-Querylanguage Über Tabellenstruktur, Über Baumstruktur, Attributnamen (Col.) Knotennamen und und Zellwerte. Blattwerte. Vor und Nachteile Effiziente Struktur (schnell) Redundanzverminderung Kontrollmechanismen Verständliche Struktur Redundanzen Kritik und Diskussion • • • • • Kann XML Datenbanken ersetzen? Wer stellt XML-Dokumente zur Verfügung? Serversite, Clientsite? Braucht die Welt XML-Query? XML-Query geht nicht weiter als die Formatierung des Textes es erlaubt. Links • http://www.w3c.org/XML/Query • http://bilbo.cis.upenn.edu/~adeutsch/xmlqldemo/html/ • http://217.77.130.189/demos/xquery/index.html