DB2 10.5 for Linux, UNIX and Windows

Übersicht über pureXML - DB2 als XML-Datenbank

Mithilfe der Komponente pureXML können korrekt formatierte XML-Dokumente in Datenbanktabellenspalten, die den Datentyp XML aufweisen, gespeichert werden. Durch die Speicherung von XML-Daten in XML-Spalten werden die Daten in ihrem nativen hierarchischen Format beibehalten und nicht im Textformat abgelegt oder einem anderen Datenmodell zugeordnet.

Da der pureXML-Datenspeicher vollständig integriert ist, können Sie auf die gespeicherten XML-Daten zugreifen und diese verwalten, indem Sie die vorhandene DB2-Datenbankserverfunktionalität nutzen.

Die Speicherung von XML-Daten in deren nativen hierarchischen Format ermöglicht die effiziente Ausführung von Such-, Abruf- und Aktualisierungsoperationen für XML-Daten. Zum Abfragen und Aktualisieren von XML-Daten kann XQuery, SQL oder eine Kombination dieser beiden Sprachen verwendet werden. SQL-Funktionen, die XML-Daten zurückgeben oder mit XML-Argumenten arbeiten (und deswegen als SQL/XML-Funktionen bezeichnet werden), ermöglichen außerdem die Erstellung und Veröffentlichung von XML-Daten auf der Basis von Werten, die aus der Datenbank abgerufen werden.

Abfragen und Aktualisieren

XML-Dokumente, die in XML-Spalten gespeichert sind, können mithilfe der folgenden Methoden abgefragt und aktualisiert werden:

XQuery
Bei XQuery handelt es sich um eine allgemeine Sprache zum Interpretieren, Abrufen und Ändern von XML-Daten. Mithilfe des DB2-Datenbankservers kann XQuery entweder direkt oder über SQL aufgerufen werden. Da die XML-Daten in DB2-Tabellen und -Sichten gespeichert sind, werden Funktionen zum Extrahieren der XML-Daten aus angegebenen Tabellen und Sichten bereitgestellt. Hierzu wird die gewünschte Tabelle oder Sicht entweder direkt angegeben, oder es wird eine entsprechende SQL-Abfrage definiert. XQuery unterstützt verschiedene Ausdrücke für das Verarbeiten von XML-Daten, für das Aktualisieren von vorhandenen XML-Objekten (wie beispielsweise Elementen und Attributen) und für das Erstellen neuer XML-Objekte. Die Programmierschnittstelle für XQuery bietet Funktionen, die Ähnlichkeiten mit den entsprechenden SQL-Funktionen aufweisen und zur Ausführung von Abfragen und zum Abrufen von Ergebnissen verwendet werden können.
SQL-Anweisungen und SQL/XML-Funktionen
Zahlreiche SQL-Anweisungen unterstützen den Datentyp XML. Auf diese Weise können Sie viele allgemeine Datenbankoperationen mit XML-Daten ausführen. Hierzu gehören z. B. das Erstellen von Tabellen mit XML-Spalten, das Hinzufügen von XML-Spalten zu vorhandenen Tabellen, das Erstellen von Indizes zu XML-Spalten und von Triggern für Tabellen mit XML-Spalten sowie das Einfügen, Aktualisieren oder Löschen von XML-Dokumenten. Die Gruppe der SQL/XML-Funktionen, -Ausdrücke und -Spezifikationen, die vom DB2-Datenbankserver unterstützt werden, wurde erweitert, um alle Vorteile des Datentyps XML voll nutzen zu können.

XQuery kann über eine SQL-Abfrage aufgerufen werden. In diesem Fall kann die SQL-Abfrage Daten in Form gebundener Variablen an XQuery übergeben.

Anwendungsentwicklung

Unterstützung für die Anwendungsentwicklung wird von verschiedenen Programmiersprachen sowie durch SQL-Prozeduren und externe Prozeduren bereitgestellt:

Unterstützung für Programmiersprachen
Die Anwendungsentwicklungsunterstützung der neuen Komponente pureXML ermöglicht es Anwendungen, die Funktionen für den Zugriff auf XML-Daten und relationale Daten und deren Speicherung zu kombinieren. Die folgenden Programmiersprachen unterstützen den Datentyp XML:
  • C oder C++ (eingebettetes SQL oder CLI)
  • COBOL
  • Java™ (JDBC oder SQLJ)
  • C# und Visual Basic (IBM® Data Server Provider für .NET)
  • PHP
  • Perl
SQL-Prozeduren und externe Prozeduren
XML-Daten können an SQL-Prozeduren und externe Prozeduren übergeben werden, indem Parameter vom Datentyp XML in die Parametersignaturen von CREATE PROCEDURE eingeschlossen werden. Vorhandene Prozedurenfunktionen unterstützen die Implementierung des prozeduralen Logikablaufs für SQL-Anweisungen, die XML-Werte generieren oder diese verwenden, sowie die temporäre Speicherung von XML-Datenwerten in Variablen.

