Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

23.05.2006

DB2 entwickelt sich in Richtung Service

Frank Pientka arbeitet als Principal Software Architect bei der MATERNA GmbH. Als Software Architect sorgt er für mehr Qualität in der Software und kümmert sich, als Gründungsmitglied des iSAQB, um eine verbesserte Ausbildung und Zertifizierung von Architekten.
Seit mehr als zwei Jahrzehnten unterstützt er Firmen bei der Umsetzung  und Modernisierung ihrer Software-Architekturen. Dabei führt er externe Reviews und Architekturbewertungen als Gutachter durch.
Dazu hat er auch schon mehrere Bücher, Fachartikel veröffentlicht und Vorträge gehalten.
Das von IBM zur Jahresmitte angekündigte Datenbank-Upgrade bietet erstmals eine integrierte native XML-Unterstützung innerhalb des Datenbankkerns.
Die integrierte XML-SQL-Verarbeitung in DB2 Viper.
Die integrierte XML-SQL-Verarbeitung in DB2 Viper.

Nachdem in den vergangenen DB2-Versionen die Erweiterung um objektrelationale Eigenschaften und die Verwendung mehrerer Programmiersprachen (Java, .NET und PHP) im Vordergrund stand, sieht IBM jetzt in der in Viper integrierten XML-Unterstützung einen logischen Schritt auf dem Weg zu einer serviceorientierten Infrastruktur. Der Hintergrund ist einfach: Dadurch, dass sich XML nicht nur als Austausch-, sondern auch als Speicherformat in neuen Produkten zunehmend verbreitet, wächst der Bedarf nach einer effizienten Ablage und Verarbeitung von XML. Die bisherige proprietäre XML-Unterstützung über das Produkt "DB2 XML-Extender" wird allerdings auch weiterhin angeboten.

Links und Referenzen

http://www-306.ibm.com/soft ware/data/db2/udb/viper/;

http://publib.boulder.ibm.com/ infocenter/db2luw/v9/index.jsp;

• Comparing XML and relational storage - A best practices guide, IBM Whitepaper, GC34-2497;

• The IBM approach to unified XML/relational databases, IBM Whitepaper GC34-2496-00.

Relationale versus XML-Struktur

• XML ist selbstbeschreibend, da es Metadaten und Daten enthält. Bei relationalen Daten sind das Schema und die Daten getrennt.

• Wohlgeformtes XML ist hierarchisch aufgebaut. Relationale Daten sind tabellenorientiert und flach.

• XML ist reihenfolgeorientiert. Relationale Daten sind mengenorientiert.

• XML ist gegenüber Erweiterungen des Schemas flexibler als das SQL-Schema.

Um XML in Tabellen zu speichern, gab es bisher zwei Ansätze: die Zerlegung und Abbildung der XML-Struktur auf relationale Strukturen oder die Speicherung des XML-Dokuments in einem CLOB (Character Large Object) oder VARCHAR-Feld. Der erste Ansatz hat seine Schwäche darin, dass eine Transformation von komplexen XML-Strukturen auf die flache relationale Struktur erstellt werden muss, was sehr zeitaufwändig und fehleranfällig ist. Der zweite Ansatz ist einfacher, er kann jedoch sowohl bei der Speicherung als auch bei der Verarbeitung nicht auf die im XML-Schema festgelegte interne Struktur des Dokuments zugreifen.

Die Vorteile einer nativen XML-Speicherung liegen damit auf der Hand. Sie ermöglicht vor dem Speichern eine einfache, optionale Validierung der XML-Daten gegen das im XSD-Repository abgelegte Schema. Zweitens wird die Speicherung selbst effizienter, da sich die XML-Elemente in einem Dictionary befinden und Leerzeichen entfernt werden können. Ein dritter Vorteil besteht darin, dass sich spezielle XPath-basierende XML-Indizes verwenden lassen, um den Zugriff zu verbessern. Dadurch wird die Verarbeitung von XML erheblich beschleunigt.

Ausführungsgeschwindigkeit der Engine steigt

Da die XML-Unterstützung alle Bereiche der Datenbank betrifft, war es nicht damit getan, nur die SQL-Syntax anzupassen. Es mussten alle Werkzeuge für die XML-Unterstützung erweitert werden, damit Entwickler und Administratoren von der neuen Technik profitieren. Der Vorteil für die Entwicklung liegt etwa darin, dass für die Arbeiten mit XML weniger Code benötigt wird. Die XML-Unterstützung in der Datenbank-Engine erlaubt eine höhere Ausführungsgeschwindigkeit, vor alllem im Vergleich zur Speicherung in CLOB-/ VARCHAR-Feldern.

Die Abfrage von XML-Daten erfolgt nach dem W3C-Standard mit XQuery/XPath/FLWOR-Expression (FOR, LET, WHERE, ORDER by, RETURN). Dies lässt sich in beide Richtungen mit SQL/XML (ANSI/ISO 2003) integrieren. Dort wo Standards fehlen, hat IBM eigene Funktionen hinzugefügt oder Erweiterungen in den Programmierschnittstellen (zum Beispiel JDBC 3.0, .NET-Provider ) vorgenommen. Auch wenn XQuery noch nicht endgültig verabschiedet ist, so zeichnet sich ab, dass es das "neue SQL" für die Verarbeitung von XML-Daten sein wird. Ähnlich wie bei den objektrelationalen Erweiterungen zeigt sich auch bei XML, dass die Standards im Vergleich zu ihrer Verwendung in den Produkten zum Teil sehr weit hinterherhinken.

