fbi h_da Datenbanken und XML Kapitel 6 Speicherung von XML in Datenbanken
fbi h_da
Datenbanken und XML Kapitel 6 Speicherung von XML in Datenbanken
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-2
Abbildung von XML auf Datenbanken • Inhalt des Kapitels
– Speicherungsvarianten für XML-Dokumente • Textbasierte Speicherung • Strukturbasierte Speicherung • Native Speicherung
– Anfragen und Updates von XML-Daten in Datenbanksystemen – Status XML-Unterstützung in Datenbanksystemen – Performance-Aspekte
• Lernziele
– Verstehen der Grundprinzipien der verschiedenen Methoden – Einordnen der Methoden – Vor- und Nachteile erkennen – Verwendung
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-3
Herausforderung • XML-Dokumente können für sehr verschiedene Anwendungen
eingesetzt werden: – Datenzentrierte Anwendungen – Dokumentzentrierte Anwendungen
Konsequenz: Dokumente unterscheiden sich stark je nach Anwendung
– Struktur vs. Inhalt – Regelmäßig vs. Unregelmäßig
• Problemstellungen
– Speicherung von XML-Dokumenten – Effiziente Verarbeitung von Anfragen auf den gespeicherten
Dokumenten bzw. Daten
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-4
Anforderungen an die Speicherung • Ordnungserhaltende und verlustfreie Speicherung von XML-
Dokumenten
• Wiederherstellbarkeit der Dokumente (oder zumindest der Informationen aus den Dokumenten)
• Effizienter Zugriff auf XML-Dokumente oder Teile davon – Kurze Antwortzeiten für
• Anfragen • Änderungsoperationen
– Indexierungsverfahren – Transaktionsverwaltung – Unterstützung von XPath und XQuery
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-5
Speicherungsvarianten für XML-Dokumente
• Speicherung in Nicht-XML-Datenbankmodellen – Textbasierte Speicherung – Strukturbasierte Speicherung
• „Native“ Speicherung – Benutzung eines (hierarchischen) XML-Datenbankmodells zur
Speicherung
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-6
Textbasierte Speicherung • Das komplette XML-Dokument wird als Zeichenkette abgespeichert
– Datei im Dateisystem – CLOB (Character-Large-OBject) im Datenbanksystem oder (falls
unterstützt) XML-Datentyp
• Operationen auf Dokumenten als Ganzes sind sehr effizient – Lesen des kompletten Dokuments – Schreiben des kompletten Dokuments
• Zugriff mit feinerer Granularität erfordert zusätzliche Unterstützung
– Volltextindex – Pfadindex erfordert spezielle (neue) Indexstrukturen in Datenbanksystemen
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-7
Einschub: Arten von Indexstrukturen • Wertindex
– indexiert atomare Werte eines XML-Dokumentes, etwa Elementinhalte oder Attributwerte
– Indexform für strukturierte Anteile eines XML-Dokumentes – aus dem relationalen DB-Bereich bekannt, z.B. B-Bäume oder
Hash-Indexe
• Volltextindex – indexiert einzelne Worte des Volltextes – Indexform für unstrukturierte Anteile eines XML-Dokumentes – aus dem Information-Retrieval-Bereich bekannt, z.B. invertierte
Liste
• Pfadindex – indexiert Teilstrukturen/Pfade in einem XML-Dokument – Indexform für semistrukturierte Anteile eines XML-Dokumentes
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-8
Volltextindexe • Nicht nur Suche nach exaktem Auftreten der Begriffe möglich
– stichwortbasierte Suche und boolesches Retrieval – Mustersuche (mit regulären Ausdrücken)
• Verwendung von
– Statistischen, wortbasierten Verfahren • Stoppwortlisten • Streichen von selten vorkommenden Begriffen
– Linguistischen Verfahren
• Wortnormalisierung • Groß-, Kleinschreibung, Getrennt- und Zusammenschreibung, Umlaute • Stammformreduktion
– Wissensbasierten Verfahren
• Einsatz von Ontologien und Thesauren zur Suche nach Synonymen sowie Über- und Unterbegriffen
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-9
Invertierte Liste als Volltextindex für ein XML-Dokument
Quelle: C. Türker, ETH Zürich
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-10
Invertierte Liste als Volltextindex für mehrere XML-Dokumente
Quelle: C. Türker, ETH Zürich
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-11
Pfadindexe • Strukturinformationen müssen aus dem Index erkennbar und
wiederherstellbar sein – Zuordnung des Markup zu den Inhalten sowie – Darstellung der hierarchischen Schachtelung und Anordnung der
Elemente/Attribute
• Besonders geeignet für Stichwortsuche unter Berücksichtigung der Struktur bzw. Pfaden
for $b in //book where fn:contains($b/title, "XML") return $b
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-12
Kombinierter Pfad-/Volltextindex für ein XML-Dokument
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-13
Bewertung der textbasierten Speicherung • Schemabeschreibung
– nicht erforderlich
• Dokumentrekonstruktion – Dokumente bleiben im
Original erhalten
• Anfragen – Anfragen des Information
Retrieval – Auswertung des Markup in
den Anfragen – XML-Anfragen möglich
• Weitere Besonderheiten – Volltextfunktionen
• Effizienz
– Zeichenkette muss beim Zugriff geparst werden aufwändig
– Keine Nebenläufigkeit beim Lesen und Schreiben keine Parallelität
• Einsatz – für dokumentzentrierte
XML-Dokumente – auch für semistrukturierte
Dokumente
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-14
Abbildung von XML auf Datenbanken • Speicherungsvarianten für XML-Dokumente
Textbasierte Speicherung – Strukturbasierte Speicherung
• Automatische Abbildung • Benutzerdefinierte Abbildung
– Native Speicherung
• Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-15
Strukturbasierte Speicherung • Motivation
– XML als Austauschformat • vorgegebenes XML-Schema
– XML-Inhalte sollen in einer herkömmlichen Datenbank gespeichert werden
– Verzicht auf nativen Zugriff wird toleriert
• Ansätze – Automatische Abbildung
• DB-Schema möglichst automatisch aus XML-Schema generieren und dabei durch Schemabeschreibung gegebene Strukturinformationen möglichst gut ausnutzen
– Benutzerdefinierte Abbildung • Spezifikation individueller Abbildungsregeln
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-16
Strukturbasierte Speicherung: Automatische Abbildung
• Grundsätzliches Vorgehen – XML-Schema in eine Baumdarstellung überführen – Knoten sind die Elementtypen, Attribute, etc. – Kanten sind die Schachtelungsbeziehungen der Elementtypen und
deren Restriktionen – Baum traversieren und Knoten und Kanten anhand von Regeln in
DB-Tabellen umwandeln
• Regeln zur Umsetzung von Elementen (Auswahl) – Sequenz von Elementen Spalten einer Tabelle – Alternative von Elementen Spalten einer Tabelle – Elemente mit minOccurs = 0 Spalte mit Nullwerten – Elemente mit maxOccurs > 1 Kollektion(?) von Spalten – …
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-17
Abbildung auf relationale Datenbanken
• Problem: Abbildung von Tupel- und Kollektionstypen – Aufteilung auf zusätzliche Relationen Dokumenrekonstruktion
ineffizient
HotelID Name Adresse Preise
H0001 Hotel Hübner A0001 P0001
AdresseID PLZ Ort ...
A0001 18119 Warnemünde
PreiseID Einzelzimmer Doppelzimmer
P0001 198 299
Hotel:
Preise:
Adresse:
<Hotel> <HotelID>H0001</HotelID> <Name>Hotel Hübner</Name> <Adresse>
<PLZ>18119</PLZ> <Ort>Warnemünde</Ort> <Strasse>Seestrasse</Strasse> <Nr>12</Nr>
</Adresse> <Preise>
<Einzelzimmer> 198 </Einzelzimmer> <Doppelzimmer> 299 </Doppelzimmer>
</Preise> </Hotel>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-18
Abbildung auf objektrelationale (oder objektorientierte) Datenbanken
• „Natürliche“ Abbildung auf Tupeltypen, Kollektionstypen
HotelID Name <Adresse> <Preise>
PLZ Ort ... Einzelzimmer Doppelzimmer
H0001 Hotel Hübner 18119 Warnemünde 198 299
Hotel:
<Hotel> <HotelID>H0001</HotelID> <Name>Hotel Hübner</Name> <Adresse>
<PLZ>18119</PLZ> <Ort>Warnemünde</Ort> <Strasse>Seestrasse</Strasse> <Nr>12</Nr>
</Adresse> <Preise>
<Einzelzimmer> 198 </Einzelzimmer> <Doppelzimmer> 299 </Doppelzimmer>
</Preise> </Hotel>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-19
Abbildung auf objektrelationale (oder objektorientierte) Datenbanken
• Problemfälle bei der Abbildung – Alternativen – Rekursive Datendefinitionen – Elementordnungen – Mixed Content – Any-Type
isbn <front> body reference
title {author} edition publisher
first second e-mail
book:
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-20
Abbildung von Alternativen • XML erlaubt die Angabe von Alternativen • Beispiel:
• Speicherungsvarianten – Aufspaltung der Alternativen in separate Tabellen - Konsequenzen? – Jede Alternative als separate Tabellenspalte speichern – Speicherung der Alternativen textbasiert oder Verwendung einer
Tabellenspalte vom Typ XML (siehe native Speicherung)
<xs:complexType name="unterkunftT" …> <xs:choice> <xs:element name="Hotel" type="hotelT"/ <xs:element name="Pension" type="pensionT"/> <xs:element name="Campingplatz" type="campingplatzT"/> </xs:choice> …
<Unterkunft> <Pension>
<Name>Zum Kater</Name> <Zimmer>42</Zimmer>
</Pension> </Unterkunft> <Unterkunft>
<Hotel> <Kategorie>4</Kategorie> <Name>Hotel Hübner</Name>
</Hotel> </Unterkunft> …
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-21
Abbildung von rekursiven Datendefinitionen
• Definitionen in XML-Schema können rekursiv sein • Beispiel:
• Vorgehensweise: – Aufspaltung in separate Tabellen – Verwendung von Primär-/Fremdschlüsseln in RDBMS – Verwendung von Referenztypen in ORDBMS
<xs:element name="node"> <xs:complexType> <xs:sequence> <xs:element name= "nodeId" …/> <xs:element name= "nodeContent" …/> <xs:element name= "childs" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element ref= "node" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
node <childs>
node <childs>
<node> ... <childs> <node> ... <childs> ... </childs> </node> </childs> </book>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-22
Abbildung von Elementordnungen • Reihenfolge kann von Bedeutung sein • In diesen Fällen: Einführung einer zusätzlichen Spalte
• Beispiel:
<Buch> <Kapitel>Einführung</Kapitel> <Kapitel>Theoretische Grundlagen</Kapitel> <Kapitel>Konzeption</Kapitel> <Kapitel>Beispiel</Kapitel> <Kapitel>Zusammenfassung</Kapitel> </Buch>
Ordnung Kapitel
1 Einführung
2 Theoretische Grundlagen
3 Konzeption
4 Beispiel
5 Zusammenfassung
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-23
Abbildung von Mixed Content – 1(2)
Ordnung CLOB Bahn Auto 1 Sie können unser Haus auf
verschiedenen Wegen erreichen:
NULL NULL
2 NULL per Bahn: 1 km ab Bahnhof Warnemünde
NULL
3 NULL NULL per Auto: 19 km ab Autobahn A19 Rostock-Berlin
4 Sie finden uns direkt an der Uferpromenade.
NULL NULL
<anreisebeschreibung> Sie können unser Haus auf verschiedenen Wegen erreichen: <bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn> <auto>per Auto: 19 km ab Autobahn A19 Rostock-Berlin</auto>Sie finden uns direkt an der Uferpromenade.
</anreisebeschreibung>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-24
Abbildung von Mixed Content – 2(2) • Abbildung auf flache Tabellen nur sehr schlecht geeignet Rückgriff auf textbasierte Speicherung für Teile des Dokuments
Name Anreisbeschreibung
Sie können unser Haus auf verschiedenen Wegen erreichen: <bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn> <auto>per Auto: 19 km ab Autobahn A19 Rostock-Berlin</auto>Sie finden uns direkt an der Uferpromenade.
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-25
Abbildung von ANY • Beispiel:
im Element <zusatzinformationen> können beliebige Inhalte sowie alle im XML-Schema (global) deklarierten Elemente auftreten
• Abbildung auf ein Datenbankschema? Kann häufig erst auf der Instanzenebene entschieden werden,
welche Speicherungsstruktur geeignet ist.
<xs:element name="zusatzinformationen"> <xs:complexType mixed="true"> <xs:sequence> <xs:any minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>
<zusatzinformationen> Am 31.12. stehen in <ort>Warnemünde</ort> keine Parkplätze zur Verfügung. <bahn>Die S-Bahn verkehrt an diesem Tag nach einem Sonderfahrplan im 7,5-Minuten-Takt.</bahn>
</zusatzinformationen>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-26
Anfragen bei strukturbasierter Speicherung mit automatischer Abbildung
• Datenbankanfragen – Struktur der Datenbanken muss bekannt sein – SQL-Anfragen
• XML-Anfragen
– Prozess der Abbildung der XML-Dokumente auf Datenbanken muss protokolliert sein
– Datenbankanfrage für XML-Anfrage muss (automatisch) generiert werden können
– Ergebnisse für die XML-Anfragen muss generiert werden können (Labeling in der DB-Engine)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-27
Vor- und Nachteile strukturbasierter Speicherung mit automatischer Abbildung
• Vorteile – Anfragen, Datentypen, Aggregatfunktionen, Sichten (volle
relationale und SQL-Mächtigkeit) – Integration in andere Datenbanken bei der Speicherung
strukturierter Daten
• Nachteile – Grosses Schema, schwach gefüllte Datenbanken (viele Nullwerte) – Keine flexiblen Datentypen, Speicherung von Alternativen
problematisch – Wenig Flexibilität bei Anfragen
• Keine Volltextoperationen (Information-Retrieval-Anfragen) bei der Speicherung semi- und unstrukturierter Daten
• Häufig kein nativer Zugriff mehr möglich
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-28
Bewertung der strukturbasierten Speicherung mit automatischer Abbildung
• Schemabeschreibung – zur Speicherung erforderlich
• Dokumentrekonstruktion
– nur eingeschränkt möglich (Protokollierung des Abbildungsprozesses)
• Anfragen
– Datenbankanfragen – XML-Anfragen möglich
• Weitere Besonderheiten – Föderationen mit
bestehenden Datenbanken möglich
• Effizienz – hoch durch Einsatz der DB-
Engine (für datenzentrierte XML-Dokumente)
• Einsatz
– für datenzentrierte XML-Dokumente
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-29
Abbildung von XML auf Datenbanken • Speicherungsvarianten für XML-Dokumente
Textbasierte Speicherung – Strukturbasierte Speicherung
Automatische Abbildung • Benutzerdefinierte Abbildung
– Native Speicherung
• Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-30
Benutzerdefinierte Abbildung • Bei allen bisherigen Methoden konnte die Art der Speicherung in der
Datenbank nicht beeinflusst werden
• Benutzerdefinierte Abbildungen ermöglichen dem Nutzer die Steuerung, welche Speicherungsstruktur zum Einsatz kommt
• Struktur der XML-Dokumente und Datenbankschema können unabhängig voneinander entworfen werden (und relativ autonom sein)
• Auch möglich: Speicherung von XML-Dokumenten in existierenden Datenbanken
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-31
<Hotel url="www.hotel-huebner.de"> <HotelID>H0001</HotelID> <Hotelname>Hotel Hübner</Hotelname> <Adresse>
<PLZ>18119</PLZ> <Ort>Warnemünde</Ort> <Strasse>Seestrasse</Strasse> <Nr>12</Nr>
</Adresse> <Preise>
<Einzelzimmer> 198 </Einzelzimmer> </Preise>
</Hotel>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema … <xs:element name="Hotel"> <xs:complexType> <xs:sequence> <xs:element name="Hotelname" type="xs:string"> <xs:annotation> <xs:appinfo> <tableMapping> <table>Hotelpreise</table> <column>Name<column> </tableMapping> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name= …
Benutzerdefinierte Abbildung
Hotel_URL Name Einzelzimmer
www.hotel-huebner.de Hotel Hübner 198
Hotelpreise: • state of the art Variante: Annotation im XML-Schema (nicht standardisiert)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-32
Anfragen mit benutzerdefinierter Abbildung
• Datenbankanfragen – Struktur der Datenbanken muss bekannt sein – SQL
• XML-Anfragen nur sehr eingeschränkt
– Protokollierung des Abbildungsprozesses von XML-Dokumenten auf Datenbanken
– Alle für die Anfrage relevanten Daten müssen gespeichert sein (verlustfreie Abbildung)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-33
Bewertung der strukturbasierten Speicherung mit benutzerdefinierter Abbildung
• Schemabeschreibung – zur Speicherung erforderlich
• Dokumentrekonstruktion
– meist nicht möglich (Voraussetzung: Protokollierung des Abbildungsprozesses, vollständige Abbildung)
• Anfragen
– Datenbankanfragen – XML-Anfragen in
Ausnahmefällen möglich
• Weitere Besonderheiten – Integration in bestehende
Datenbanken möglich
• Effizienz – hoch durch Einsatz der DB-
Engine (insbesondere für datenzentrierte XML-Dokumente)
• Einsatz
– für datenzentrierte XML-Dokumente
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-34
Zwischenfazit: Speicherungsvarianten Verschiedene Verfahren zur Speicherung von XML-Dokumenten • Textbasierte Verfahren
– Speicherung des ganzen XML-Dokuments als Zeichenkette – Ggf. Indexierung mit Volltext- oder Pfadindexes
• Strukturbasierte Verfahren
– Erkennen und Analysieren der Struktur der XML-Dokumente – Ableiten eines DB-Schemas aus dem XML-Schema
Hybride Verfahren
– „Strukturierte“ Anteile des XML-Dokuments auf relationale oder objektrelationale Strukturen abbilden
– „Unstrukturierte“' Anteile textbasiert speichern
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-35
Abbildung von XML auf Datenbanken • Speicherungsvarianten für XML-Dokumente
Textbasierte Speicherung Strukturbasierte Speicherung – Native Speicherung
• Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-36
Native Speicherung • Terminus „nativ“ ist nicht klar definiert, i.a. versteht man darunter
– die adäquat für das Datenmodell ist – die transparent für den Nutzer ist – „Verarbeitungsmodell = Speichermodell“
• Nutzung hierarchischer Speicherungsstrukturen in DBMS
– NF2-Datenmodell – hierarchisches Datenbankmodell – objektorientiertes Datenbankmodell
• Gelegentlich wird auch die Speicherung als XML-Type (gemäß des
SQL/XML-Standards) als „nativ“ bezeichnet
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-37
SQL/XML Standard – 1(2) • Zunächst offene Arbeitsgruppe (beteiligt u.a. Hersteller wie IBM,
Oracle, Microsoft, Informix und Software AG) – inzwischen Teil des SQL-Standards und dessen Normierungsprozesses
• Zielsetzung: Mapping zwischen SQL- und XML-Konzepten • Wichtige Meilensteine
– SQL/XML:2003 (Bestandteil von SQL:2003) ISO/IEC 9075-14:2003 Information technology – Database languages – SQL – Part 14: XML-Related Specifications, (SQL/XML)
– SQL/XML:2006 (Bestandteil von SQL:2006) ISO/IEC 9075-14:2006 Information technology – Database languages – SQL – Part 14: XML-Related Specifications, (SQL/XML)
– in der 3. (2008) und 4. Version (2011) nur noch Detailänderungen – SQL/XML:2011 (Bestandteil von SQL:2011) ISO/IEC 9075-14:2011
Information technology – Database languages – SQL – Part 14: XML-Related Specifications, (SQL/XML)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-38
SQL/XML Standard – 1(2) SQL/XML-Standard definiert: 1. Neuer Basisdatentyp XML
– ermöglicht Speicherung von XML-Werten in Tabellenspalten – XML-Werte vom Typ
• XML (DOCUMENT) ≡ XML-Dokument • XML (CONTENT) ≡ XML-Fragment • XML (SEQUENCE) ≡ Sequenz von XML-Knoten • Optionale, zweite Typisierungsebene
– UNTYPED – ohne Schema – XMLSCHEMA – mit Schema – ANY – mit oder ohne Schema XML ( DOCUMENT (UNTYPED) ) etc.
2. Funktionen zur Abfrage von XML-Daten
→ nächster Abschnitt 3. XML-Publishing-Funktionen
→ Kapitel: Generierung von XML aus Datenbanken
ID Autorennamen
123 <Autor>Jim Beam</Autor>
124 <Autor>Jack Beam</Autor> <Autor>Jim Beam</Autor>
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-39
Bewertung der „nativen“ Speicherung
• Schemabeschreibung – i.a. nicht erforderlich
• Dokumentrekonstruktion
– problemlos möglich (Dokumentstruktur bleibt erhalten)
• Anfragen
– XML-Anfragen – Information Retrieval
Anfragen auch möglich (abhängig von Index-Unterstützung)
• Weitere Besonderheiten – Transparenter Zugriff
• Effizienz
– hoch für Abfragen auf einem XML-Dokument
– Qualität des XPath/XQuery-Optimizer?
– Abfragen über mehrere Dokumente? (Indexierung!)
• Einsatz – für datenzentrierte XML-
Dokumente – auch für semistrukturierte
XML-Dokumente
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-40
Abbildung von XML auf Datenbanken • Speicherungsvarianten für XML-Dokumente
Textbasierte Speicherung Strukturbasierte Speicherung Native Speicherung
• Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-41
Anfragen und Updates von XML-Daten XQuery(XPath)-Anfragen in Datenbanksystemen • Separates XQuery-Interface – Konsequenz? Integration von XQuery-Anfragen in SQL:
– SQL/XML-Funktionen: XMLQUERY, XMLTABLE, XMLEXISTS
• XMLQUERY – Integration von XQuery-Anfragen im SELECT-Statement
• XMLTABLE – Ermöglicht mit Hilfe von XQuery-Anfragen XML-Daten abzufragen
und als SQL-Relation zurückzugeben, die dann beispielsweise als Input für die FROM-Klausel dienen
• XMLEXISTS – Gibt als Ergebnis einer XQuery-Anfrage false zurück, falls das
Ergebnis der XQuery-Anfrage leer ist, andernfalls true typischerweise in der WHERE-Klausel verwendet
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-42
Anfragen und Updates von XML-Daten • Beispiel:
• XMLQUERY
select id, xmlquery('$c/student/matriculation_number' passing stud_data as "c") as "result" from students where modified >= '2007-01-01';
create table students ( id int primary key, created date, modified date, stud_data xml );
<student> <matriculation_number>1067</matr… <name>… <place_of_birth>Hamburg</place… <adress> <city>Darmstadt</city> … </adress> </student>
id result
67 <matriculation_number>1067</matriculation_number>
987 <matriculation_number>2012</matriculation_number>
XMLQUERY (<XQuery-Expression> [ PASSING <Argument-Liste> ] …
)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-43
Weiteres Beispiel
ID movie
42 <movie> <title>An American Werewolf in London</title> <yearReleased>1981</yearReleased> … </movie>
43 <movie> <title>Animal House</title> <yearReleased>1978</yearReleased> … </movie>
… Quelle: J. Melton, S. Buxton: Querying XML
movies_xml
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-44
Anfragen und Updates von XML-Daten • XMLEXISTS
– gleiche Syntax wie XMLQUERY
• XMLTABLE
select xmlquery('$c/student/matriculation_number/text()' passing stud_data as "c") as "result" from students where xmlexists('$c/student[adress/city=place_of_birth]' passing stud_data as "c");
result
1067
2012
select result.stadt, count(*) as "Anzahl" from students, xmltable ('$c/student' passing stud_data as "c" columns stadt varchar(20) path 'adress/city') as result group by result.stadt;
STADT Anzahl
Darmstadt 5469
Frankfurt 1980
XMLTABLE (<XQuery-Expression> [ PASSING <Argument-Liste> ] COLUMNS <XML-Table-Column-Definition>
)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-45
Abbildung von XML auf Datenbanken Speicherungsvarianten für XML-Dokumente
Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
– Generelles – Oracle – DB2 – Tamino
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-46
XML-Unterstützung in Datenbanksystemen
Vorbemerkung • XML-Unterstützung in relationalen / objektrelationalen Datenbank-
systemen (immer) noch in Entwicklung • Angaben sind deshalb immer Versionsabhängig!
Ziele • Mapping zwischen den bisher vermittelten grundsätzlichen Ansätzen
und der heute existierenden Umsetzung in Produkten herstellen • Eindruck über Status Quo der Unterstützung von XML in
(ausgewählten) Datenbanksystemen vermitteln (Oracle, DB2)
Ziel ist es NICHT • Detailkenntnisse über proprietäre Ansätze einzelner Hersteller zu
vermitteln …
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-47
XML-Unterstützung in Datenbanksystemen
Generelles • Anfangsphase (ca. 1999-2003): Entwicklung / Zukauf von
Zusatzprodukten dadurch „aufgesetzte“, vielfach nicht performante Lösungen
• Integrationsphase (ca. 2004-2007) – Integration der Zusatzprodukte bzw. Integration in das native
Datenbanksystem performantere Lösungen aber: oft Koexistenz sowohl der Zusatzprodukte als auch der nativen
Lösungen → Verwirrung, Inkompatibilität etc. • Aktuell (seit ca. 2008)
– volle Unterstützung der Standards (SQL/XML, XQuery) – relativ „nahtlose“ Integration in relationale DBMS
Betrachtet • Oracle • IBM DB2 • Tamino (Software AG)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-48
Oracle – Einführung • vor Oracle 10g: XML Developer's Kit (Oracle XDK)
– bündelt verschiedene XML-Funktionalitäten zum Lesen, Manipulieren, Transformieren und Anzeigen von XML-Dokumenten
– bis Oracle 9i, Release 1: separate Software – ab Oracle 9i, Release 2: gehört zum Oracle-Produkt
• seit Oracle 9i Release 2 (2001): Verschiedene Möglichkeiten zur Speicherung von XML
• seit Oracle 10g Release 2 (2004): XQuery-Unterstützung (außerdem Vermarktung als „Oracle XML DB“ mit „nativer“ Speicherung
• seit Oracle 11g (2007): Binary XML als neues Speicherformat & XML Index (Schwerpunkt: Performance-Verbesserungen)
• seit Oracle 12c (aktuelles Release, 2013): XQuery Update (sehr spät!) und XQuery Full Text (Vorreiter!)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-49
Oracle – Speicherung von XML • XML-Type: Speicherung als CLOB – deprecated seit Oracle 12c
– mit oder ohne Schema möglich – verschiedene Index-Typen können definiert werden (Volltextindex,
Pfadindex, Wert-/Funktionsindex) • XML-Type: Abbildung auf (objekt-)relationale Struktur
(strukturbasierte Speicherung) – nur mit Schema – Default-Mapping oder benutzerdefinierte Abbildung durch
Annotation des XML-Schemas • technisch: „Schema registrieren“
dabei wird Mapping erzeugt, d.h. objektrelationale Struktur erzeugt außerdem: Metainformationen über das Dokument, u.a.
Elementreihenfolge u.ä. werden ebenfalls automatisch erzeugt (DOM Fidelity) und gespeichert
• XML-Type: Binary XML – Anwendungsszenario: kein festes XML-Schema Speicherung in (kompakten) Binärformat
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-50
Oracle – Speicherung von XML: Beispiel – 1(4)
• XML-Type: Speicherung als CLOB
• Anmerkung: wenn das eingefügte XML-Dokument beim Einfügen gegen ein XML-Schema geprüft werden soll, muss dieses Schema vorher (mit PL/SQL) im XML-Repository eingetragen werden.
insert into students values (22, '2006-11-25', '2006-12-06', xmltype('<student gender="male"> <first_name>Markus</first_name>...</student>') );
create table students ( id int primary key not null, created date, modified date, student xmltype ) xmltype column student store as clob;
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-51
Oracle – Speicherung von XML: Beispiel – 2(4)
• XML-Type: Abbildung auf (objekt-)relationale Struktur
• Default-Mapping oder selbstdefiniertes Mapping (Annotation des XML-Schemas)
create table students ( id int primary key not null, created date, modified date, student xmltype ) xmltype column student xmlschema http://www.oracle.com/student.xsd element "student";
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-52
Oracle – Speicherung von XML: Beispiel – 3(4)
• Alternative: Explizite relationale Speicherung
create table adress ( id int primary key not null, street varchar(128), street_number varchar(128), zipcode varchar(5), city varchar(128) );
insert into adress select id, extractValue(student,'/student/adress/street'), extractValue(student,'/student/adress/street_number'), extractValue(student,'/student/adress/zipcode'), extractValue(student,'/student/adress/city') from students;
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-53
Oracle – Speicherung von XML: Beispiel – 4(4)
• XML-Type: Speicherung als Binary XML
• Anmerkung: seit Oracle 12c ist Binary XML der default, d.h. wird verwendet, wenn nur angegeben wird:
insert into students values (22, '2006-11-25', '2006-12-06', xmltype('<student gender="male"> <first_name>Markus</first_name>...</student>') );
create table students ( id int primary key not null, created date, modified date, student xmltype ) xmltype column student store as binary xml;
create table students ( id int primary key not null, created date, modified date, student xmltype);
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-54
Abbildung von XML auf Datenbanken Speicherungsvarianten für XML-Dokumente
Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
Generelles Oracle – DB2 – Tamino
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-55
IBM DB2 – Einführung • schon sehr früh: DB2 XML-Extender (Aufsatz)
– bis Version 8.2: keine wirklich integrierte Unterstützung, sondern Verwendung des XML Extender bzw. des Text-Extender mit rudimentärer SQL/XML-Unterstützung
• seit Version 9 (2006)
– XML-Unterstützung komplett neu – XML-Datentyp mit „nativer“ Speicherung („pureXML“) – SQL/XML und XQuery – seit Version 9.5 (2007) auch XQuery Update
• Full Text nicht mit XQuery-Funktionen sondern (deutlich umfangreicher,
aber proprietär) mit DB2 Text Search
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-56
DB2 – Speicherung von XML: Beispiel – 1(3)
• XML-Type: Speicherung „nativ“ (hierarchisch) – mit oder ohne Schema möglich – verschiedene Index-Typen können definiert werden (Volltextindex,
Pfadindex, Wert-/Funktionsindex) – Beispiel:
– Anmerkung: wenn das eingefügte XML-Dokument beim Einfügen gegen ein XML-Schema geprüft werden soll, muss dieses Schema vorher im XML-Repository eingetragen werden.
create table students ( id int primary key not null, created date, modified date, student xml );
insert into students values (22, '2006-11-25', '2006-12-06', '<student gender="male"> <first_name>Markus</first_name>...</student>') );
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-57
DB2 – Speicherung von XML: Beispiel – 2(3)
• Alternative: Abbildung auf (objekt-)relationale Struktur – manuelle Spezifikation durch annotiertes XML-Schema
create table adress_table ( id int primary key not null, street varchar(128), street_number varchar(128), zipcode varchar(5), city varchar(128) ); <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:db2-xdb="http://www.ibm.com/xmlns/prod/db2/xdb1“xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="adress"> <xs:complexType> <xs:sequence> <xs:element name="street" type="xs:string"> <xs:annotation> <xs:appinfo> <db2-xdb:rowSetMapping db2-xdb:locationPath="/adress/street"> <db2-xdb:rowSet>adress_table</db2-xdb:rowSet> <db2-xdb:column>street</db2-xdb:column> </db2-xdb:rowSetMapping> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name= …
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-58
DB2 – Speicherung von XML: Beispiel – 3(3)
• Fortsetzung: Abbildung auf (objekt-)relationale Struktur – Nach Registrierung des annotierten Schemas …
– … können XML-Dokumente eingefügt werden, die dabei nach den
Annotationsregeln strukturbasiert gespeichert werden (Dekomposition, shredding)
register xmlschema adress.xsd from c:\adress.xsd as adress_schema complete enable decomposition;
decompose xml document c:\a1.xml xmlschema adress_schema validate;
fbi h_da DB2: Speicherung von XML: Architektur – 1(3)
• Exkurs Speicherstrukturen: – LOB-Daten werden (ab einer gewissen Größe) außerhalb der
(Basis-)Tabelle gespeichert
Uta Störl Datenbanken und XML − WS 2014/15 7-59
Quelle: K. Küspert / Ch. Koch, Uni Jena, 2013
fbi h_da DB2: Speicherung von XML: Architektur – 2(3)
• Native Speicherung von XML in DB2 (pureXML) – Die XML-Speicherstrukturen in DB2 bei nativer Speicherung sind
denen der LOB-Speicherung sehr ähnlich, wenn auch etwas komplexer (siehe nächste Folie)
Uta Störl Datenbanken und XML − WS 2014/15 7-60
Quelle: K. Küspert / Ch. Koch, Uni Jena, 2013
fbi h_da DB2: Speicherung von XML: Architektur – 3(3)
• Native Speicherung von XML in DB2 (pureXML) im Detail – im Gegensatz zu LOB-Daten werden XML-Dokumente nur bis zu
einer bestimmten Größe (ca. 16 KB) innerhalb einer Zeile in der XML-Auxiliary-Tabelle gespeichert
– übersteigt ein XML-Dokument diese, wird es in kleinere Teilbäume zerlegt, die wiederum jeweils in eigenen Zeilen gespeichert werden
Uta Störl Datenbanken und XML − WS 2014/15 7-61
Quelle: K. Küspert / Ch. Koch, Uni Jena, 2013
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-62
Abbildung von XML auf Datenbanken Speicherungsvarianten für XML-Dokumente
Anfragen und Updates von XML-Daten in Datenbanksystemen
• Status XML-Unterstützung in Datenbanksystemen
Generelles Oracle DB2 – Tamino
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-63
Tamino (Software AG) – Speicherung von XML
• Tamino verwendet eine „native“ Speicherungsstruktur für XML
• Speicherungsalternativen – Speicherung von wohlgeformten XML-Dokumenten ohne
Schemadefinition – Speicherung von schemavaliden XML-Dokumenten
• Möglichkeiten zum Zugriff
– Programmgesteuert bspw. über DCOM-Komponenten – Ad-Hoc-Anfragen mit Query Tool des X-Plorer
• Besonderheiten
– Viele Funktionalitäten in Richtung „Content Management mit XML“ Positionierung in diesem Markt
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-64
Zusammenfassung Oracle DB2 Tamino
XML-Speicherung
XML-Datentyp (Ablage als CLOB, Binary oder strukturbasiert)
(Ablage „nativ“ oder strukturbasiert)
entfällt, da „native“ Speicherung
XML-Abbildung auf rel. DB
Automatisch oder manuell (annotiertes XML-Schema)
manuell annotiertes XML-Schema
entfällt
Anfragen und Updates
Anfragen SQL-Methoden mit XPath und/oder XQuery
XPath, XQuery, Tamino X-Query
Full Text XQuery Full Text (proprietär) (proprietär)
XQuery Update
Generierung von XML aus rel. Daten
SQL/XML SQL/XML entfällt
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-65
Abbildung von XML auf Datenbanken Speicherungsvarianten für XML-Dokumente
Anfragen und Updates von XML-Daten in Datenbanksystemen
Status XML-Unterstützung in Datenbanksystemen
• Performance-Aspekte
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-66
Performance: XML-Benchmarks 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)
Vorgehensweise: • definieren Umgebungen für Benchmark-Tests, 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)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-67
Performance: Auswahl der geeigneten Speicherform
• Beispiel: – Join zwischen XML-Dokumenten (Q1) – Join zwischen relationalen und XML-Daten (Q2) – verschiedene Speichervarianten in Oracle10g
Quelle: Trautmann (2007)
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-68
Performance: Anfrageoptimierung • Speicherung von XML-Daten stellt DBMS-Anfrageoptimierung vor sehr
große(!) Herausforderungen
• Derzeit: Vielfältige Möglichkeiten Anfragen zu formulieren – beispielsweise können Joins zwischen Daten sowohl im XML- als auch im relationalen Kontext ausgeführt werden Teilweise noch sehr große riesige Performance-Unterschiede Anwendungsentwicklung mit Datenbanken und XML: messen!!!
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-69
Zusammenfassung • alle Systeme haben die „Datenbankvorteile“ gegenüber dem
Dateisystem, z.B.: – Datensicherheit, Konsistenztests, Indizierung, Anfragerealisierung,
Optimierung, und viele mehr
• Wahl des Systems hängt von aktuellen Anwendungsanforderungen ab • hier dargestellte Eigenschaften stellen qualitative Kriterien dar (diese
nähern sich aber durch die Standardisierung an!) • Benchmarks versuchen quantitative Vergleiche
• häufig aber auch: setzt eine Firma / ein Projekt schon ein DBMS ein,
wird dieses dann auch häufig auch für die Speicherung der XML-Dokumente verwendet
fbi h_da
Uta Störl Datenbanken und XML − WS 2014/15 7-70
Datenbanken und XML
XML-Grundlagen
XML-Verarbeitung
XML-Anfragesprachen
Speicherung von XML in Datenbanken
• Generierung von XML aus Datenbanken