xml und datenbanken - systeme - meike klettke universität rostock fakultät für informatik und...

74
XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik [email protected] www.xml-und-datenbanken.de

Upload: dennis-langenberg

Post on 06-Apr-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

XML und Datenbanken - Systeme -

Meike KlettkeUniversität RostockFakultät für Informatik und Elektrotechnikmeike@informatik.uni-rostock.dewww.xml-und-datenbanken.de

Page 2: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Inhalt der Vorlesung

Vorstellung verschiedener Systeme Objektrelationale und relationale Datenbanksysteme und ihre

Erweiterungen– Oracle– DB2– MS SQL-Server

Native XML-Datenbanksysteme– Tamino– Infonyte

Weitere Systeme– Galax– Berkeley DB XML

Benchmarks Literatur

Page 3: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

!!!!!

Alle Systeme zur Speicherung und Verwaltung von XML-Dokumenten unterliegen ständig Änderungen

damit ändert sich auch die Funktionalität besonders aber kann sich auch die Syntax verändern es gibt also keine langfristige Garantie für die Korrektheit

der Beispiele Syntaxbeispiele werden deshalb nur sparsam eingesetzt

und dienen vorwiegend der Illustration von dargestellter Funktionalität

Wenn Syntax aus dem Buch und der VL voneinander abweichen, dann gilt Syntax der VL

Page 4: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle

Mit Oracle 10, Vereinigung der Daten- (Data) und Inhaltsverarbeitung (Content Processing)

Grundlegende Funktionen

– Ausgabe von Datenbankinhalten mit XML-Syntax

– Verschiedene Speicherungsverfahren

Page 5: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle XML Developer's Kit (Oracle XDK)

Grundbausteine zum Lesen, Manipulieren, Transformieren, Anzeigen und Generieren von XML-Dokumenten

XML Parser:– DOM (einschließlich Version 3.0), SAX– direkter Zugriff auf XMLTypen in den Oracle Datenbanken über C

DOM Schnittstellen XSLT Prozessoren (mit XSLT 2.0 Java Unterstützung) XML Schema Prozessoren: unterstützen die Validierung gegen ein XML-

Schema XML Class Generator: generiert automatisch Java-Klassen aus DTDs oder

XML-Schemata XML SQL Utility:

– generiert XML-Dokumente, DTDs und XML-Schemas aus SQL-Anfragen

– realisiert das Insert von XML-Dokumenten in Oracle-Datenbanken …

Page 6: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

verschiedene Modi zur XML-Speicherung Speicherungsverfahren

– Native Speicherung von XML-Dokumenten• Verschiedene Möglichkeiten• Anfrage mit XPath, XQuery

– Strukturierte Speicherung von XML-Dokumenten in Datenbanken,

• Anfragen: XPath,XQuery, SQL

Page 7: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

1. Speicherung als CLOB

Verwendung von Oracle Text zur Speicherung kein Schema erforderlich Auswertung durch Anfragen, in denen auch das Markup

ausgewertet wird

