| |
3 Speicherung von XML-Daten
Nach dem ausführlichem Überblick über Anfragesprachen für XML, im vorherigen Kapitel, soll nun
im letzten Teil dieser Arbeit ein kleiner Einblick in die Möglichkeiten und Verfahren der möglichst
effizienten Speicherung von XML-Daten gegeben werden. Dabei wird sich hier auf die Abbildung von
XML-Dokumenten auf relationale Datenbanksystem konzentriert, da diese z.Z. am stärksten genutzt
werden.
3.1 Konzepte
Um XML-Daten effizient zu speichern und zu verwalten, gibt es drei mögliche Konzepte.
1. Es wird ein spezielles Datenbankmanagementsystem für XML-Daten entworfen. Hierfür
existieren bereits erste Produkte, sowie eine Vielzahl von Forschungsarbeiten. Die Systeme
stehen jedoch alle noch in der Entwicklung. Ein weiteres Problem bei diesem Ansatz ist Frage,
wie die Daten aus vorhandenen Datenbanksystemen integriert werden.
2. Mit Hilfe der Objektmodellierung für XML [DOM] können die XML Daten in bereits
bestehende objektorientierte Datenbanksysteme eingegliedert werden. Auch für dieses Ansatz
existieren Forschungsarbeiten und Konzepte. Objektorientierte Datenbanken sind jedoch noch
nicht voll ausgereift, und daher nicht sehr etabliert.
3. Beim letzten Konzept werden die XML-Daten auf die etablierten und weit verbreiteten
relationalen Datenbankmanagementsysteme (RDBMS) abgebildet. Die mengenorientierte
Verarbeitung von Daten ist durch ihre Übersichtlichkeit und Effizienz enorm erfolgreich.
Hiermit gewinnt dieses Konzept einen signifikanten Vorteil gegenüber den anderen. Bereits
vorhandene Datensätze können ohne Mehraufwand weiter genutzt, und mit den XML-Daten
verknüpft werden. Daher wird sich in dieser Arbeit auf dieses Konzept beschränkt.
3.2 Mapping auf RDBMS
Viele Arbeiten konzentrieren sich auf die Optimierung von Algorithmen, die XML-Daten in eine
möglichst effiziente relationale Datenbankstruktur abbilden (mapping). Sie nutzen in Anlehnung an
das Document Object Model (DOM) dabei die Graphenstruktur der XML-Dokumente, um diese in ein
geeignetes Schema zu übertragen. Dabei können die Algorithmen in zwei Kategorien eingeteilt
werden.
Die erste beinhaltet Verfahren die die möglicherweise vorhandenen Dokumentendefinitionen
unbeachtet lassen, und die XML-Daten mehr oder weniger direkt in die Datenbank
übernehmen.
Bei der Zweiten, die die sogenannten Inlining Techniken enthält, werden hingegen
vorhandene Strukturbeschreibungen (DTD / XMLSchema) genutzt, um so ein beständigeres
Datenbankschema zu entwickeln.
Beide Techniken haben ihre Vor- und Nachteile.
Auf dem ersten Blick scheinen die Inlining-Techniken die bessere Alternative zu sein. Diese
vereinfachen jedoch alle in ihrem ersten Schritt die DTD, um Schwierigkeiten bei der Umsetzung von
Attributen und Elementen auf ein relationales Schema zu minimieren. Dabei gehen jedoch einige
Informationen, insbesondere die Reihenfolge von Elementen, verloren. Weiterhin sind leider bisher
noch keine Algorithmen entwickelt worden, die Dokumentdefinitionen von XMLSchema nutzen
können. Somit müssen alle Daten in String-Typen in die Datenbank übertragen werden.
Die direkte Umsetzung der XML-Dokumente, ohne Verwendung der DTD, ist hingegen schnell
durchführbar, und die entsprechenden Algorithmen sind leicht zu implementieren. Jedoch sind die
resultierenden Datenbankschemata oft unübersichtlich und nicht sehr perfomant, da die Anzahl der
Relationen sehr hoch ist. Trotzdem soll im folgenden solch ein Verfahren kurz vorgestellt werden, um
einen ersten Einblick zu erlangen.
17
|  |
|
| |
|
|