Open Source im professionellen Einsatz
Linux-Magazin 04/2001

Entwicklung neuer Standards für XML-Datenbanken

Teamgeist!

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.

875

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.

Ozone ist ein Open-Source-Projekt zur Entwicklung einer reinen XML-Datenbank

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.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • BaseX 5.0: XML-Datenbank mit grafischem Frontend

    Ein Entwicklerteam an der Universität Konstanz hat die XML-Datenbank BaseX in Version 5.0 veröffentlicht. Die Open-Source-Anwendung beherrscht zahlreiche XML-Normen und bietet eine grafische Benutzerschnittstelle.

  • Tom's Readme

    Diesen Monat werfen wir einen Blick auf aktuelle Web-Entwicklungen und hoffen den Freaks und Geeks ein paar interessante Anregungen liefern zu können.

  • Inhaltsschwer

    Der Begriff Content Management wird heute übermäßig beansprucht. Es gibt ein unübersichtliches Spektrum von Anbietern und Produkten, die sich vor allem mit Speziallösungen zu profilieren suchen. Im Folgenden wird der Ansatz des Open-Source-Projekts Infozone näher erläutert.

  • Neues Datenbank-Framework MySQL Workbench

    Auf seiner Hausmesse MySQL Conference stellt das Unternehmen Sun Microsystems das neue, integrierte Entwicklungswerkzeug MySQL Workbench vor und verspricht Entwicklern Zeit- und Arbeitsersparnis.

  • Oracle hat Meilenstein für MySQL 5.6 erreicht

    Mit einer ersten Entwicklerversion, dem so genannten Development Milestone Release möchte Oracle sein Engagement in die mit der Sun-Übernahme zugekaufte freie Datenbank MySQL unterstreichen.

comments powered by Disqus

Ausgabe 04/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.