Verwaltung

Die Komponente pureXML stellt ein Repository für die Verwaltung der URI-Abhängigkeiten von XML-Dokumenten bereit und ermöglicht das Versetzen von XML-Daten zwecks Datenbankverwaltung:

XML-Schema-Repository (XSR)
Das XML-Schema-Repository (XSR) ist ein Repository für alle XML-Artefakte, die zur Verarbeitung von XML-Instanzdokumenten benötigt werden, die in XML-Spalten gespeichert sind. Es dient zur Speicherung von XML-Schemata, Dokumenttypdeklarationen (DTDs) sowie externer Entitäten, auf die in XML-Dokumenten verwiesen wird.
Dienstprogramme zum Importieren (IMPORT), zum Exportieren (EXPORT) und zum Laden (LOAD)
Die Dienstprogramme IMPORT, EXPORT und LOAD wurden aktualisiert und unterstützen nun den nativen XML-Datentyp. Diese Dienstprogramme verarbeiten XML-Daten wie LOB-Daten, d. h., beide Datentypen werden außerhalb der eigentlichen Tabelle gespeichert. Darüber hinaus steht Anwendungsentwicklungsunterstützung für das Importieren, Exportieren und Laden von XML-Daten zur Verfügung. Diese Unterstützung wird über die aktualisierten Anwendungsprogrammierungsschnittstellen (APIs) db2Import, db2Export und db2Load bereitgestellt. Diese aktualisierten Dienstprogramme ermöglichen Ihnen das Versetzen von Daten für in XML-Spalten gespeicherte XML-Dokumente, das in ähnlicher Weise ausgeführt wird wie die Datenversetzung bei relationalen Daten.

Leistung

Beim Arbeiten mit XML-Dokumenten, die in XML-Spalten gespeichert sind, stehen Ihnen zahlreiche leistungsorientierte Funktionen zur Verfügung:

Indizes zu XML-Daten
Die Indexierungsunterstützung steht für Daten zur Verfügung, die in XML-Spalten gespeichert sind. Die Verwendung eines Index zu XML-Daten kann zur Verbesserung der Effizienz von Abfragen beitragen, die für XML-Dokumente abgesetzt werden. Ähnlich wie ein relationaler Index führt auch ein Index für XML-Daten eine Indexierung für Spalten durch. Der Unterschied besteht jedoch darin, dass ein relationaler Index die gesamte Spalte indexiert, wohingegen ein Index für XML-Daten bei der Indexierung nur einen Teil der Spalte berücksichtigt. Sie können angeben, welche Teile einer XML-Spalte indexiert werden sollen, indem Sie ein XML-Muster angeben, bei dem es sich um einen eingeschränkten XPath-Ausdruck handelt.
Optimierungsprogramm
Das Optimierungsprogramm wurde aktualisiert und unterstützt jetzt die Auswertung von SQL-, XQuery- und SQL/XML-Funktionen, die XQuery-Komponenten einbetten. Die Funktionen werden hierbei auf der Basis von XML-Daten und relationalen Daten ausgewertet. Das Optimierungsprogramm verwendet Statistikdaten, die zu den XML-Daten erfasst wurden, sowie Daten aus Indizes zu XML-Daten, um auf der Basis dieser Informationen effiziente Abfrageausführungspläne zu erstellen.
EXPLAIN-Einrichtung
Die EXPLAIN-Funktion wurde aktualisiert und unterstützt nun die funktionalen SQL-Erweiterungen zur Abfrage von XML-Daten und zur Unterstützung von XQuery-Ausdrücken. Diese Aktualisierungen an der EXPLAIN-Funktion ermöglichen es Ihnen, den Status der vom DB2-Datenbankserver durchgeführten Auswertung von Abfrageanweisungen für XML-Daten schnell und einfach anzuzeigen.

Tools

Der XML-Datentyp wird in verschiedenen Tools wie beispielsweise im Befehlszeilenprozessor (CLP), in IBM Data Studio sowie in IBM Database Add-Ins for Microsoft Visual Studio unterstützt.

Dekomposition mithilfe eines mit Annotationen versehenen XML-Schemas

Die Komponente pureXML ermöglicht Ihnen die Speicherung von und den Zugriff auf XML-Daten im XML-Format, d. h. in deren hierarchischen Format; es kann jedoch in bestimmten Fällen erforderlich sein, auf XML-Daten in Form relationaler Daten zuzugreifen. Bei der Dekomposition mithilfe eines mit Annotationen versehenen XML-Schemas werden Dokumente auf der Basis von Annotationen zerlegt, die in einem XML-Schema angegeben sind.