Neben den klassischen relationalen Datenbanksystemen etablieren sich mehr und mehr Datenbanken, die XML verarbeiten können. Hier soll ein Überblick über mögliche Ansätze und deren Auswirkungen auf künftige Applikationsentwicklung gegeben werden.
Datenbanken haben sich im Laufe der Jahre als ideales Werkzeug zur Verwaltung und Pflege großer Datenvolumen entwickelt. Im Zuge der rasanten Verbreitung von neuen XML-Standards stehen Entwickler sehr schnell vor dem Problem, die Vorteile beider Technologien zu nutzen. Dazu hat heute nahezu jedes Datenbank-Produkt und Datenbank-Tool den Begriff „XML“ in seine Featureliste aufgenommen. Als zentrale Anlaufstelle im Internet zu aktuellen Entwicklungen und Produktneuheiten rund um XML-Datenbanken hat sich die Sammlung von Ronald Bourret unter [1] und [2] etabliert.
Bestandsaufnahme
So umfangreich das Angebot an Lösungen zur Speicherung von XML-Daten ist, so verschiedenartig sind auch die Techniken zu deren Realisierung, so dass man damit ganze Bücher füllen könnte. Generell lassen sich die verwendeten Techniken durch ihre Eigenschaften in folgende drei Kategorien einordnen:
- XML-Erweiterte Datenbank (XED) — der Klassiker. Eine existierende Datenbank, meist ein relationales DBMS, wurde durch den Hersteller oder einen Drittanbieter mit einer XML-Mappingschicht versehen. Diese Mappingschicht verwaltet den lesenden und zum Teil schreibenden Zugriff auf die gespeicherten XML-Daten. Das Mapping der Daten von und nach XML unterscheidet sich bei den angebotenen Lösungen zum Teil sehr stark, und XML-Metadaten und -Struktur können durch das Mapping sogar verloren gehen. Der Zugriff und die Bearbeitung der Daten erfolgt entweder durch standardisierte XML-Technologien (XPath, DOM und SAX) oder mittels SQL. Beispiele für XEDs sind Volker Turaus DB2XML [3], Ronald Bourrets XML-DBMS [4] wie auch die kommerzielle Lösung XML SQL Utility [5], kurz XSU, von Oracle.
- Native XML-Datenbank (NXD) — der wohl jüngste Spross in der Entwicklung von XML-Datenbanken. Diese Lösungen sind dadurch gekennzeichnet, von Anfang an für die effektive Speicherung und Bearbeitung von XML-Daten entworfen zu sein. Der Zugriff und die Bearbeitung der Daten erfolgt ausschließlich durch XML-Technologien wie XPath, DOM und SAX. Die zugrunde liegende Datenbank erhält dabei die Struktur und die Metadaten der XML-Dokumente vollständig. In die Kategorie der NXDs fallen das unter GPL entwickelte dbXML [7] sowie die Produkte Tamino [7] und X-Hive/DB [8].
- Hybride XML-Datenbank (HXD) — interessante Nischenlösungen wie die Ozone-DB [9] und Excelon [10]. Sie lassen sich nicht eindeutig in die vorgenannten Kategorien einordnen, gehören sogar teilweise zu beiden. Solche Lösungen können je nach aktuellen Applikationsanforderungen als XED oder NXD verwendet werden.
Auf eine abschließende Bewertung der einzelnen Ansätze wird hier bewusst verzichtet, da jede der drei Kategorien ihre Entstehungsgeschichte und damit auch ihre Da-seinsberechtigung hat. So ist es wieder mal an uns Entwicklern, die richtige Lösung situationsgerecht auszuwählen.