SELECT *FROM hotelsWHERE contains(hotel, 'Strand INPATH

(/hotels/hotel/beschreibung) ') > 0 ORDER BY score DESC;

Auch Methoden hasPath() und contains() erlaubt

Page 8: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

2. relationale Speicherung

Umkehrung der Exportfunktion XML-Dokumente müssen einer bestimmten Syntax

entsprechen (dreistufige Schachtelung von Elementen, die auch beim Export eingesetzt wird)

diese Syntax kann auch über XSLT erreicht werden

Page 9: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

native Speicherung als Dokument /1 ab Version 9i , Release 2: XMLType (Datentyp) Für Relationen oder Attribute einsetzbar, die dann XML enthalten können Validierung beim Einfügen von Daten ist möglich Transformation mit XSL kann erfolgenCREATE TABLE hotels ( name VARCHAR2(40), ort VARCHAR2(35), beschreibung SYS.XMLTYPE, ausstattung SYS.XMLTYPE, preise SYS.XMLTYPE, telefonnr VARCHAR(30))insert into hotels (name, ort, beschreibung, ausstattung, preise, telefonnr)values ('Hotel Neptun', 'Warnemuende', sys.XMLType.createXML('In Warnemuende ankommen und sich zu Hause fuehlen'), sys.XMLType.createXML('<schwimmbad>Original-Thalassozentrum. Wir haben fuer Sie frisches Ostseewasser in das Hotel geholt!</schwimmbad>'), sys.XMLType.createXML('<DZ waehrung="Euro">186</DZ><EZ waehrung="Euro">135</EZ>'), '0381-54370');

Page 10: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

native Speicherung als Dokument /2

XPath-Ausdrücke in SQL

SELECT ausstattung.extract ('schwimmbad/text()').getStringVal() "Swimmingpool"FROM hotels;

Swimmingpool-----------------Original-Thalassozentrum. Wir haben fuer Siefrisches Ostseewasser in das Hotel geholt!

Page 11: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

native Speicherung als Dokument /3 Neben create und extract weitere Methoden:

– existNode(), – schemaValidate(),

• Validierung der XML-Dokumente gegen das zugeordnete Schema– appendChildXML(), insertXMLBefore(), deleteXML(), updateXML(),

• Also Updateoperationen– transform()

• XSL-Transformationen

Page 12: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

4. native objektrelationale Speicherung

ab Version 9 i, Release 2 Einsatz eines annotierten XML-Schema, das die Zuordnung

zwischen den – Elementen/Attributen der XML-Dokumente und den– Relationen und Attributen der Datenbank beschreibt.

Beispiel:

warum nativ: alle Informationen aus dem DOM in Metadaten gespeichert

Page 13: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

native objektrelationale SpeicherungBeschreibung des Mappings

Oracle: XML schema extension <xs:schema … >

<xs:element name="PurchaseOrder" type="PurchaseOrderType" xdb:defaultTable="PURCHASEORDER"/>

<xs:complexType name="PurchaseOrderType" xdb:SQLType="PURCHASEORDER_T"> <xs:sequence>

<xs:element name="Reference" type="ReferenceType" minOccurs="1" xdb:SQLName="REFERENCE"/>

<xs:element name="Actions" type="ActionsType" xdb:SQLName="ACTIONS"/>

<xs:element name="Reject" type="RejectionType" minOccurs="0" xdb:SQLName="REJECTION"/>

<xs:element name="Requestor" type="RequestorType" xdb:SQLName="REQUESTOR"/>

<xs:element name="User" type="UserType" minOccurs="1" xdb:SQLName="USERID"/>

Page 14: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Kombination von Speicherungsvarianten

Verschiedene Speicherungsvarianten können kombiniert werden.

Unterstützung bei der hybriden Speicherung von XML-Dokumenten dadurch möglich – Datenzentrierte Anteile werden strukturiert in

Datenbanken gespeichert – dokumentzentrierte Anteile als XMLType gespeichert

Anfragen können dann auf beiden Speicherungsvarianten durchgeführt werden.

Beim Export lassen sich die verschiedenen Speicherungsformen wieder zusammenführen, sodass die XML-Dokumente wiederhergestellt werden können.

Page 15: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Schemaprüfung

beim Einfügen von XML-Dokumenten erfolgt "leichte" Schemaprüfung (Test auf Gültigkeit)

aus Effizienzgründen vollständige Schemaprüfung

ist aktivierbar

Page 16: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Anfragen

bei CLOB-Speicherung: – in SQL MM Text definierte Operationen

XQuery-Anfragen als Bestandteil einer SQL-Anfragen SQL bei relationaler Speicherung

Page 17: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Ausgabe von XML /1

Anfrage:SELECT Name, Kategorie, Ort

FROM Hotel, AdresseWHERE (Ort=‘Warnemuende') AND

(Hotel.Hoteladr=Adresse.AdresseID)

Ergebnis:<rowset>

<row no=´1´> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Ort>Warnemuende</Ort> </row>

</rowset>

Page 18: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Ausgabe von XML

Weitere Möglichkeit: SQL/XML

Folgt bei DB2

Page 19: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Einordnung

daten-zentriertstrukturiert

semi-dokument-zentriert

logi

sch

phys

isch

konz

eptu

ell

nativ objekt-

SQL + XPath

relationale Speicherung

relationale Sp.

XMLTypeCLOB

XPath, XQuery

IR-Anfragen

Page 20: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Zusammenfassung /1

XML-Speicherung: Modell: objektrelationales Modell, oder Dokumentmodell (bei CLOBs) Schemabeschreibung: nicht notwendig, Validierung möglich, bei

objektrelationaler Speicherung annotiertes Schema erforderlich Art der Speicherung:

– (Als CLOB)– vollständige Speicherung als XMLType (nativ als Dokument), – Native objekt-relationale Speicherung– fragmentierte Speicherung ist ebenfalls möglich

Ordnungserhaltung: ja, außer bei relationaler SpeicherungIndizierung: Struktur, Pfade: in Oracle Text schon länger, Strukturindex seit Version 10 Werte: ja Volltext: ja

Page 21: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Oracle – Zusammenfassung /2

XML-Import, XML-Export: Export in festes Format, Import aus feststehendem Format,

weitere Anpassungen mit XSLT Import über annotiertes XML-Schema Export durch SQL/XML oder auch XQueryAnfrage- und Manipulationsschnittstellen: Anfragen: XPath auf XMLType, XQuery, SQL Volltextfunktionalität: ja (Information Retrieval mit Oracle Text),

also bei Speicherung als CLOB und XMLType Änderungsoperationen: darstellbar, bei XMLType und CLOB

realisiert durch vollständigen Austausch der XML-Dokumente Transformationen: XSLTWerkzeuge, Besonderheiten XSLT-Prozessor, XML-Prozessoren (DOM, SAX), XML Schema

Validator

Page 22: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

DB2

DB2 UDB mit XML- und TextExtender verschiedene Arten der Speicherung von XML-Dokumenten

– direkte Speicherung in einem XML-Datentyp– Abbildung auf objektrelationale Strukturen– Speicherung als Volltext und Anfrage unter

Berücksichtigung des Markups

Page 23: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

XML Extender

vereinigt objektrelationale Datenbanktechnologie mit XML ab DB2 UDB V7.1 integriert realisiert zwei Speicherungstechniken

– XML Collection • Mechanismus zur Abbildung auf objektrelationale

Strukturen – XML Column

• XML-Datentyp zur Speicherung von ganzen XML-Dokumenten oder XML-Fragmenten eingesetzt

Form der Speicherung wird mit Data Access Definition (DAD) beschrieben

Einsatz beim Import und Export Anfragemöglichkeiten von SQL und XPath

Page 24: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Möglichkeiten zur Speicherung

XML Column

XML Collection

Page 25: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Zusammenwirken der Komponenten

Page 26: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Syntaxbeispiel: DAD-File

<DAD><Xcollection><root_node><element_node name="hotel"> <RDB_node> <table name="hotel" key="hname"/> <table name="zimmertyp" key="hname, ztyp"/> <condition>hotel.hname = zimmertyp.hname</condition> </RDB_node> <attribute_node name="hname"> <RDB_node> <table name="hotel"/> <column name="hname" type="VARCHAR(32)"/> </RDB_node> </attribute_node> RDB – node = relational DataBase node ...</root_name></Xcollection></DAD>

Page 27: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Anfragen

Ausgabe aller Zimmerpreise:

SELECT db2xml.extractDouble(zimmertyp, '/zimmertyp/preis')FROM zimmertypWHERE hname = 'Hotel am Leuchtturm'

Ausgabe aller Hotelnamen in Form einer Tabelle

SELECT *FROM table(db2xml.extractStrings(db2xml.XMLFile('/home/hme/hotel/hotels.xml'), '/hotel/*/name'))AS hotelname

Page 28: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Text Extender und Volltextsuche

Abspeicherung von XML-Dokumenten als Ganzes Textindizierung Text Retrieval Anfragen, auch unter Auswertung des

Markup

Beispiel:

SELECT hotelname, beschreibungFROM hotelWHERE contains(hotel,'MODEL order SECTION(hotel/beschreibung) "Seeblick"') = 1

Page 29: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Ausgabe von XML-Dokumenten

SQL/XML – Sprache wurde bei der Vorstellung von Oracle schon

kurz beschrieben

über DAD-Files angegeben damit Beschreibung, welche Daten ausgegeben werden

sollen und wie die Syntax der Ergebnis-XML-Dokumente aussehen soll

Page 30: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Nativer Datentyp XML

Seit 2006: nativer XML-Type Viper (Beta-Testversion) XML als Type kann Attributen beim Erzeugen von

Relationen zugeordnet werden Einfügen von Werten in Form von XML-Dokumenten in

diese Relationen Anfrage von XML-Attributen durch Pfadausdrücke (XPath)

und XQueries

Page 31: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Viper

Page 32: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Viper

Page 33: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Viper

Relationen mit XML-Attributen entwerfen

create table items (id int primary key not null,brandname varchar(30), itemname varchar(30),sku int, srp decimal(7,2),comments xml

)

Erstellen eines Indexes in XML-Typen

create index myindex on items(comments) generate key using xmlpattern '/Comments/Comment/CommentID' as sql double

Page 34: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Viper

XML-Datentypen in SQL-Anfragen

select * from items where sku = 112233 select id, brandname, itemname, sku, srp, comments from items

where sku = 112233

XQuery-Anfragen zur Suche im XMLType

xquery db2-fn:xmlcolumn ('ITEMS.COMMENTS')/Comments/Comment/Message

prefix XQuery ist erforderlich, weil Viper 2 Anfragesprachen unterstuetzt

Gleiche Anfrage

xquery for $y in db2-fn:xmlcolumn('ITEMS.COMMENTS')/Comments/Comment return ($y/Message)

Page 35: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

DB2 – Ausgabe von XML

Weitere Möglichkeit: SQL/XMLselect xmlserialize (content xmlelement(name "testname",fachrichtung_name)

as clob(120)) as "result" from studienfachselect xmlserialize(content

xmlelement(name "studentendaten", xmlelement(name "nachname", name), xmlelement(name "vorname", vorname))

as clob(120)) as "result" from studentselect xmlserialize(content

(xmlelement(name "studentendaten", xmlagg(xmlelement(name "nachname", name))) as clob(600)) as "result" from student

Page 36: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

DB2 – Einordnung

dokument-zentriertdaten-

strukturiertsemi-

zentriert

phys

isch

logi

schkonzeptuell

StrukturindexVolltext- und

SQL-MM mitErweiterungen

Datenbankrelationaleobjekt-

Mapping durchDAD-Files

SQL

Verarbeitung desXML Types

XML Type(Viper)

Page 37: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

DB2 – Zusammenfassung /1

XML-Speicherung Modell: objektrelationales Modell Schemabeschreibung: Validierung bei Import (DTD,

Schema) Art der Speicherung: sowohl vollständig als auch

fragmentierend Ordnungserhaltung: nur XML-Datentyp (XML Column) XML-Datentyp: ja Indizierung: Pfade: nur TextExtender Werte: ja Volltext: nur TextExtender

Page 38: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

DB2 – Zusammenfassung /2

XML-Import, XML-Export Unterstützung von Im- und Export, Abbildung spezifiziert

durch DAD-Dateien Anfrage- und Manipulationsschnittstellen Anfragen: SQL und XPath 1.0 Volltextfunktionalität: ja (Information Retrieval mit

TextExtender) Änderungsoperationen: SQL, spezielle Methoden Transformationen: nein Werkzeuge, Besonderheiten: XML-sensitiver Volltextindex Speicherung basiert auf dem objektrelationalen Modell

Page 39: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

MS SQL Server

SQL Server 2000 Import und Export von XML-Dokumenten Middleware zur Verarbeitung von XML-Dokumenten Verwendung von XPath-Ausdrücken Ausgabe von Anfrageergebnissen mit XML-Syntax Manipulation von XML-Dokumenten durch UpdategrammeSQL Server 2005 Nativer XML-Datentyp XML-Index XQuery und XML DML (XML Data Manipulation Language)

Page 40: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Ausgabe von XML

Ausgabe von SQL-Anfrageergebnissen als XML-Dokumente Drei Modi werden unterschieden: RAW

– erzeugt für jedes Ergebnistupel ein XML-Element ohne Subelemente.

AUTO– erzeugt ein geschachteltes XML-Dokument mit dem

Anfrageergebnis EXPLICIT

– erlaubt, die Form und Schachtelung des Ergebnisdokumentes in der Anfrage selbst zu bestimmen.

in SQL-Server 2005 auch SQL/XML

Page 41: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Syntax

selectfrom wherefor xml (raw | auto [, elements] | explicit)

Page 42: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

RAW-Modus

SELECT Hotel.Name, Zimmertyp.Typ, Zimmertyp.PreisFROM Hotel, ZimmertypWHERE Hotel.Name = Zimmertyp.HNameFOR XML RAW vom SQL Server dieses XML-Fragment erstellt: <row Name="Hotel Neptun" Typ="EZ" Preis="120"/><row Name="Hotel Neptun" Typ="DZ" Preis="170"/><row Name="Hotel Neptun" Typ="Suite" Preis="350"/>

Page 43: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

3 Arten der Speicherung von XML-Dokumenten

Native Speicherung als XML Type Abbildung auf relationale Speicherung Speicherung als large Objekts LOBs

– (wenn Dokumente exakt erhalten bleiben müssen und nicht nur Infoset „-konformität“ ausreicht)

Hybride XML-Speicherungsverfahren sind möglich– Auswahl verschiedener Verfahren für unterschiedliche

XML-Dokumentanteile

Page 44: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Nativer Datentyp XML /1

Validitätstests beim Einfügen von Daten möglich Intern wird ein Binärformat verwendet, schneller in der Verarbeitung

als die TextrepräsentationCREATE TABLE docs (pk INT PRIMARY KEY, xCol XML) INSERT INTO docs VALUES (1,‚<book genre="security" publicationdate="2002" ISBN="0-7356-1588-2"> <title>Writing Secure Code</title> <author> <first-name>Michael</first-name> <last-name>Howard</last-name> </author> <author> <first-name>David</first-name> <last-name>LeBlanc</last-name> </author> <price>39.99</price></book>')

Page 45: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Nativer Datentyp XML /2

XML Type kann in der gleichen Relation oder in einer separaten (verbunden durch Fremdschlüssel) abgelegt werden (in separater, wenn XML-Index nicht über dem Primärschlüssel der Hauptrelation erfolgen soll)

XML-Index indiziert Tags, Werte, Pfade (verwendet B+-Bäume für alles)

Volltextindex möglichSELECT * FROM docs WHERE contains (xCol, 'Visionen', LANGUAGE 'German')

Anfragen:SELECT * FROM docs WHERE CONTAINS(xCol,'Secure') AND

Col.exist('/book/title/text()[contains(.,"Secure")]') =1 Im oberen Beispiel: verschiedene Semantik von contains:

– 1. Auftreten Stammwortreduktion – 2. Teilstring-Match

Page 46: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

SQL-Server – XML-Sichten über einer Datenbank

durch annotierter XDR (XML-Data Reduced) Schema oder annotiertes XML-Schema (AXDS) wird Abbildung auf ein relationales Schema beschrieben, Beispiel:

<schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="zimmertyp" sql:relation="Zimmertyp"> <attribute type="ztyp" sql:field="ZTyp"/> <attribute type="hname" sql:field="HName"/>

</ElementType></schema>

Page 47: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

SQL-Server – Einordnung

phys

isch

logi

sch

konz

eptu

ell

dokument-zentriert

semi-strukturiert zentriert

XPath

Updategram

relationaleDatenbank

SQL

daten-

Edge-TableVolltext-operationen

Page 48: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

SQL-Server–Zusammenfassung /1

XML-Speicherung: Modell: relationales Modell Schemabeschreibung: XDR für XML-Sichten, DTD oder

Schema zur Typableitung in OpenXML Art der Speicherung: fragmentierte Speicherung oder XML-

Datentyp Ordnungserhaltung: ja (Beim XML-Datentyp) XML-Datentyp: jaIndizierung Struktur, Pfade: ja Werte: ja Volltext: ja

Page 49: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

SQL-Server–Zusammenfassung /2

XML-Import, XML-Export: Import und Export durch annotiertes XDR-Schema oder

XML-Schema (AXDS annotated …)Anfrage- und Manipulationsschnittstellen: Anfragen: SQL, XPath, XQuery Volltextfunktionalität: ja Änderungsoperationen: an XML mit Updategrammen Transformationen: XSLT 1.0 Werkzeuge, Besonderheiten: Integration mit Web-Services über Middleware Laden von XML-Massendaten Hybride Speicherung wird ausdrücklich empfohlen

Page 50: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino

von der Software AG entwickelt eines des bekanntesten nativen XML-Datenbanken vollständig für die Verarbeitung von XML-Dokumenten

entwickelt (Erfahrungen aus der Entwicklung von adabas)

Page 51: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino - Eigenschaften

native Speicherung der XML-Dokumente Anfragen mit XPath / XQuery Volltextfunktionalität ergänzt Updateoperationen möglich

Sperrverfahren auf der Ebene von ganzen XML-Dokumenten

Page 52: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino - Architektur

extensionsServer

Data Store Kernel

sourceData

Web-Server

XML

X-No

de

XML Engine

X-Machine

HTTP

X-Port

X-Te

nsion metadata

dataopenXML

map

Data

external

Server

API

Page 53: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Speicherung und Retrieval von XML-Dokumenten

Daten an externe

Anfrage (URL)

oder an die intere Datenquellen und/

DatenspeicherungData Map

Daten von externen Datenquellen und/oder der internen

Datenspeicherung

XML-Ausgabe XML Objekte, DTDs

ObjectProzessor

Interpreter

ComposerObject

ParserXMLQuery

Utilities

Page 54: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino - Einordnung

phys

isch

logi

sch

konz

eptio

nell

daten-zentriert

semi-strukturiert

dokument-zentriert

XPath 1.0

mit XPath 2.0XQuery 1.0

der XML-Dokumente

native Speicherung

Editor für XML-Dokumente, Schema, ...XML Spy

Page 55: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino –Zusammenfassung /1

XML-Speicherung: Modell: native Speicherung, Basis adabas-Komponenten Schemabeschreibung: DTD + Datentypen von XML

Schema, Test auf Gültigkeit, Schema ist zur Speicherung von XML-Dokumenten nicht erforderlich

Art der Speicherung: vollständige Speicherung Ordnungserhaltung: jaIndizierung Struktur, Pfade: ja Werte: ja Volltext: ja

Page 56: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Tamino –Zusammenfassung /2

XML-Import, XML-Export Verarbeitung externer Informationen aus Datenbanken und

Spezifikation von Zuordnungsvorschriften, Einbeziehung weiterer Formate

Anfrage- und Manipulationsschnittstellen Anfragen: XPath 1.0, zukünftig XQuery auf XPath 2.0 Volltextfunktionalität: ja Änderungsoperationen: ja Transformationen: XSLT 1.0 Werkzeuge, Besonderheiten Transaktionsverwaltung, Mehrnutzerbetrieb, graphische

Unterstützung der Angabe des Mappings, Integration von Editoren (XML Spy)

Page 57: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte

Am Fraunhofer Institut IPSI in Darmstadt entwickelt, vom Spin-Off Infonyte GmbH weiterentwickelt und vermarktet

Grundidee: persistente Speicherung des DOMVorgehensweise Speicherung kann ohne DTD oder Schemainformationen

erfolgen Anfragen: XPath, XQL oder über DOM-API Integration eines XSLT-Prozessors

Page 58: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Systemeigenschaften

basiert nicht auf existierenden Datenbanken, entwickelt eigene Komponenten zur physischen Speicherung, Indizierung, usw.

Benötigt also auch kein zusätzliches Datenbanksystem Modular konzipiert dadurch "schlanke und leistungsfähige" Implementierung Offengelegte Backend-Schnittstelle erlaubt die Integration

anderer Speicherungssysteme

Page 59: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte - Architektur

Page 60: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte - Einordnung

phys

isch

logi

sch

konz

eptio

nell

daten-zentriert

semi-strukturiert

dokument-zentriert

Updates

DOM

XPath1.0 XQL

DOM Informationen

Speicherung der

Page 61: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte - Lösungen

Datenintegration und -bereinigung in Data Warehouses– Mit Anfragetechniken und XSLT, verschiedene Umformungen,

zum Beispiel Gruppierung möglich Datenpublikation

– Individuell angepasste Lese-/Browsingumgebungen– Umfangreiche XML-Dokumente erfordern zur Speicherung oft

10-20fachen Platz im Hauptspeicher– Einsatz von infonyte reduziert das– Darstellung von Inhalten ohne Speicherbegrenzung

Technische Dokumentationen– ähnliches Szenario– Autorenseite und– Anwender /Leserseite, über Webbrowser, aber auch PDAs

Page 62: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte – Zusammenfassung /1

XML-Speicherung: Modell: Struktur des DOM Kompaktes verlustfreies Binärformat für XML-Dokumente Schemabeschreibung: Schema ist keine Voraussetzung für

die Speicherung Art der Speicherung: vollständige Speicherung Ordnungserhaltung: ja XML-Datentyp: neinIndizierung: Struktur, Pfade: ja Werte: ja Volltext: ja

Page 63: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

infonyte – Zusammenfassung /2

XML-Import, XML-Export nein, allerdings Integration von XSLTAnfrage- und Manipulationsschnittstellen Anfragen: XPath 1.0, XQL Volltextfunktionalität: nein Änderungsoperationen: über DOM-Methoden Transformationen: XSLT 1.0 Werkzeuge, Besonderheiten: Keine XSLT für riesige XML-Dokumente (im Gigabereich) 2-Phasen Commit Protokoll für Updaterealisierung Graphische XML-Autorenumgebung (Texteditor, Baumansichten, Fenster

für XPath, XQL, Benutzerschnittstelle für Datenbankeinstellungen)

Page 64: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

exist

eXist: Open Source native XML database • effiziente, index-basierte XQuery Verarbeitung, XQuery 1.0 Working Draft ist implementiert • Automatische Indizierung• Erweiterungen zur Volltextsuche• XQuery Update Erweiterunghttp://exist.sourceforge.net

Page 65: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Berkeley DB XML

basiert auf der Berkeley DB sind C++-Bibliotheken, die in die jeweilige Anwendung

eingebunden werden – kostenfrei speichert XML-Dokumente im XML-Format (nicht in Form

von Relationen) Zusammenfassung von gleichartigen XML-Dokumenten in

Containern Abspeicherung als komplettes Dokument oder aufgeteilt auf

individuelle Knoten möglich Ergänzen von individuellen Metadaten zu den XML-

Dokumenten ist möglich Anfragen: XPath, XQuery

Page 66: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Galax

open-source Implementation of XQuery 1.0 Ziel: volle Übereinstimmung mit den W3C XQuery

Spezifikationen Referenzimplementation für XQuery 1.0 Anfrageoptimierung steht im Mittelpunkt über XQueyr hinaus gehende Eigenschaften:

– Updates– Volltextoperationen

Galax release 0.5.0 http://www.galaxquery.org

Page 67: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Galax - Mitwirkende

Mary Fernández, AT&T Labs Jérôme Siméon, IBM Watson Research Cindy Chen, University of Massachusetts at Lowell Byron Choi, University of Pennsylvania Vladimir Gapeyev, University of Pennsylvania Amélie Marian, Columbia University Philippe Michiels, Universiteit Antwerpen, Belgium Nicola Onose, Ecole Polytechnique, France Douglas Petkanics, University of Pennsylvania Christopher Ré, University of Washington Michael Stark, University of Darmstadt Gargi Sur, University of Florida Avinash Vyas, Bell Laboratories Philip Wadler, University of Edinburgh, Scotland

Page 68: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Query-Verarbeitung

Page 69: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

XML-Benchmarks /1

Ziel: Vergleich von Systemen Bekannte Benchmarks

– Xmark (Schmidt et.al: Niederlande)– XOO7 (Nambiar et al.: University of Singapore, Arizona

State University)– XMach-1 (Böhme, Rahm: Universität Leipzig)– es gibt noch weitere, auch noch welche, die sich in der

Entwicklung befinden

Page 70: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

XML-Benchmarks /2

Vorgehensweise: definieren Umgebungen für Benchmarktests, bestehend

aus – gegebenen XML-Dokumenten oder – Methoden zum Generieren von XML-Dokumenten mit

bestimmten Eigenschaften– Menge von XQuery-Anfragen – teilweise Updates

Bewertet wird der Durchsatz in den einzelnen getesteten Systemen. (Metrik: XML queries per second)

Page 71: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Wahl des Speicherungssystems

alle Systeme haben die „Datenbankvorteile“ gegenüber dem Filesystem, z.B.:– Datensicherheit, Konsistenztests, Indizierung,

Anfragerealisierung, Optimierung, und viele mehr Wahl des Systems hängt von aktuellen Anforderungen ab hier dargestellte Eigenschaften stellen qualitative Kriterien

dar (diese nähern sich aber durch die Standardisierung an) Benchmarks versuchen quantitative Vergleiche häufig spielt sicher auch eine Rolle, ob schon ein DBS in

einer Firma/ einem Projekt/ einer Anwendung eingesetzt wird, das wird dann häufig auch für die Speicherung der XML-Dokumente verwendet

Page 72: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Literatur /1

– www.ibm.com

– www.oracle.com/xml – Ulrike Schwinn (Oracle): XML in der Oracle Datenbank „relational and

beyond“, BTW 2003

– Rüdiger Eichin, Excelon: Prozeßmanagement auf der Basis von XML, Fachgruppentreffen, GI-Fachgruppe Datenbanksysteme, Darmstadt, 2002

– eXtensible Information Server (XIS), Native XML Data Management System, www.exceloncorp.com/products/xis/

– www.microsoft.com

Page 73: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Literatur /2

– www.softwareag.com/tamino – Harald Schöning, Jürgen Wäsch: Tamino --- An Internet Database

System, Advances in Database Technology --- EDBT 2000, LNCS 1777, S. 383—387

– Harald Schöning: XML und Datenbanken, Hanser Verlag, 2003– Walter Waterfeld: Realisierungsaspekte eines XML

Datenbanksystems, BTW 2001

– www.infonyte.com – Thomas Tesch, Peter Fankhauser, Tim Weitzel (infonyte): Skalierbare

Verarbeitung von XML-Dokumenten in Datenbanken, BTW 2003

– Berkeley DB XML– www.sleepycat.com

Page 74: XML und Datenbanken - Systeme - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

Meike Klettke

EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme

Literatur /3

– Tim Rieger: Benchmarking XML Databases, Universität Rostock, Fachbereich Informatik, Bachelorarbeit, 2002

– Jana Jonas: Evaluating XML Database Benchmarks and Analyzing the Integration of XML Schema Evolution Steps, Studienarbeit, 2005

– Timo Böhme, Erhard Rahm: XMach-1 Homepage,http://dbs.uni-leipzig.de/de/projekte/XML/XmlBenchmarking.html, 2002

– Timo Böhme, Erhard Rahm: XMach-1: A Benchmark for XML Data Management, Proceedings of the BTW, S. 264-273, 2001

– Stephane Bressan, Gillian Dobbie, Zoe Lacroix, Mong-Li Lee, Ying Guang Li, Ullas Nambiar, Bimlesh Wadhwa: X007: Applying 007 Benchmark to XML Query Processing Tool, CIKM, S. 167-174, 2001

– Albrecht Schmidt, Florian Waas, Martin L. Kersten, Daniela Florescu, Ioana Manolescu, Michael Carey, Ralph Busse: XMark - An XML Benchmark Project, http://monetdb.cwi.nl/xml/, 2002

– Albrecht Schmidt, Florian Waas, Martin L. Kersten, Michael J. Carey, Ioana Manolescu, Ralph Busse: XMark: A Benchmark for XML Data Management, Proceedings of the VLDB Conference, 2002