Drei-Ebenen Architektur von

Download Report

Transcript Drei-Ebenen Architektur von

XML und Datenbanken
- Systeme -
Meike Klettke
Universität Rostock
Fakultät für Informatik und Elektrotechnik
[email protected]
www.xml-und-datenbanken.de
Inhalt der Vorlesung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
!!!!!
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme






Alle Systeme zur Speicherung und Verwaltung von XMLDokumenten 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
Oracle
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Mit Oracle 10, Vereinigung der Daten- (Data) und
Inhaltsverarbeitung (Content Processing)


Grundlegende Funktionen
–
–
Ausgabe von
Datenbankinhalten
mit XML-Syntax
Verschiedene
Speicherungsverfahren
Meike Klettke
Oracle XML Developer's Kit (Oracle
XDK)
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme







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 XMLSchema
XML Class Generator: generiert automatisch Java-Klassen aus DTDs oder
XML-Schemata
XML SQL Utility:
– generiert XML-Dokumente, DTDs und XML-Schemas aus SQLAnfragen
– realisiert das Insert von XML-Dokumenten in Oracle-Datenbanken
…
Meike Klettke
verschiedene Modi zur XMLSpeicherung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

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
1. Speicherung als CLOB
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



Verwendung von Oracle Text zur Speicherung
kein Schema erforderlich
Auswertung durch Anfragen, in denen auch das Markup
ausgewertet wird
SELECT *
FROM hotels
WHERE contains(hotel, 'Strand INPATH
(/hotels/hotel/beschreibung) ') > 0 ORDER BY score DESC;
Auch Methoden hasPath() und contains() erlaubt
Meike Klettke
2. relationale Speicherung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



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
native Speicherung als
Dokument /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme




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 erfolgen
CREATE 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
native Speicherung als
Dokument /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
XPath-Ausdrücke in SQL
SELECT ausstattung.extract
('schwimmbad/text()').getStringVal()
"Swimmingpool"
FROM hotels;
Swimmingpool
----------------Original-Thalassozentrum. Wir haben fuer Sie
frisches Ostseewasser in das Hotel geholt!
Meike Klettke
native Speicherung als
Dokument /3
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

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
4. native objektrelationale
Speicherung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

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
native objektrelationale Speicherung
Beschreibung des Mappings
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
Kombination von
Speicherungsvarianten
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme




Verschiedene Speicherungsvarianten können kombiniert
werden.
Unterstützung bei der hybriden Speicherung von XMLDokumenten 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
Oracle – Schemaprüfung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



beim Einfügen von XMLDokumenten erfolgt "leichte"
Schemaprüfung (Test auf
Gültigkeit)
aus Effizienzgründen
vollständige Schemaprüfung
ist aktivierbar
Meike Klettke
Anfragen
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



bei CLOB-Speicherung:
– in SQL MM Text definierte Operationen
XQuery-Anfragen als Bestandteil einer SQL-Anfragen
SQL bei relationaler Speicherung
Meike Klettke
Oracle – Ausgabe von XML /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Anfrage:
SELECT Name, Kategorie, Ort
FROM Hotel, Adresse
WHERE (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
Oracle – Ausgabe von XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Weitere Möglichkeit: SQL/XML
Folgt bei DB2
Meike Klettke
logisch
physisch
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
konzeptuell
Oracle – Einordnung
IR-Anfragen
CLOB
XMLType
SQL + XPath
relationale
Speicherung
nativ objektrelationale Sp.
dokumentzentriert
Meike Klettke
XPath,
XQuery
semistrukturiert
datenzentriert
Oracle – Zusammenfassung /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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 Speicherung
Indizierung:

Struktur, Pfade: in Oracle Text schon länger, Strukturindex seit Version 10

Werte: ja

Volltext: ja
Meike Klettke
Oracle – Zusammenfassung /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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 XQuery
Anfrage- 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: XSLT
Werkzeuge, Besonderheiten
 XSLT-Prozessor, XML-Prozessoren (DOM, SAX), XML Schema
Validator
Meike Klettke
DB2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme


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
XML Extender
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme






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 XMLDokumenten 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
Möglichkeiten zur Speicherung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

XML Column

XML Collection
Meike Klettke
Zusammenwirken der
Komponenten
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Meike Klettke
Syntaxbeispiel: DAD-File
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
<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
Anfragen
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Ausgabe aller Zimmerpreise:
SELECT db2xml.extractDouble(zimmertyp, '/zimmertyp/preis')
FROM zimmertyp
WHERE 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
Text Extender und Volltextsuche
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme




Abspeicherung von XML-Dokumenten als Ganzes
Textindizierung
Text Retrieval Anfragen, auch unter Auswertung des
Markup
Beispiel:
SELECT hotelname, beschreibung
FROM hotel
WHERE contains(hotel,'MODEL order SECTION(hotel/beschreibung) "Seeblick"') = 1
Meike Klettke
Ausgabe von XML-Dokumenten
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

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
Nativer Datentyp XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme




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
Viper
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Meike Klettke
Viper
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Meike Klettke
Viper
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Relationen mit XML-Attributen entwerfen

create table items (
id
brandname
itemname
sku
srp
comments
)
int
primary key not null,
varchar(30),
varchar(30),
int,
decimal(7,2),
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
Viper
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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 db2fn:xmlcolumn('ITEMS.COMMENTS')/Comments/Comment
return ($y/Message)
Meike Klettke
DB2 – Ausgabe von XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Weitere Möglichkeit: SQL/XML
select xmlserialize
(content xmlelement(name "testname",fachrichtung_name)
as clob(120)) as "result" from studienfach
select xmlserialize(content
xmlelement(name "studentendaten",
xmlelement(name "nachname", name),
xmlelement(name "vorname", vorname))
as clob(120)) as "result" from student
select xmlserialize(content
(xmlelement(name "studentendaten",
xmlagg(xmlelement(name "nachname", name)))
as clob(600)) as "result" from student
Meike Klettke
logisch
SQL-MM mit
Erweiterungen
physisch
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
konzeptuell
DB2 – Einordnung
Volltext- und
Strukturindex
dokumentzentriert
Meike Klettke
XML Type
(Viper)
Mapping durch
DAD-Files
SQL
Verarbeitung des
XML Types
semistrukturiert
objektrelationale
Datenbank
datenzentriert
DB2 – Zusammenfassung /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
DB2 – Zusammenfassung /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
MS SQL Server
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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 Updategramme
SQL Server 2005
 Nativer XML-Datentyp
 XML-Index
 XQuery und XML DML (XML Data Manipulation Language)
Meike Klettke
Ausgabe von XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
Syntax
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
select
from
where
for xml (raw | auto [, elements] | explicit)
Meike Klettke
RAW-Modus
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
SELECT Hotel.Name, Zimmertyp.Typ, Zimmertyp.Preis
FROM Hotel, Zimmertyp
WHERE Hotel.Name = Zimmertyp.HName
FOR 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
3 Arten der Speicherung von XMLDokumenten
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme




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
Nativer Datentyp XML /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme


Validitätstests beim Einfügen von Daten möglich
Intern wird ein Binärformat verwendet, schneller in der
Verarbeitung als die Textrepräsentation
CREATE 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
Nativer Datentyp XML /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



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öglich
SELECT * 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
SQL-Server – XML-Sichten über
einer Datenbank
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

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
logisch
physisch
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
konzeptuell
SQL-Server – Einordnung
Meike Klettke
XPath
SQL
Updategram
Volltextoperationen
Edge-Table
dokumentzentriert
semistrukturiert
relationale
Datenbank
datenzentriert
SQL-Server–Zusammenfassung /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
XML-Speicherung:
 Modell: relationales Modell
 Schemabeschreibung: XDR für XML-Sichten, DTD oder
Schema zur Typableitung in OpenXML
 Art der Speicherung: fragmentierte Speicherung oder XMLDatentyp
 Ordnungserhaltung: ja (Beim XML-Datentyp)
 XML-Datentyp: ja
Indizierung
 Struktur, Pfade: ja
 Werte: ja
 Volltext: ja
Meike Klettke
SQL-Server–Zusammenfassung /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
Tamino
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



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
Tamino - Eigenschaften
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme





native Speicherung der XML-Dokumente
Anfragen mit XPath / XQuery
Volltextfunktionalität ergänzt
Updateoperationen möglich
Sperrverfahren auf der Ebene von ganzen XMLDokumenten
Meike Klettke
Tamino - Architektur
XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
HT T P
Web-Server
X-Port
X-Machine
XML Engine
Meike Klettke
XML
Data
Server
metadata
Data
map
X-Node
Server
extensions
X-Tension
Data Store Kernel
open
API
external
data
source
Speicherung und Retrieval von
XML-Dokumenten
XML-Ausgabe Anfrage (URL)
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Query
Interpreter
XML Objekte, DTDs
XML
Parser
Object
Prozessor
Object
Composer
Daten von externen
Datenquellen und/
oder der internen
Datenspeicherung
Meike Klettke
Data Map
Utilities
Daten an externe
Datenquellen und/
oder an die intere
Datenspeicherung
Editor für XMLDokumente, Schema,
...
XML Spy
logisch
XPath 1.0
XQuery 1.0
mit XPath 2.0
physisch
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
konzeptionell
Tamino - Einordnung
native Speicherung
der XMLDokumente
dokumentzentriert
Meike Klettke
semistrukturiert
datenzentriert
Tamino –Zusammenfassung /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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: ja
Indizierung
 Struktur, Pfade: ja
 Werte: ja
 Volltext: ja
Meike Klettke
Tamino –Zusammenfassung /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
infonyte
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme

Am Fraunhofer Institut IPSI in Darmstadt entwickelt, vom
Spin-Off Infonyte GmbH weiterentwickelt und vermarktet
Grundidee:
 persistente Speicherung des DOM
Vorgehensweise
 Speicherung kann ohne DTD oder Schemainformationen
erfolgen
 Anfragen: XPath, XQL oder über DOM-API
 Integration eines XSLT-Prozessors
Meike Klettke
Systemeigenschaften
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme





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
infonyte - Architektur
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Meike Klettke
logisch
DOM
XPath1.0 XQL
Updates
physisch
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
konzeptionell
infonyte - Einordnung
Speicherung der
DOM Informationen
dokumentzentriert
Meike Klettke
semistrukturiert
datenzentriert
infonyte - Lösungen
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme



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
infonyte – Zusammenfassung /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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: nein
Indizierung:
 Struktur, Pfade: ja
 Werte: ja
 Volltext: ja
Meike Klettke
infonyte – Zusammenfassung /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
XML-Import, XML-Export

nein, allerdings Integration von XSLT
Anfrage- 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
exist
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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 Erweiterung
http://exist.sourceforge.net
Meike Klettke
Berkeley DB XML
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme







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 XMLDokumenten ist möglich
Anfragen: XPath, XQuery
Meike Klettke
Galax
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme







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
Galax - Mitwirkende
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme














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
Query-Verarbeitung
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
Meike Klettke
XML-Benchmarks /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme


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
XML-Benchmarks /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
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
Wahl des Speicherungssystems
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme





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
Literatur /1
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
– 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
Literatur /2
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
– 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
Literatur /3
Einleitung
Anwendungen
XML
XPath
XQuery
XML-Prozessoren
Architektur
Modellierung
XML-Speicherung
Indizierung
XML-Generierung
Systeme
– 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
Meike Klettke