XML-Datenbank

Eine XML-Datenbank ist eine Datenbank, deren kleinste logische Einheit ein XML-Dokument ist, d.h. XML ist das grundlegende logische Konstrukt, auf dem die Datenbank aufgebaut ist. Dieser Datenbanktyp ist insbesondere in der Lage, XML-Dokumente gegen ein XML-Schema oder eine DTD zu validieren. Zu unterstützenden Sprachen sind ferner mindestens XPATH, XQUERY und XSLT.

Man unterscheidet native XML-Datenbanken von relationalen XML-Datenbanken mit XML-Zusatz. Eine relationale XML-Datenbank ist ein spezieller Typ einer objektrelationalen Datenbank, die den Datentyp XML als vordefinierten Datentyp benutzt und dem SQL-XML-Standard genügt.

Eine Übersicht über Implementierungen von XML-Datenbanken findet man z.B. in rpbourret

Warum XML-Datenbanken?

Bei „kleineren“ Anwendungen können die XML-Daten als ASCII- bzw. Unicode-Datei auf der Festplatte liegen. Schwierig wird es aber bei sehr großen Dokumenten, bei einer Vielzahl gleichzeitiger Zugriffe, beim Wunsch einer Datenextraktion nach komplexen Bedingungen oder auch beim (maschinellen) Verändern der Daten. Zudem müssen bei vielen Anwendungen Bedingungen wie Sicherheit, Ausfallschutz, Anfragemöglichkeiten, Integritätsbedingungen etc. gegeben sein. Da diese Basisfunktionalitäten eines Datenbanksystems sind, liegt es nahe, ein Datenbanksystem, welche alle diese Anforderungen erfüllt, zur Verwaltung von XML-Dokumenten zu nutzen. XML-Datenbanken können in vielen Unternehmensbereichen eingesetzt werden. Z.B. könnten Portale für Unternehmensinformationen, Mitgliederdatenbanken, Produktkataloge, Teiledatenbanken sowie der B2B Dokumentenaustausch durch XML-Datenbanken unterstützt werden.

Vorteile

  • Die Dokumente werden als Ganzes gesichert und müssen nicht mehr in Relationale Strukturen umgewandelt werden. Somit können keine Informationen beim Umwandeln der hierarchischen XML-Daten aus ihrer Baumstruktur in flache Tabellen verloren gehen.
  • Bei nativen Datenbanken bleibt die Originaltreue der Dokumente erhalten
  • Unstrukturierte Dokumente können genauso gespeichert werden wie Strukturierte
  • Dokumentenstruktur muss nicht bekannt sein
  • Es existieren viele weit verbreitete Standards und somit gibt es viele Implementierungen zur Verarbeitung von XML Dokumenten

Nachteile

  • Bei großer Datenbasis sind relationale Datenbanksystem oft performanter
  • XML-Datenbanken sind noch nicht so weit verbreitet und es mangelt oft an Erfahrungen
  • XML-Datenbanken sind noch nicht so ausgereift wie relationale Datenbanken

Anforderungen an XML-Datenbanken

In diesem Abschnitt sollen die Anforderungen an ein ideales Datenbanksystem aufgezeigt werden. Reale Systeme entsprechen diesen Anforderungen mehr oder weniger. Diese Anforderungen können gleichzeitig als Bewertungsskala angesehen werden, wie gut die XML-Unterstützung der einzelnen Systeme tatsächlich ist. Zu den Anforderungen gehört unter anderem, dass die Daten nach bestimmten Kriterien durchsucht werden können, dass Daten ausgelesen werden können und das Dokumente oder Teile des Dokumentes (Elemente, Attribute?, Kommentare, Verarbeitungsanweisungen) geändert werden können. Ebenso müssen Schema-definitionen und -änderungen sowie ein performantes Verarbeiteten großer Datenmengen möglich sein.

Allgemeine Anforderungen:

Da auch ein XML-Datenbanksystem ein Datenbanksystem ist, muss es auch alle Eigenschaften haben, die man von einem „echten“ Datenbanksystem erwarten kann. Nachfolgend werden einige Eigenschaften beispielhaft genannt.

Effizienz
Die Grundvoraussetzung für die Akzeptanz ist die Effizienz des Datenbanksystems. D.h. Anfragen und Operationen müssen effizient ausgeführt werden. Um dies zu ermöglichen könne z.B. Techniken wie Caching oder Indizierung genutzt werden.

