XML - Unterstützung durch IBM DB2

Werbung
Seminar „XML und Datenbanken“| Andreas Krug
XML - Unterstützung durch
IBM DB2
Fahrplan
1.
2.
XML-enabled Unterstützung vs.
native XML Unterstützung
Nachteile der „relationalen XMLUnterstützung“
Native XML-Verarbeitung in IBM DB2
Bewertung
Abschließender Überblick
3.
4.
5.
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
1. XML-enabled Unterstützung
vs. native XML Unterstützung
•
•
•
XML-enabled relationales Datenmodell
Native XML Datenmodell
DB2 vereinigt beide Varianten hybride
XML-Verarbeitung
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
1. XML-enabled Unterstützung
vs. native XML Unterstützung
Quelle: Datenbank-Spektrum 17/2006 , Manfred Päßler & Matthias Nicola
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
1. XML-enabled Unterstützung
vs. native XML Unterstützung
7
Quelle: IBM Software Group, Manfred Päßler, „Datenbanken und XML – Passt das?“
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
2. Nachteile der XML-enabled
Unterstützung
CLOB-Speicherung
• Extrahieren oder Ändern von
Teilinformationen eines XMLDokumentes extrem aufwendig
schlechte Performance Shredding
7
• Zusammensetzen eines XML(Teil-)Baumes sehr aufwendig
• geringe Flexibilität gegenüber
Strukturänderungen
Umspeichern und erneute
Validierung unvermeidbar Krug, Andreas, „XML und Datenbanken“, SoSe 2008
2. Nachteile vermeiden… ☺
•
… mittels nativer XML-Unterstützung
•
D.h. eine für XML optimierte Speicherungsund Verarbeitungsstruktur
•
PureXML (seit Version 9 – „Viper Release“)
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 - Allgemeines
•
•
•
•
•
XML-Verarbeitung in allen Komponenten
implementiert
Kein Parsingaufwand bei Anfrageauswertung
Kein Umspeichern oder erneute Validierung ☺
XQuery-Anfrage werden direkt in
Zugriffsfunktionen übersetzt
Kombination von SQL und XQuery dank
hybriden DB2-Anfragecompiler kein Problem
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Speicherung (1)
Quelle: Datenbank-Spektrum 17/2006 , Manfred Päßler & Matthias Nicola
• Automatisches Parsen bei Einfügen eines XML-Dokumentes
und Überführung in das interne XML-Speicherungsformat
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Speicherung (2)
• Schrittabfolge beim Einfügen eines XML-Dokumentes bis zur
Speicherung inkl. XMLVALIDATE
Quelle: Datenbank-Spektrum 17/2006 , Manfred Päßler & Matthias Nicola
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Speicherung (3)
• physische Speicherung
폠‫ו‬
Quelle: Datenbank-Spektrum 17/2006 , Manfred Päßler & Matthias Nicola
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Indexe (1)
•
pfadspezifische Indexe
Beispiel:
create index idx1 on abt (xml-doc) generate
key using xmlpattern
7
‘/abteilung/angestellter/name‘ as sql varchar(35)
− Mögliche Datentypen:
−
•
•
•
•
varchar(n)
varchar hashed
double
date und timestamp
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Indexe (2)
•
Volltextindexe
−
DB2 Net Search Extender (NSE)
•
Funktionalitäten wie Thesauri, fuzzy und
gewichtete Textsuche möglich
Beispiel:
create index idx2 for text on abt (xmldoc) format
xml
− Abfragebeispiel für Volltextsuche:
select xmldoc from abt where contains (xmldoc,
‘sections(“/abteilung/angestellter/name“)
“Tom“‘) = 1
−
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Sprachen (1)
•
Anfragen mit XQuery
−
XQuery db2-fn: xcolumn(Schema.Tabelle.Spalte)
•
•
−
XQuery db2-fn: sqlquery(SELECT .. WHERE ..)
•
−
Spalte muss vom Datentyp XML sein
Zugriff auf alle XML-Dokumente
in Spalte
Selektiver Zugriff auf XML-Dokumente
„XQuery“ vor Funktionsname gibt an, dass
XQuery-Parser verwendet werden soll
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Sprachen (2)
•
Anfragen mit SQL/XML
Ausgabe des gesamten XML-Dokumentes
unproblematisch ☺
− Ausgabe einzelner Element- bzw.
Attributinhalte eines XML-Dokumentes
problematischer ( XQuery geeigneter)
−
−
Kombination von XQuery und SQL mittels
neuer SQL/XML:2006 Funktionen
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Sprachen (3)
•
XMLEXISTS
−
bestimmt, ob ein XQuery-Ausdruck ein
Ergebnis liefert oder nicht (Boolesche Funktion)
−
Beispiel:
SELECT xyz FROM table
WHERE
XMLEXISTS (‘$d//Preis[@Währung=EUR“]‘
PASSING xyz AS “d“)
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Sprachen (4)
•
XMLQUERY
−
führt ein XQuery-Ausdruck aus und liefert das
Ergebnis
−
Beispiel:
SELECT xyz,
XMLQUERY(‘for $i in $d/Produkt
…
return $j‘)
FROM table
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – Sprachen (5)
•
XMLTABLE
−
Führt ein XQuery-Ausdruck aus und liefert das
Ergebnis als Tabelle
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
3. Native XML-Verarbeitung in
IBM DB2 – XML-Schema
•
DB2 besitzt Schema-Repository
besteht aus vier Katalogtabellen und
Kommandos und Stored Procedures zum
Registrieren, Erweitern und Löschen und XMLSchemata
− Schema an Dokument, nicht an Spalte gebunden
− Logging, welches Dokument gegen welches
Schema validiert wurde
−
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
4. Bewertung
•
•
•
•
•
größere Flexibilität und performantere
Verarbeitung von XML-Dokumenten ☺
Flexible Verknüpfung von Daten in XML mit
Daten in relationalen gegeben ☺
Keine Ausbremsung der Evolution eines XMLSchemas und der XML-eigenen Flexibilität ☺
Flexible Dekomposition von XML-Strukturen
in den relationalen Speicher ☺
Parsen von XML zur Laufzeit nicht mehr
notwendig ☺
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
5. Abschließender Überblick
SQL/XML
:2006
Datentyp
XML-Wert
Oracle
11g R1
SQL
Server 05
DB2 UDB
9.5
XML
XMLType
XML
XML
beliebige
Sequenz
wohlgeformtes
XMLDokument
XML - Dok.
im Sinne
XDM
Wohlgeformtes
XMLDokument
mehrere Sequenzeinträge
☺
XML-Untertypen
☺
☺
Validierung möglich?
☺
☺
☺
☺
Validitätstest möglich?
☺
☺
XQuery-Anfrage
einbettbar?
☺
☺
☺
☺
Wahl zw. by ref und
by value?
☺
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
Vielen Dank für Ihre
Aufmerksamkeit
•
•
•
Fragen?
Kritiken?
Anregungen?
8
Krug, Andreas, „XML und Datenbanken“, SoSe 2008
Herunterladen