Date post: | 06-Apr-2016 |
Category: |
Documents |
Upload: | dennis-langenberg |
View: | 214 times |
Download: | 1 times |
XML und Datenbanken - Systeme -
Meike KlettkeUniversität RostockFakultät für Informatik und Elektrotechnikmeike@informatik.uni-rostock.dewww.xml-und-datenbanken.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
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
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
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 …
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
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
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
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');
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!
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
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
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"/>
…
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.
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
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
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>
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Oracle – Ausgabe von XML
Weitere Möglichkeit: SQL/XML
Folgt bei DB2
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
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
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
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
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
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Möglichkeiten zur Speicherung
XML Column
XML Collection
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Zusammenwirken der Komponenten
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>
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
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
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
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
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Viper
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Viper
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
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)
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
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)
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
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
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)
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
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Syntax
selectfrom wherefor xml (raw | auto [, elements] | explicit)
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"/>
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
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>')
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
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>
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
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
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
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)
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
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
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
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
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
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)
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
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
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
infonyte - Architektur
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
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
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
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)
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
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
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
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
Meike Klettke
EinleitungAnwendungenXMLXPathXQueryXML-ProzessorenArchitekturModellierungXML-SpeicherungIndizierungXML-GenerierungSysteme
Query-Verarbeitung
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
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)
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
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
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
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