Transaktionsfähigkeit
Normalerweise arbeiten viele Benutzer gleichzeitig an einem Datenbanksystem. Das bedeutet, dass viele Änderungsoperationen, Anfragen usw. parallel zueinander bearbeitet werden müssen. Hierzu ist es erforderlich, dass das Datenbanksystem ein Transaktionskonzept unterstützt.

Skalierbarkeit
Natürlich muss auch eine XML Datenbank skalierbar sein. Bei XML ist jedoch nicht nur die Anzahl der Nutzer zu betrachten, sondern auch die unterschiedliche Größe der Dokumente. Große Dokumente müssen ebenso performant verarbeitet werden wie kleinere.

Berechtigungskonzept
Ebenso müssen Zugriffsrechte für Daten definiert werden können. Z.B. sollen bestimmte Daten nur von bestimmten Benutzern eingesehen bzw. bearbeitet werden dürfen. Aus diesem Grund sollte auch ein Zugangsschutz, bestehend aus Authentisierung und Autorisierung, vorhanden sein.

XML-Spezifische Anforderungen

Neben den allgemeinen Anforderungen ergeben sich bei XML-Datenbanken weitere Anforderungen, da das Datenbanksystem XML speichern können soll.

Standartkonformität
XML Datenbanken sollten die wichtigsten XML Empfehlungen und Standards berücksichtigen und unterstützen.

Dokumentenbehandlung
Wenn Daten gespeichert werden, die zwischen Anwendungen oder firmenübergreifend ausgetauscht werden sollen sind das meist ganze XML Dokumente. Deshalt müssen vollständige Dokumente verwaltet werden können. Diese Dokumente müssen dann auch vollständig und unverändert wieder geliefert werden können. Man spricht in diesem Fall von Originaltreue der Dokumente

Schema-Unabhängigkeit
XML-Dokumente können eine schematische Beschreibung haben müssen aber nicht. Eine XML-DB muss die Dokumente deswegen speichern können unabhängig davon ob das Schema nun bekannt ist oder nicht. Wenn das Schema bekannt ist, prüft das DBS die Übereinstimmung der Dokumente mit dem Schema

Strukturunabhängigkeit
XML-Dokumente können rekursive Typdefinitionen haben, die beliebig tiefe Elementverschachtelungen in den Dokumenten erlauben. Ein XML-Datenbanksystem muss solche XML-Dokumente ohne Einschränkungen speichern können.

Web-Anbindung
Da XML zum Austauschformat im Intranet und Internet geworden ist, ist eine HTTP Anbindung des XML Datenbanksystems eigentlich zwingend notwendig. Dabei sollen die Dokumente genauso leicht referenzierbar sein als ob sie in dem Dateisystem liegen. Es sollen auch komplexere Datenbankoperationen möglich sein.

Kodierung und Internationalisierung
Der XML Prozessor muss verschiedene Kodierungen verstehen, weil oft dokumente in nationalen Codierungen vorliegen(US-ASCII) Diese muss der Prozessor verstehen und verarbeiten können. Mindestens sollten jedoch die Kodierungen UFT-8 und 16 unterstützt werden. Ebenfalls muss die XML Datenbank auf die nationalen Eigenheiten reagieren können. Dazu gehört beispielsweise, dass Fehlermeldungen in der jeweiligen Sprache des Anwenders ausgegeben werden. Oder das die Sortierung nationalspezifisch erfolgt. (in Schweden wird das Ö z.B. hinter dem Z sortiert und in Deutschland entweder wie O oder Oe).

XML-spezifische Schnittstelle
Die Anfragesprache, die ein XML-Datenbanksystem unterstützt, muss die XML spezifischen Bedürfnisse abdecken. Dazu gehört z.B., dass das Ergebnis einer Anfrage wohlgeformtes XML ist. Zu einem muss das Datenbanksystem in der Lage sein ein ganzes Dokument zu liefern oder aber z.B. aggregierte Daten aus mehreren Dateien zu liefern. (etwa eine Liste der Gehälter einer Abteilung). Neben der Anfrage-Funktionalität muss es auch eine XML-Spezifische Schnittstelle zum Einfügen, Ändern, und Löschen geben.

