Tamino – eine XML- basierte Datenbank

Werbung
Tamino – eine XML- basierte Datenbank
Odilo Oehmichen
[email protected]
Universität Konstanz
Sommersemester 2001
1 Kurzfassung
Tamino ist eine XML-native Datenbank, die von der Software AG entwickelt wurde. Dabei
handelt es sich nicht um eine bestehende relationale Datenbank, die im nachhinein auf XMLaufgerüstet, wurde, sondern um eine komplett in XML entwickelte Datenbank. Wie Tamino
aufgebaut ist und wodurch sich Tamino auszeichnet, ist Inhalt dieser Seminararbeit.
2 Einleitung
XML ist in aller Munde. Es gibt kein Anwendungsgebiet, in das XML noch nicht eingedrungen
ist. Dabei sind die Vorteile dieser Metasprache offen bekannt: XML ist textbasiert, neutral in
seiner Präsentation, sprachunabhängig und ermöglicht leichten Datenaustausch, um nur
einige Vorteile zu nennen.
Längst hat die Wirtschaft XML entdeckt, um den Dokument- und Datenaustausch intern und
extern zu erleichtern. Dabei ist sie natürlich auch an einer persistenten Speicherung dieser
Dokumente interessiert, wo sich bei großem Datenaufkommen sehr schnell eine Datenbank
aufdrängt.
Gängige Datenbankhersteller haben also konsequenterweise ihre Datenbanken auf XML
aufgerüstet.
Wie lassen sich XML-Dokumente in relationalen Datenbanken speichern?
Hierzu gibt es zwei Ansätze:
Man kann das ganze XML-Dokument einfach in einer einzigen Zelle speichern, als
sogenanntes BLOB (binary large object). Dieses macht jedoch die Suche nach Elementen im
XML-Dokument fast unmöglich, da das Parsen von Textdokumenten doch recht zeitintensiv
ist.
Der zweite Ansatz bildet den DOM-Baum des XML-Dokuments in Relationen ab. Es ergeben
sich pro Dokument mehrere Tabellen, die bei einer Query durch (kostenintensive) Joins
wieder zusammengefügt werden müssen.
Betrachtet man ausserdem XML-Dokumente bezüglich ihrer strukturellen Merkmale, so kann
man sie grob in zwei Kategorien einteilen:
• datenzentrischen Dokumente: Diese besitzen meistens eine gleichmäßige, reguläre,
nicht sonderlich tief verschachtelte Struktur. Die enthaltenen Daten sind eher
feingranuliert und lassen sich gut aufspalten. Sie sind also leicht in Relationen
transformierbar. Außerdem spielt die Abfolge von Geschwisterelementen keine Rolle.
Als Beispiel lassen sich Speisepläne oder Flugdaten angeben.
• Dokumentzentrische Dokumente: Sie sind eigentlich das genaue Gegenteil vom
dokumentzentrischen Typ: Da sie meistens eine unregelmäßige, tief verschachtelte
1
Struktur besitzen und die Abfolge der Elemente signifikant ist, lassen sie sich nicht
sonderlich gut in Relationen abbilden.
Als Beispiel lassen sich XHTML-Dokumente aufführen.
Wir haben also eine Dokumentklasse, die sich sehr leicht auf das bisherige Konzept der
Datenbanken abbilden läßt und eine Klasse für die das überhaupt nicht gilt. Außerdem
wissen wir, daß das Abspeichern von XML-Dokumenten in Datenbanken und das spätere
Extrahieren sehr kostenintensiv ist.
Man gelangt zu dem Schluss, daß relationale Datenbank für das Arbeiten mit XMLDokumente nicht geeignet sind.
Als Konsequenz aus dieser Folgerung hat die Software AG aus Darmstadt einen ganz
anderen Ansatz verfolgt: Sie hat mit ihrem Produkt TAMINO eine XML-basierte Datenbank
entworfen.
3 Tamino
3.1 Allgemeines
Der Name Tamino steht einerseits für Transaction Architecture for the Management of
INternet Objects und andererseits soll durch den Namen aber auch zum Ausdruck kommen,
was Tamino in der Mozart´schen Zauberflöte symbolisiert: nämlich den Helden – hier in
Form einer XML-basierten Datenbank, die sich in der Welt der großen, etablierten
relationalen Datenbanksysteme heroisch schlagen soll.
3.2 Konzept
Das Konzept von Tamino basiert im Grunde auf drei Säulen:
• Tamino ist XML-nativ, das heißt, daß alle Daten nicht auf das relationale DatenbankModell abgebildet werden, sondern in XML gespeichert werden. Die Software AG
verspricht sich davon einen schnelleren und zuverlässigeren Zugriff auf XML-Dokumente
als dies Datenbanken liefert können, die nachträglich auf XML aufgerüstet wurden.
• Alle Daten werden next to the Web gespeichert. Da die Zielgruppe von Tamino ganz
klar im E-Commerce liegt und http als das Grundgebäude des Internets betrachtet
werden kann, wurde Tamino so konzipiert, daß die Datenbank als Modul im Webserver
integriert ist und alle Anfragen über diesen laufen.
• Tamino besitzt Gateway-Funktionalität: Um sich neben den klassischen RDBMS
behaupten zu können, muß Tamino zusätzlich das Ansprechen von bereits bestehenden
Datenbanken erlauben. Dies geschieht in einer Art und Weise, daß der Benutzer nicht
bemerkt, von welchen Quellen die von ihm angeforderten Daten stammen.
Bisher existieren von Tamino Versionen, die auf Windows NT, Windows 2000 und SUN
Solaris 7 laufen. Unterstützt werden Webserver, die entweder die Apache API, die ISAPI
oder die NSAPI implementieren.
2
3.3 Architektur
Die Architektur von Tamino wird in Abbildung 1 dargestellt.
Abbildung 1 Tamino Server Übersicht
Zentraler Bestandteil des Tamino XML Server ist die X-Machine. Sie ist für das Speichern
und Auffinden von XML-Dokumenten verantwortlich. Auf ihre einzelnen Komponenten werde
ich im nächsten Abschnitt ausführlich eingehen.
Der X-Port stellt die Implemenation des Konzeptes „Next to the Web“ dar. Er ist als Modul im
Webserver integriert und erhält alle Anfragen, die als URL an den Tamino Server gerichtet
sind und gibt diese weiter an die X-Machine.
Der X-Node erlaubt via ODBC den Zugriff auf bereits bestehende relationale Datenbanken
(siehe oben: Gateway-Funktionaltität). Seine Aufgabe besteht darin, in Echtzeit Daten in
XML zu konvertieren und diese an die X-Machine zurückzugeben. Wie diese Konvertierung
zu geschehen hat, steht unter anderem in der Data Map. Wenn die X-Machine als Herzstück
bezeichnet wird, so nennt man die Data Map gerne das Gehirn bzw. die Wissensbasis vom
Tamino XML Server. Hier befinden sich sämtliche DTDs, XML-Metadaten, style-sheets, die
definieren, wie XML-Objekte gespeichert werden sollen, oder wie Daten nach XML
abgebildet werden sollen.
Die Data Map enthält eine Sammlung vorabdefinierter DTDs, gegen die jedes neu
ankommende XML-Dokument geprüft wird.
Gespeichert werden die XML-Dokumente dann im XML-Store.
Des weiteren sorgt die X-Tension dafür, daß XML-Dokumente über externe Programme
geparst werden können, wobei alle gängigen Programmiersprachen unterstützt werden.
Als nächstes werde ich den Aufbau der X-Machine näher erläutern. Sie ist in Abbildung 2
schematisch dargestellt.
3
Abbildung 2 X-Machine
Wie aus Abbildung 2 hervorgeht, besteht die X-Machine aus folgenden Komponenten:
Dem XML-Parser, dem Object Processor, dem Query Interpreter und dem Object Composer.
Der XML-Parser stellt die syntaktische Korrektheit von ankommenden XML-Dokumenten
sicher. Ist das der Fall, so gibt er dieses an den Object Processor weiter. Der wiederum hat
die Aufgabe, das Dokument im XML-Store abzulegen oder aber, wenn es sich um SQLDaten handelt, sie in SQL-Tabellen zu speichern.
Auf der Abfrageseite sorgt der Query Interpreter dafür, ankommende Querys in ihre
Einzelteile zu zerlegen und sie dann an den Object Composer weiterzuleiten, wo sie
ausgewertet werden. Der Object Composer kümmert sich um die Daten. Er holt sich diese, je
nach dem wo sie gespeichert sind, entweder direkt aus dem XML Store oder gibt die Abfrage
weiter an den X-Node. Sind alle Daten zusammen, generiert der Object Composer den XML
Output, den er zurückgibt.
3.4 Queries
Wie sieht nun eine Query aus, die an den Tamino Server geschickt wird?
Die Software AG hat als Abfragesprache eine Eigenentwicklung von XQuery verwendet.
XQuery ist eine vom W3C verabschiedete Query-Sprache für XML-Dokumente.
In Tamino eine Query abzusetzen, bedeutet eine URL zu konstruieren. Diese URL besteht
aus folgenden Komponenten:
1. dem Server Namen, auf dem die Datenbank liegt
2. dem Tamino-Server Namen
3. dem Datenbank Namen
4. dem Collection Namen (auf die Collection werde ich im nächsten Kapitel eingehen)
5. und einem Kommando, das auf der Datenbank ausgeführt werden soll. Dies besteht
in der Regel aus einem Keyword ( zum Beispiel _xql, _update,...) und einem
Ausdruck.
4
Hierzu ein kleines Beispiel.
Nehmen wir an, wir hätten in unserer Tamino-Datenbank ein XML-Dokument, das aus den
Daten aller Studenten bestünde. Wir wollen nun alle Studenten extrahiert haben, die
zwischen 1976 und 1978 geboren wurden. Dann sieht unsere Query bzw. URL wie folgt aus:
http://localhost/tamino/myDB/myCollection/?_xql=/student/birth[year
between ´1976´,´1978´]
4 Vergleich zum klassischen RDBM
4.1 Gruppierung von Daten
Um eine Indexierung von Daten möglich zu machen, ist eine Gruppierung derselben
notwendig.
Dies geschieht bei Tamino durch die Einführung des sogenannten Open Contents Modell.
Dieses Modell sieht die Definition von sogenannten Collections vor. Eine Collection besteht
aus einer oder mehreren Dokument-Typen, denen wiederum ein (offenes) Schema
zugewiesen wird.
Tamino weist nun jedem zu speichernden Dokument auf Grund seines Root-Elements einen
Dokumenttyp zu, auf dessen Schema es passen muß. Es können jedoch noch zusätzliche
Attribute auftreten – deshalb der Name Open Content Modell.
Abbildung 3 zeigt dieses Modell.
Abbildung 3 Collections
Anhand des folgenden Beispiels soll das Konzept des Open Contents Modell noch einmal
erläutert werden.
Es gelte das in Abbildung 4 definierte Schema.
5
Abbildung 4
Wird nun das folgende XML-Dokument an Tamino geschickt, so wird dieses auf Grund des
eben definierten Schemas akzeptiert:
<Buch Jahr=“1998“>
<Titel> Inside XML </Titel>
<Verlag> ABC Verlag</Verlag>
<Autor Alter=“42“>
<Name>Kai Hacker</Name>
<Land>Deutschland</Land>
</Autor>
</Buch>
Buch hat ein undefiniertes Attribut Jahr und ein nicht deklariertes Kind Verlag. Autor hat
ein nicht deklariertes Attribut Alter. Trotzdem akzeptiert Tamino dieses Dokument, da die
Mindestanforderungen des Schemas erfüllt sind. Wäre nun kein Autor angegeben, so würde
das Dokument zurückgewiesen werden, da das Schema mindestens einen Autor verlangt.
Ein solches Schema für ein Element zu definieren, ist sinnvoll, wenn eine der folgenden
Kriterien erfüllt ist:
1. auf dem Element soll ein Index definiert werden
2. das Element bzw. das Attribut soll auf eine externe Datenquelle abgebildet werden
3. für das Element sollen Zugriffsrechte definiert werden
4. die Existenz eines Elements wird gefordert
5. eine der Bedingungen 1-4 gilt für ein Kind des Elements
4.2 Indexierung
Wie Tamino nun aus dem oben definierten Open Contents Modell eine Indexierung auf
Elementen produziert, wird von Software AG nicht genauer erläutert. Was aus der
6
angegebenen Literatur hervorgeht, ist, daß Tamino die folgenden drei Indexierungsverfahren
unterstützt:
1. das value-based indexing: Dieses aus der Welt der traditionellen
Datenbanksystemen her bekannte Indexierungsverfahren wird benutzt, um den
Zugriff auf bestimmte Werte in Attributen oder Elementinhalte zu beschleunigen.
2. das text-indexing: Dieses Indexierungsverfahren soll es ermöglichen, zum Beispiel
im folgenden Beispiel den String XML zu finden.
<text>
<bold>X</bold>ML ist super
</text>
3. das struktural indexing: Hier wird bei einer Query speziell auf die Struktur eines
Dokuments geachtet. Haben wir zum Beispiel ein Dokument mit allen Städten
Europas. So können wir nach Städten suchen, die ein Element besitzen, das Strand
heißt.
5 Tamino aktuell
Die momentane Entwicklung sieht eine Portierung des Tamino Servers auf Linux vor.
Außerdem ist man bei der Software AG in Darmstadt dazu bereit, sich an neue Standards
anzupassen, die vom W3C bezüglich einer XML-Query-Sprache herausgebracht werden.
Fragt man sich, wer denn Tamino heute schon nutzt, so erhält man durchaus renommierte
Kunden aus der Industrie und Forschung.
So nutzt die Daimler-Chrysler AG die XML-Datenbank zum Beispiel, um interne Prozesse zu
optimieren.
An der Universität Freiburg ist auf Basis von Tamino eine Forschungsdatenbank entstanden,
die Artikel und Paper von Unis aus ganz Deutschland verwaltet.
Ein dritten Bereich deckt die Firma LOON ab, die eine auf Tamino basierte E-CommercePlattform für den B2B-Bereich anbietet, auf der Firmen Handel im Internet betreiben können.
6 Zusammenfassung
Das hier vorgestellte Konzept einer XML-Datenbank ist sicherlich ein interessantes Projekt.
Ob es sich jedoch gegen die mächtigen und über viele Jahre hinweg optimierten relationalen
Datenbanken auf diesem Gebiet durchsetzen wird können, wird sich zeigen. Da sowohl
Performance-Werte, wie auch Werte bezüglich der Skalierbarkeit fehlen und die vorhandene
Literatur auch sehr einseitig positiv bestimmt ist, kann über die wahre Stärke von Tamino nur
gerätselt werden.
7 Literatur
[Schö00a] Harald Schöning und Jürgen Wäsch. Tamino – An Internet Database System. In
Carlo Zaniolo, Peter C. Lockemann, Marc H.Scholl, Torsten Grust, Hrsg.,
Advances in Database Technology – EDBT 2000, Konstanz, Germany, March
27-31, 2000, Proceedings, Seiten 383-387.
Springer-Verlag, Lecture Notes in Computer Science, vol.1777, 2000
[Schö00b] Harald Schöning. Tamino – a DBMS Designed for XML. In IEEE 2001.
[WWW01] Tamino im Web. www.softwareag.de/tamino
[Zie01]
Cai Ziegler. XML und Datenbanken: Einblick in Tamino – Weltendämmerung. iX
06/2001, Seiten 56-61.
7
8
Herunterladen