XDBC und XUpdate: Neue Standards müssen her
Allen angebotenen XML-Datenbanklösungen ist dabei jedoch ein Problem gemein: Anerkannte Standards wie SQL und ODBC/JDBC, bestens bekannt aus der „relationalen Welt“, gibt es im Bereich XML-Datenbanken nicht. Jeder Hersteller kocht hier leider noch sein eigenes Süppchen und bietet exklusiv proprietäre Lösungen an. Dieses Problem haben einige Firmen und unabhängige Entwickler erkannt und aus diesem Grund die XML:DB-Initiative [11] gegründet, die sich explizit mit der Entwicklung neuer XML-Datenbankstandards beschäftigt. Die interne Organisation ähnelt der Apache-Organisation, das bedeutet, jeder kann sich an der Entwicklung beteiligen, und entstehende Referenz-Implementierungen sind öffentlich zugänglich.
ozone/XML: ein Beispiel für HXD |
|
Ozone ist ein Open-Source Objekt-Server, der nicht primär für die Speicherung von XML-Daten gedacht war und ist. Das eigentliche Ziel von Ozone ist die Bereitstellung einer Objektdatenbank, die die Ausführung von (Geschäfts-) Logik in einem „Managed Environment“ ähnlich einem EJB-Server erlaubt. Die von Ozone zur Verfügung gestellten Services sind vor allem Rechteverwaltung, Persistenz und ACID-Transaktionen. Da XML-Daten im Speicher ohnehin meist als Objekte vorliegen, gemäß dem so genannten Document-Object-Model (DOM), lag eine Speicherung dieser Objekte in Ozone nahe. Ohne großen Aufwand konnte eine bestehende DOM-Implementierung von OpenXML [14] an Ozone angepasst werden. Mit dem so erzeugten persistenten DOM können alle Werkzeuge, die auf DOM basieren, sofort arbeiten. Zum Beispiel kann Xalan [15] ohne jede Änderung für die Abarbeitung von XPath-Queries eingesetzt werden. Obwohl die Fähigkeit von Ozone, mit XML-Daten umzugehen, im Laufe des letzten Jahres verbessert wurde, hat der flexible Ansatz der persistenten DOM-Implementierung innerhalb einer Objektdatenbank auch Nachteile. Vor allem die Performance und Skalierbarkeit beim Umgang mit sehr vielen, dafür aber sehr kleinen XML-Knoten, wie sie bei der Verwendung von XML als Ersatz für relationale Datenbanken auftreten, ist für den praktischen Einsatz ungeeignet. Als XML-Dokumenten-Server ist Ozone aber recht gut einsetzbar. |
Als wichtigstes Projekt haben die Mitglieder von XML:DB die Entwicklung einer standardisierten Programmierschnittstelle (API) für XML-Datenbanken gestartet. Als Pendant zu ODBC/JDBC soll XDBC (XML Database Connectivity) in Zukunft die Entwicklung von Applikationen auf Basis von XML-Datenbanken erleichtern. Diese einheitliche API soll es den Entwicklern ermöglichen, die verwendete XML-Datenbank bei Bedarf durch eine andere XDBC-konforme Lösung zu ersetzen. Die Mitglieder der entsprechenden XML:DB-Arbeitsgruppe [12] haben bereits erste Vorschläge für die API unterbreitet, die durch die Community diskutiert und verifiziert werden. Ein weiterer Schwerpunkt der XML:DB-Initiative liegt in der Entwicklung einer XML-Update- Sprache, dem XUpdate-Projekt [13]. Denn jeder Programmierer, der schon einmal versucht hat, XML-Daten in einer Datenbank zu bearbeiten, ist bisher dazu gezwungen, die DOM API zu benutzen. Hier soll die vorgelegte XUpdate-Spezifikation eine praktische, dem SQL Update ähnliche, Lösung bieten.
Zukunftsmusik
Open-Source-Organisationen schießen im Moment wie Pilze aus dem Boden, und gerade Firmen „beteiligen“ sich gern an solchen Institutionen, um damit ihre Marktpräsenz zu erhöhen. Bei der Entwicklung neuer XML-Standards hat sich das W3C als unabhängiges Standardisierungsgremium herausgebildet, sieht naturgemäß seinen Fokus aber nicht in der Entwicklung von Technologien für XML-Datenbanken. Die XML:DB-Initiative möchte hier die technische Vorarbeit leisten, um solchen Gremien qualifizierte Vorschläge zu unterbreiten. (uwo)
Der Autor |
|
Lars Martin vertritt die SMB GmbH aus Leipzig als Gründungsmitglied der XML:DB-Initiative im Project Management Committee. Im Projekt Ozone-DB hat er an der ersten Implementierung eines XML-Persistency-Layers mitgewirkt. |











Hinterlasse einen Kommentar