XML überfordert RDBMS
von Karin Oppel,
Produktmarketing-Manager Tamino, Software AG
Mit XML hat sich ein neuer Standard etabliert, der nicht nur die Kommunikation im
Web verändert, sondern auch die Datenhaltung. Die Speicherung von XML-Objekten mittels
RDBMS oder ODBMS ist zwar möglich, aber nicht optimal. Gerade für
Electronic-Business-Anwendungen werden spezielle XML-Informationsserver mit neuer
Technologie benötigt.
Innerhalb weniger Jahre hat sich das Web zu einem universellen
Kommunikationsstandard entwickelt, der mittlerweile alle Bereiche des Lebens
beeinflußt.
Aus der Geschäftswelt ist das Web schon heute nicht mehr wegzudenken: Hat der
digitalisierte Briefwechsel in kürzester Zeit die Unternehmenskultur nachhaltig
verändert, so werden sich allem Anschein nach elektronischer Handel und elektronische
Geschäftsverbindungen noch weit stärker auswirken.
Für die IT-Branche bedeutet diese Entwicklung eine gewaltige
Herausforderung. Was immer
Unternehmen sich in Verbindung mit dem Web vornehmen sie brauchen dafür neue
Technologien: neue Kommunikationstechniken, neue Anwendungen, eine neue
Informationsverarbeitung. Denn immer mehr zeigt sich, daß die Adaption herkömmlicher IT
auf die neue Welt des Web an Grenzen stößt. Ohne diese bewährten Techniken hätte die
IT sicher niemals in die Weiten des Web vorstoßen können. Aber hier einmal
angekommen,
müssen neue Wege beschritten werden, um die aktuellen Anforderungen bewältigen zu
können.
Von HTML zu XML
Eine dieser Technologien, die das Web erst erschlossen haben, ist HTML. HTML ist
die Beschreibungssprache, mit deren Hilfe die Web-Browser die grafische Oberfläche des
Web erzeugen. Ohne HTML gäbe es kein Web. Jedoch reichen die Möglichkeiten von HTML für
neue Aufgabenstellungen wie Electronic Business nicht mehr aus. Das ist die Stunde für
neue Technologien.
XML wurde für Informationen konzipiert, wie sie im Web typischerweise
vorliegen: dokumentenorientiert, hierarchisch strukturiert, mit einer großen Bandbreite
verschiedener Inhalte. Mit XML lassen sich Informationen gerade im Web optimal
beschreiben. Aber wie wer-den sie weiterverarbeitet? Herkömmliche Technologien sind
dafür nur bedingt geeignet. SQL beispielsweise wurde für ganz andere Zwecke konzipiert,
und Versuche, SQL für XML zurechtzubiegen, schneiden XML von dem ab, was es für seinen
weiteren Weg mit am dringendsten braucht: Leistungsfähigkeit und Verfügbarkeit.
XML ist eine standardisierte Sprache zur Beschreibung von Daten auf der
Basis von SGML und geht weit über den bislang im Web hauptsächlich verwendeten
HTML-Standard hinaus. Anders als HTML ist XML in der Lage, Daten nicht nur nach formalen
Kriterien (wie Überschrift, Textkörper usw.) zu strukturieren, sondern auch nach
inhaltlichen Gesichtspunkten. Um den ganz unterschiedlichen Inhalten des Web Rechnung zu
tragen, ist XML dabei so flexibel, daß die jeweiligen inhaltlichen Strukturmerkmale von
Benutzergruppen selbst definiert werden können. Aufgrund seiner Einfachheit und großen
Flexibilität ist XML das ideale Medium für die Beschreibung von
Electronic-Business-Daten.
XML speichern
Die große Flexibilität von XML erschließt diesem Standard ein Einsatzgebiet,
das weit über HTML hinausreicht. XML kann nicht nur komplexe hierarchische Informationen
verarbeiten, sondern läßt sich auch für kommerzielle Transaktionen einsetzen. Aus
Anwendungssicht ist XML das, was TCP/IP aus Sicht der Kommunikation ist. Beide Standards
zusammen bilden eine Grundlage für die Nutzung des Web für Electronic Business. Vor
diesem Hintergrund müssen zwei Forderungen an eine XML-Infrastruktur gestellt werden:
XML-Informationen müssen gegebenfalls in großem Umfang und
auch für Transaktionen schnell und sicher zur Verfügung gestellt
werden.
XML-Informationen müssen mit vorhandenen Unternehmensdaten integriert
werden.
Schon wer HTML-Seiten in einem Filesystem verwalten will, wird sich bei
zunehmendem Umfang der Web-Seiten mit einem gewaltigen Verwaltungsaufwand für Pflege und
Aktualisierung konfrontiert sehen. Für die weitaus komplexeren XML-Dokumente sind dagegen
leistungsfähigere Systeme nötig, vor allem wenn man sie im Rahmen von
Electronic-Business-Anwendungen nutzen möchte. Nach dem derzeitigen Stand der Technik
bieten sich für die Speicherung und Verwaltung der XML-Dokumente Datenbanken an, nicht
zuletzt weil man deren Basis-Features, wie Konsistenzsicherung, Wiederanlauffähigkeit,
Recovery usw., nutzen kann.
Am einfachsten wäre es natürlich XML-Objekte in einer bestehenden
Datenbank lediglich als Character Large Objects zu speichern. Dabei
wür-den
die XML-Befehle (Tags) in diesen Objekten lediglich als Fließtext
behandelt, die mit den
Methoden der Volltextsuche erschlossen werden könnten. Außerdem kann eine Datenbank
zusätzliche Möglichkeiten für die Indizierung der Informationsobjekte und damit
flexiblere Zugriffspfade bereitstellen. Da-mit wäre der Zugriff auf diese Objekte sowohl
über die Strukturen der Objekte (structure-based retrieval) als auch über ihre Inhalte
(content-based retrieval) möglich. Allerdings müßten auf diesem Weg sämtliche
relevanten Informationen in separaten Feldern oder Tabellen verwaltet
werden. Die
hierarchischen Strukturen von XML-Objekten könnten auf diese Weise jedoch nicht
abgebildet werden. Eine derartige Lösung ließe sich mit den gegenwärtig verfügbaren
Mitteln zwar relativ einfach umsetzen, eine performante Bewältigung auch größerer
Datenvolumina oder gar von XML-Transaktionsdaten ließe sich so keinesfalls
erreichen.
XML und SQL
Es ist naheliegend, für die Speicherung von XML-Informationen herkömmliche
Datenbanken einzusetzen, zum Beispiel relationale Datenbanken, die mit SQL-Strukturen
arbeiten. Dafür müssen XML-Objekte, die meist komplexe Strukturen aufweisen, in
tabellanartige, relationale Strukturen umgesetzt werden. Diesen Weg gehen heute manche
Anbieter relationaler Datenbanken.
Technisch ist die Verwendung solcher SQL-Datenbanken für XML-Objekte ohne großen Aufwand
möglich. Für die Modellierung von Relationen zwischen SQL-Tabellen bietet XML zunächst
allerdings keine geeignete Infrastruktur. Darüber hinaus stellt die fehlende
Typisierungsmöglichkeit, also zum Beispiel die Definition von Feldeigenschaften wie
'numerisch', eine Einschränkung bei der Beschreibung gegebener SQL-Datenstrukturen mit
XML dar. Zur Lösung dieses Problems gibt es bereits einige Ansätze. Der
vielversprechendste ist "XML-Data", ein Vorschlag zur Beschreibung
vollständiger Abbildungen von SQL-Strukturen gemäß XML, der beim WWW-Konsortium als
"technical note" eingereicht wurde.
Umgekehrt ist die Implementierung beliebiger
Baumstrukturen, wie sie von
XML unterstützt werden, in einem relationalen Datenmodell zwar machbar, stellt aber in
der Praxis ein kaum überschaubares Problem dar. XML erlaubt eine hierarchische Staffelung
von Informationen in beliebiger Tiefe. Um dies in relationalen Datenbanken
wiederzugeben,
müßten umfangreiche Tabellenverknüpfungen nicht nur eingerichtet, sondern auch
verwaltet werden. In der Praxis ergibt sich deshalb hier schon nach relativ wenigen Ebenen
ein massives Performanceproblem. Auf diese Weise könnten also wieder nur sehr einfache
XML-Objekte verwaltet werden eine derartige Einschränkung widerspräche jedoch
fundamental der ganzen XML-Philosophie.
Ein anderes gravierendes Problem stellen die Locking-Mechanismen der
RDBMS dar. Locking auf Dokumentebene wird hier nicht unterstützt Dokumente spielen
in der Methodologie der RDBMS ja auch keine Rolle. Für das Update eines in einem RDBMS
abgebildeten XML-Dokuments müßten zahlreiche Locks in vielen Tabellen kon-trolliert
werden. Ein weiterer Grund für Performanceverluste und das Entstehen eines
enormen,
internen Verwaltungs-Overhead.
Außerdem entzieht sich die typische Dokumentenstruktur vieler mit Hilfe
von XML modellierter Informationsobjekte, wie zum Beispiel längere Textelemente, Bilder
und komplexe Querverbindungen, einer unmittelbaren Darstellung mit relationalen Mitteln,
ganz abgesehen von der Möglichkeit, in XML auch nicht vordefinierte Tags zu verwenden. Es
ist ja gerade der große Vorteil von XML, für Objekte dieser Art eine bessere Abbildung
zu liefern als "reines" SQL. Diese Problematik ist im übrigen davon
unabhängig, an welcher Stelle der Datenbank die Konvertierung von XML ins relationale
Modell erfolgt, ob als Schnittstelle oder nativ.
XML und ODBMS
Die Welt der hierarchisch strukturierten XML-Objekte legt auf den ersten Blick
eine direkte Verbindung mit objektorientierten Datenbanken (ODBMS) nahe. Diese bieten ja
für XML eine fast generische Möglichkeit, die Strukturen persistenter Objekte in einen
Server zu implementieren. Damit könnten derartige Objekte an einer transparenten
Schnittstelle mit XML bereitgestellt und von einer Vielzahl von Benutzern lokal oder über
das Web genutzt werden. Allerdings werden die bekannten Nachteile der ODBMS nicht
aufgehoben, wenn die Daten über eine XML-Schnittstelle laufen. ODBMS sind in der Praxis
für hohen Durchsatz und große Datenmengen nicht brauchbar, sie eignen sich vor allem
wenig für Transaktionsaufgaben, die gerade im Electronic Business gefordert
werden. Zudem
sind ODBMS aufwendig zu implementieren und fallen in ihrer Leistungsfähigkeit erst recht
zurück, wenn es darum geht, "Altdaten" aus RDBMS oder gar aus
File-Systemen zu integrieren. ODBMS konnten sich daher bisher nur in Spezialaufgaben bewähren
XML-Objekte aber werden zukünftig für die Verwendung in den unterschiedlichsten
Geschäftsabläufen bereitgestellt werden müssen.
Die ideale Grundlage für die Speicherung und den Austausch
verschiedenartiger XML-Objekte bietet ein XML-Server. Vor allem durch die Möglichkeit der
impliziten Datenstrukturierung ergibt sich eine enorme Flexibilität, die gerade für
Electronic-Business-Anwendungen gebraucht wird. Informationsabfragen werden dabei nicht
als eine Abfolge von SQL-Queries formuliert, sondern als URL an den Server
geschickt. So
lassen sich in einer einzigen Abfrage nicht nur relationale Datenbanken, sondern
gleichzeitig auch andere Quellen nutzen, beispielsweise Bilddateien. Komplexe
Objekte, wie
Patientendaten einschließlich Röntgenbilder können so sehr effizient
verwendet werden. Der Einsatz von XML bietet hier eine offene Struktur und bewahrt vor den
Problemen proprietärer Ansätze.
Natürliches XML
Manche Datenbankhersteller haben ihre relationalen oder objektorientierten
Datenbanksysteme mit Konvertern ausgestattet oder werden dies tun, um XML-Informationen
für die Speicherung in ihre gegebenen Strukturen umzusetzen. Die Software AG beschreitet
dagegen den "natürlichen" Weg. Sie hat mit Tamino einen
"Informationsserver" entwickelt, der von Grund auf auf XML ausgerichtet
ist.
Tamino verfügt über einen XML-Kern, der XML-Informationen in ihrer natürlichen Struktur
speichert. Tamino muß keine zeitraubende Umformatierung in andere Strukturen wie SQL
vornehmen. Der Vorteil wird hier eindeutig in höherer Performance
liegen, was für
transaktionsorientierte Anwendungen wichtig ist und gerade solche werden ja für
die rapide wachsenden Anforderungen im Electronic Business benötigt.
Ein Schwachpunkt bisheriger XML-Systeme ist die
Transaktionsverarbeitung.
Traditionell regieren im Web noch Einzeldokumente, mehr oder wenig komplexe
Web-Seiten,
deren Verwaltung zwar aufwendig, selten aber zeitkritisch ist. Dies ändert sich mit
Electronic Business, wenn Transaktionen benötigt werden, um kommerzielle Operationen wie
Bestellungen, Buchungen usw. durchführen zu können. Auf Basis des zustandslosen
HTTP-Protokolls läßt sich das freilich nicht realisieren. Tamino stellt deswegen eine
Transaktionslogik auf Grundlage klassischer ACID-Transaktionen erstmals auf
Dokumentenebene zur Verfügung. Ganz im Sinne der XML-Logik ist dabei Locking für ganze
Dokumente möglich, so daß User auf ein Dokument, das in Bearbeitung
ist, nicht zugreifen können. Mit einer XML-Datenbank auf SQL-Basis wäre dieses Konzept nur mit größtem
technischen Aufwand und folglich mit eingeschränkter Leistungsfähigkeit
umsetzbar.
Umgekehrt wird es natürlich auch mit XML-Speichersystemen praktisch
sein, wenn SQL-Daten in ihrem eigenen Format gespeichert werden können. Deswegen hat die
Software AG Tamino, ihrem neuen XML-Informationsserver, zusätzlich eine SQL-Engine
eingebaut. Diese kann sowohl tabellarische Daten aufnehmen, die in XML-Dokumenten
eingebettet sind, als auch für die Unterstützung von Anwendungen dienen, die auch
weiterhin mit SQL auskommen und auf dem gleichen Rechner laufen wie der XML-Server. So ist
aus Tamino nicht bloß eine XML-Informationsspeicher, sondern eine ganze Architektur rund
um einen XML-Server geworden. Ein vielversprechendes, ganz neues Konzept, dessen Umsetzung
in praktische Projekte spannend wird.
|