Speicherung von Nicht-XML-Daten
Auch wenn es auf den ersten Blick merkwürdig erscheint, ist es wünschenswert, dass ein XML-Datenbanksystem auch Daten speichern kann, die nicht als XML vorliegen, also etwa Bilder im GIF-Format. Aus XML Dokumenten kann über Referenzen auf solche Daten verwiesen werden. Daher macht es Sinn, wenn diese auch in der Datenbank gesichert werden können.

Anbindung anderer Datenquellen
Oft kommt es vor, dass zwar Datenaustausch über XML abgewickelt wird und auch die Datenhaltung sowie neue Anwendungen auf XML basieren aber auch Altsysteme vorhanden sind, die wichtige Aufgaben erfüllen und nicht abgelöst werden können. In solchen Fällen müssen oft die Daten zwischen den einzelnen Systemen ausgetauscht werden. Dafür benötigt man Schnittstellen welche dies ermöglichen. Zudem besteht dann auch die Möglichkeit integrierte Anfragen zu stellen, die über Daten beider Systeme gehen.

Anfragetypen

Eine XML Anfragesprache, wie z.B. XQUERY, XPATH als die bekanntesten Vertreter, sollte möglichst viel Arten von Anfragetypen unterstützen (XQUERY unterstützt alle aufgeführten Anfragetypen). Nachfolgend werden aus den XML-Charakteristika einige Anfragetypen abgeleitet.

Wertorientierte Anfragen:
- Anfragen an die Werte der Felder. Dazu gehört der Zeichenkettenvergleich und der numerische Vergleich
- Alle Personen mit dem Nachnamen 'Müller'
- Alle Gehälter kleiner als 2000

Textorientierte Anfragen:
- Suchfunktionalitäten für lange Texte
- Enthält ein bestimmtes Wort bzw. enthält es in einem bestimmten Abstand zu einem anderen Wort
- Suchen ähnlicher Worte

Strukturorientierte Anfragen:
- Suche orientiert sich an Struktur des Dokumentes
- Das Element Buch hat ein Attribut ISBN

Verweisorientierte Anfragen:
- Anfrage an die Verweisstruktur zwischen Dokumenten
- Welche Dokumente zeigen auf eine Stelle?
- Welche anderen Dokumente werden aus einem Dokument referenziert?

Metadatenorientierte Abfragen:
- Anfragen an die Metadaten der Dokumente
- Welche Dokumente wurden seit dem 1.1.2002 geändert?
- Welche Dokumente wurden von Hans Meier gespeichert?

Kombinierte Abfragen:
- Kombination der verschiedenen Abfragen
- Alle Bücher die weniger als 50 € kosten und im Titel den Begriff "XML" enthalten.

Anfrage-Ergebnisse

Als Ergebnis einer Anfrage sollte das XML-Datenbanksystem wieder XML liefern. Mögliche Ergebnisse einer Abfrage können z.B. sein:

  • Ein einzelnes Dokument so wie es gespeichert wurde
  • Menge von Dokumenten
  • XML-Fragmente (z.B. ein einzelnes Element mit seinen Kindern)
  • Werte ( z.B. ein Attributwert, ein Funktionsergebnis etc.)
  • Attribute ( ein Paar aus Name und Wert)
  • Verarbeitungsanweisungen

Native XML-Datenbank vs. relationalen XML-Datenbanken mit XML-Zusatz

 XML-fähige RDBMSNative XML DB
DatenhaltungAls Einträge in relationalen TabellenAls XML Dokumente
Originaltreue von DokumentenBleibt nur bei opaker Speicherung erhaltenBleibt immer erhalten
Indizierung von InformationenGrundsätzlich möglich, aber nur ganze ZellenWertindex, Textindex, Strukturindex
AnfragesprachenSQLXQuery, XNode, XPath
SchnittstellenODBC / JDBCXML: DB-API
Wiederfinden von DatenDurch IndexDurch XML-Baum
DokumentstrukturMuss bekannt seinMuss nicht bekannt sein

Quellen:

  • Bourret, Ronald: "XML and Databases", http://www.rpbourret.com/xml/XMLAndDatabases.htm
  • Schöning, Harald: "XML und Datenbanken", Hanser-Verlag, 2003, ISBN 3-446-22008-9
  • Seeman, Michael: „Native XML-Datenbanken im Praxiseinsatz“, Software- und Support-Verlag, 2003, ISBN 3-935042-35-3

siehe auch: XML?

Kategorie: Objektrelationale DB, NoSQL, XML, X