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