Voraussetzungen für die Verwendung von XML-Datentypen

Die Verwendung der XML-Datentypen in DB2 setzt voraus, dass die Datenbank nur eine Partition enthält und UTF-8 codiert ist. Da XQuery im Gegensatz zu SQL Groß- und Kleinschreibung unterscheidet, kann das beim ersten Kontakt leicht zu Fehlern führen. Am besten verwendet man dafür den Eclipse-basierenden XQuery-Builder der DB2 Developer Workbench (ehemals DB2 Development Center). Eclipse ist auch die Basis für das DB2-Hilfesystem, in dem sich das neue XQuery-Referenzhandbuch und der XML-Guide befindet, der den Einstieg in XQuery erleichtert. Dadurch, dass die XQuery/XPath-Abfragen im gleichen internen Format wie die SQL-Abfragen abgespeichert werden, benötigt DB2 nur eine Abfrage-Engine und kann beide Sprachen wechselseitig verwenden.

Am einfachsten kann man sich mit den XML-Fähigkeiten und XQuery durch die aktualisierte Beispieldatenbank (sample) vertraut machen. Diese kann wahlweise mit und ohne XML-Support angelegt werden. Dazu ruft man folgende Befehle im DB2-Befehlsfenster auf.

db2cmd

db2sampl -sql -xml -verbose

db2 connect to sample

Um sich alle Daten der Tabelle "customer" in der XML-Spalte "info" anzeigen zu lassen, gibt es mehrere Möglichkeiten.

db2 -xi XQUERY db2-fn:xmlcolumn

(‘CUSTOMER.INFO’)

oder (bei Verwendung von SQL innerhalb von XQuery)

db2 -xi XQUERY db2-fn:sqlquery

(‘select info from CUSTOMER’)

Die Inhalte der Textknoten ohne die XML-Elemente werden durch die XPath-Funktion "text()" angezeigt.

XQUERY db2-fn:xmlcolumn

(‘CUSTOMER.INFO’)

/customerinfo//text()

Das letzte Beispiel zeigt die Namen aller Kunden in Toronto an.

XQUERY db2-fn:xmlcolumn

(‘CUSTOMER.INFO’)/customer

info[addr/city=’Toronto’]/name

SOA: Informationen als Service

Nach der E-Business-Initiative richtet IBM jetzt all seine Produkte auf Service-orientierte-Architekturen (SOA) aus. So wundert es nicht, dass auch DB2 hier eine bedeutende Rolle spielt - nicht nur als Web-Services-Provider und Verbraucher von Web-Services über Soap. Aus diesem Grund wird auch eine abgespeckte Version des "Websphere Federation Server" mitgeliefert. Alternativ kann man jedoch auch "Tomcat" oder den Websphere-Application-Server einsetzen. Letzterer wird auch für die DB2 Data Warehouse Edition (DWE) Administration Console verwendet, die komplett portalbasierend ist.

Selbstverwaltende Systeme

DB2 vereinfacht und automatisiert viele Administrationstätigkeiten. Hinter der Service-on-Demand-Initative von IBM steckt letztlich die Vision der sich selbst überwachenden und optimierenden Systeme. Dazu bietet die neue DB2-Version verschiedene Erweiterungen an, so etwa die Funktionen Adaptive Self-Tuning Memory, Memory Visualizer und Indoubt Transaction Manager. Weiter verbessert wurden die bereits in Version 8.2.2 enthaltenen Werkzeuge Helth Center, Automatic Database Diagnostic Monitor, Configuration Advisor, Design Advisor, Automatic Database Memory Management und die Option für das Automatic Storage Management.

Die Möglichkeit der Datenkompression (Codename "Venom") wurde in Viper auf Tabellenebene erweitert. Welcher Komprimierungsgrad sich erreichen lässt, kann für eine gefüllte Tabelle mit dem "inspect"-Kommando vorher abgeschätzt werden. Dem geringeren Speicherverbrauch, beschleunigten Zugriff und Backup stehen höhere CPU-Kosten gegenüber.

Open Source und SAP

Die neue DB2-Version zeigt, welche wichtige Bedeutung Eclipse als einheitliche Entwicklungsplattform für IBM hat. So ist das Framework zusammen mit Tomcat nicht nur die Basis für das Viper-Hilfesystem (DB2 Information Center), sondern auch für die DB2 Developer Workbench und das DWE Design Studio. Andererseits versucht IBM mit der strategischen Integration von DB2 in SAP, unbemerkt seine Verbreitung und Bedeutung auch innerhalb von Fremdprodukten zu erhöhen.

Das zeigt sich in einer gemeinsam abgestimmten Roadmap und der parallelen Verfügbarkeit von Fixpacks sowie in der Umsetzung von speziellen SAP-Anforderungen (SP, Konfiguration, LRID) in DB2. Für die kostenlose Verwendung in Projekten und Produkten steht auch weiterhin DB2 Express-C zur Verfügung. (ue)