Jens Käsbauer Mediengestaltung

Design, Marketing, Leidenschaft

XML-Datenbank

Da ist mit dem Thema XML-Datenbank nun ein Thema in die Vorbereitung zur Abschlussprüfung gerutscht, bei dem ich durchaus verstehen kann, wenn man sich entscheidet, es streichen zu wollen. Nachdem ich mich jetzt aber ein bisschen intensiver mit diesem Thema auseinandergesetzt habe, würde ich behaupten, dass die Prüfungsfragen absolut oberflächlich bleiben werden. Diese Punkte könnt ihr wahrscheinlich gut und gerne mitnehmen, wenn ihr euch ein bisschen mit der Thematik auseinandersetzt und die wichtigsten Zusammenhänge und Begrifflichkeiten schon mal gehört habt. Ich habe mir Mühe gegeben, es nicht zu technisch werden zu lassen. Aber ganz werden wir hier um einige technische Termini nicht rum kommen. Auch ein bisschen Erfahrung im Umgang mit XML und Datenbanken selbst kann nicht schaden.

Abschlussprüfung Winter ’16: KuG – U8 | XML-Datenbank

Was ist nun eine XML-Datenbank? Die einfachste Definition liefert hier sicher ein Artikel aus 2001 auf xml.com: Eine XML-Datenbank speichert Informationen in einer XML-ähnlichen Struktur oder in einer mit XML verwandten Technologie.

Beispiel: wiederkehrende XML-Struktur

Beispiel: wiederkehrende XML-Struktur

Dann können wir jetzt ja aufhören! Naja, ganz so leicht ist es leider nicht. XML als Auszeichnungssprache kann alleine natürlich kein DBMS darstellen. Dennoch speichert XML Daten in einer strukturierten Weise ab. Wer meine XML-Grundlagen-Präsentation [DOWNLOAD] gelesen hat, ist damit vertraut: Es gibt vom Wurzelknoten ausgehend in einer Baumstruktur beliebig viele nachgeordnete Knoten. Wobei sich wiederholende Datenelemente als ein Zweig verstanden werden können. Das sehr einfache Beispiel zur linken zeigt dies recht gut. Ausgehend vom Wurzelelement gibt es unterschiedliche „Zweige“ die mit dem Element beginnen und in dessen weiteren Verlauf dann die Daten enthalten sind.

 

Möglichkeiten XML-Dokumente zu speichern

Die vorangegangene Definition kann also noch nicht der letzte Schluss gewesen sein. Generell definiert man eine XML-Datenbank deshalb auch eher als eine Datenbank oder ein Datenbanksystem, welches mit XML ausgezeichnete Dokumente speichern, durchsuchen und verwalten kann. In der Datenbankwelt gibt es dazu aktuell drei Ansätze, wie man mit diesen XML-Dokumenten umgehen kann. Diese Ansätze kann man dann zu zwei Datenbankkategorien zusammenfassen: XML-fähige Datenbanken und native XML Datenbanken.

XML-fähige Datenbanken sind in Wirklichkeit jedoch relationale Datenbanken, die auf zwei alternativen Wegen mit XML-Dokumenten umgehen können. Zum einen kann ein XML-Dokument in eine bestehende Tabelle direkt als String gespeichert werden und aus dieser dann wieder im Ganzen oder in Teilen ausgegeben werden. XML ist nur Text und kann also auch ganz normal wie jeder andere Text in SQL durchsucht werden.

In der zweiten Variante nimmt man ein XML-Dokument und schickt es durch einen Wrapper vor der relationalen Datenbank. Dieser Wrapper macht aus dem im Dokument gespeicherten XML zum Beispiel eine SQL-Anweisung. Diese wird an die relationale Datenbank geschickt und dort dann ausgeführt. Das Resultat ist eine Tabelle, in der die Daten des XML-Dokuments gespeichert sind. Bei der Abfrage funktioniert das dann wieder umgekehrt. Das Ergebnis der Abfrage wird durch den Wrapper geschleust und am Ende fällt wieder ein XML-Dokument heraus.

Variante drei, also die nativen XML-Datenbanken, arbeiten mit den Dokumenten in ihrer ‚rohen Form‘. Die Daten bleiben also als XML erhalten und werden lediglich indiziert. Der Zugriff auf die Daten erfolgt über XQuery oder XPath dem XML-äquivalent zu SQL.

Da die ersten genannten Typen quasi nur erweiterte relationale Datenbanken sind gehe ich im Folgenden nur auf den letzten Typus näher ein.

(mehr …)