Wichtiger Teil einer Anwendungsintegration per Webservices ist häufig eine Datenbank, vor allem wenn es um Information in Form von Dokumenten geht. Die Anbieter postrelationaler Datenbanken sehen Vorteile ihres Konzepts bei der Kommunikation mit XML.
Wenn Webservices dazu dienen, Daten zwischen Anwendungen und Datenbanken zu kommunizieren,
überfordern die komplexen XML-Strukturen schnell die Speichermodelle von klassischen relationalen
Datenbanksystemen. In herkömmlichen Tabellen mit Zeilen oder Spalten gespeicherte Daten müssen
nämlich durch aufwändiges Mapping erst an die Darstellungsform hierarchisch strukturierter
XML-Dokumente angepasst werden. Das Zusammensuchen der Daten aus unterschiedlichen Tabellen
erfordert zudem erheblichen Mehraufwand zur Laufzeit. Im Gegensatz dazu bauen postrelationale
Datenbanken (Beispiel Caché 2007 von Intersystems) auf einem Objektmodell auf und sollen so für
jede Klasse auf Knopfdruck die Nutzung in unterschiedlichen XML-Repräsentationen und als Webservice
erlauben.
Als Sprachstandard für die automatisierte Kommunikation zwischen Anwendungen im Internet hat
sich die Extended Markup Language (XML) durchgesetzt. Sie bringt eine plattform- und
sprachunabhängige Struktur in Dokumente, sodass sich diese zwischen heterogenen Systemlandschaften
problemlos austauschen lassen. XML kann einfache Tabellen ebenso wie schwach strukturierte Daten
(etwa Webseiten) oder stark strukturierte Geschäftsdokumente abbilden. Auch die Definition von
Webservices und deren Datenkommunikation basiert auf XML.
Ein in XML beschriebenes Dokument stellt ein hierarchisch organisiertes Objekt mit reich
strukturierten Daten dar. Dadurch lassen sich die komplexen Inhalte eines solchen Objekts nur
schwer in die Zeilen und Spalten einer traditionellen relationalen Datenbank (RDBMS) "pressen" –
grundsätzlich geht dabei nämlich die Sicht auf die Zusammenhänge innerhalb des Objekts verloren.
Auf diese Schwächen haben die Anbieter von RDBMS mit Erweiterungen ihrer Produkte reagiert. Einige
Datenbanken unterstützen XML-Dokumente als neuen Datentyp, den sie unverändert speichern und wieder
darstellen können. Nachteilig bei diesem Ansatz ist, dass die im Dokument enthaltenen Daten der
Datenbank dann nicht in der für die Verarbeitung von Daten gewohnten Form zur Verfügung stehen.
Andere Systeme erlauben es, mit den Inhalten von XML-Dokumenten zu arbeiten, indem sie durch ein
so genanntes Mapping deren hierarchischen Aufbau in eine flache relationale Struktur abbilden. Um
die auf mehrere Tabellen verteilten Daten dann mithilfe von verschachtelten Joins wieder in
zusammenhängende Inhalte zu bringen, ist allerdings ein enormer Aufwand zur Laufzeit notwendig.
Zur besseren Abbildung der logischen Hierarchie innerhalb eines XML-Dokuments eignen sich
Datenbanken, die auf einem von Haus aus hierarchischem Objektmodell aufbauen – so jedenfalls der
Ansatz der Verfechter dieser Technik. In der postrelationalen Datenbank Caché erfolgt die
Definition von Datenstrukturen grundsätzlich als objektorientierte Klassenhierarchie mit Vererbung
von Ober- zu Unterklassen. Zwischen dieser Klassenhierarchie und der verschachtelten Darstellung
als XML lassen sich eindeutige Zuordnungen treffen, durch die sich auf Knopfdruck ablauffähige
Schnittstellen für den Import und Export entsprechender XML-Daten schaffen lassen. Entwickler
müssen XML also nicht manuell auf die interne Datenbankstruktur abbilden, können die Darstellung
allerdings durch Parameter beeinflussen (etwa um die Elementbezeichnungen für XML zu bestimmen oder
um zu wählen, ob bestimmte Daten als Subelemente oder als Attribute dargestellt werden sollen).
Die Daten jeder Caché-Klasse lassen sich auf diese Weise als XML-Dokumente in einem definierten
Format (oder mehreren verschiedenen Formaten) verfügbar machen. Umgekehrt ist es möglich,
bestehende XML-Dokumente in diesem Format automatisiert einzulesen und daraus Caché-Objekte zu
erzeugen. Auf die Daten kann dann über das Objektmodell der Datenbank oder über SQL mittels ODBC
oder JDBC zugegriffen werden. Einzig Methoden lassen sich in XML nicht wiedergeben – dies bleibt
den Webservices vorbehalten.
XML und Webservices bieten viele Vorteile für die Kommunikation zwischen Anwendungen und
Datenbanken. Entwickler sollten jedoch den Aufwand für die Anpassung der hierarchischen XML-Sicht
an die relationale Sicht herkömmlicher Datenbanken nicht vernachlässigen. Postrelationale
Datenbanken mit einem Objektmodell mit nativer Unterstützung für XML und Webservices bieten
offensichtliche Vorteile, die es abhängig vom Anwendungsfall näher zu untersuchen lohnt.