20.16 XML-Datenbanken
XML-Dateien sind in heutigen Anwendungen gang und gäbe. Doch wo kommen diese Daten her? Sicherlich wird ein Teil dynamisch von Hand erzeugt, doch ein anderer Teil bindet direkt die Daten aus einer Datenbank an. Ist die Datenbank relational, so müssen die XML-Daten transformiert werden. Viel effektiver ist es, gleich die XML-Dateien in einer XML-Datenbank abzulesen. Ihre Aufgabe soll es sein, die Daten wirtschaftlicher zu verwalten und Zugriff auf einzelne Elemente zu geben. Umkodierungen vom relationalen Modell in XML-Strukturen sollten die Performanz heben. Natürlich sollen auch Anfragen mit einer standardisierten Anfragesprache möglich sein.
Zur Speicherung der XML-Daten gibt es zwei unterschiedliche Ansätze: zum einen native XML-Datenbanken, die direkt XML speichern, und Hybriddatenbanken, vergleichbar mit objektrelationalen Datenbanken. Sie können zwar XML-Daten entgegennehmen, speichern sie aber selbst in Tabellen. Zu den Hybridlösungen zählen etwa der Microsoft SQL-Server sowie die Datenbank von Oracle.
20.16.1 Apache Xindice
Es gibt mittlerweile eine Reihe von nativen XML-Datenbanken, darunter einige freie, die Open-Source sind. Eine bekannte Datenbank ist Apache Xindice 1.0 (http://xml.apache.org/xindice/). Die in Java implementierte XML-Datenbank benutzt XPath (http://www.w3.org/TR/xpath) als Anfragesprache und XML:DB XUpdate >http://www.xmldb.org/xupdate/) als Update-Sprache. Xindice nutzt die XPath-Implementierung von Xalan. XML:DB ist eine herstellerneutrale API, vergleichbar mit JDBC. Xindice ist eine Core-Level-1-Implementierung und sehr einfach zu benutzen. Nach der Installation wird ein Server gestartet, und dann können Java- oder Kommandozeilenprogramme neue Einträge machen und XML-Dateien importieren. Allerdings sieht sich Xindice bisher nicht als System für riesige Dokumente, eher für viele kleine Minidokumente.
Für JDBC ist es geläufig, dass auf die Datenbank auch remote zugegriffen werden kann. Um entfernt auf Xindice zuzugreifen, sind mehrere Wege möglich. Die Basis von Xindice ist CORBA, doch in der Regel sind andere Wege leichter und effizienter, etwa der Zugriff über XML-RPC. Von Kimbro Staken und Kurt Ward stammt das Xindice XML-RPC-Interface (http://xindice-xmlrpc.sourceforge.net/. Damit wird die Datenbank XML-RPC fähig. Die Bibliothek ist sehr klein und wird vermutlich in der Zukunft in den Kern integriert. Das RPC-Interface steht wie Xindice unter der Apache Style Open-Source-Lizenz. Getestet ist es mit Clients in Java, PHP, Perl und Applescript.
20.16.2 eXist und Weitere
Eine weitere XML-Datenbank ist eXist, die unter der GNU LGPL steht (http://exist-db.org/). Auf die Datenbank lässt sich entfernt noch flexibler als Xinidice zugreifen: HTTP, XML-RPC, SOAP und WebDAV. Auch eXist kann mit XPath umgehen und unterstützt XML:DB.
Eine Übersicht über XML-Datenbanken gibt die Web-Seite http://www.rpbourret.com/xml/XMLDatabaseProds.htm von Ronald Bourret.
|