# XML-Datenbank

Der Begriff XML-Datenbank charakterisiert die Eigenschaft einer Datenbank oder eines Datenbankverwaltungssystems, mit XML ausgezeichnete Dokumente speichern und durchsuchen zu können.

## Einordnung

XML ist eine Auszeichnungssprache zur Strukturierung textorientierter Informationen. XML-Datenbanken gehören deshalb zu den dokumentenorientierten Datenbanken. Zur Abfrage und Modifikation von XML-Datenbanken werden oft Techniken eingesetzt, die über den SQL-Standard hinausgehen bzw. diesen vollkommen ersetzen. Im weiteren Sinne gehören sie deshalb auch in die Gruppe der NoSQL-Systeme. Die von XML-Datenbanken eingesetzten Datenbankmodelle unterscheiden sich in relationale, objektorientierte oder proprietäre Techniken.

## XML-Empfehlungen

Das W3C publizierte nach der breiten Akzeptanz von XML weitere Empfehlungen, die von XML-Datenbanksystemen mehr oder weniger unterstützt werden:
* XPath. Sprache, um Knoten in XML-Dokumenten zu adressieren.
* XSLT. Transformationssprache, um XML-Dokumente in andere Formate zu konvertieren.
* XQuery. Abfragesprache, um XML-Strukturen zu durchsuchen.
* XQuery and XPath Data Model (XDM). Einführung von Datentypen.
* XQuery Fulltext. Erweiterung von XQuery und XPath um Volltextsuche.
* XQuery Update. Erweiterung von XQuery um die Möglichkeit, Daten zu modifizieren.

## Vergleich mit SQL

Was in relationalen Datenbanksystemen SQL (zur Abfrage und Manipulation) ist, ist bei XML-Datenbanken vor allem XPath, XQuery und XQuery Update. Zur Transformation und Darstellung der XML-Daten können wiederum XQuery oder XSL (XSLT, XSL-FO) verwendet werden.

## Implementierungen

Generell lassen sich zwei Formen der Implementierung unterscheiden.
* XML-enabled: Herkömmliche Datenbanksysteme (z. B. Relationale Datenbanksysteme), die eine Zuordnung auf oder in das XML-Format erlauben. Man bezeichnet diese Vorgehensweise als datenorientiert. Die Abfrage und Modifikation erfolgt mit den Mitteln des Datenbanksystems (z. B. SQL).
* Native XML-Datenbanksysteme: Diese haben eigene, für XML-Dokumente optimierte Speicher- und Indizierungstechnologien entwickelt. Die Abfrage und Modifikation erfolgt mit standardisierten oder proprietären Methoden.

### Native XML-Datenbanken

| Name | Hersteller | Kosten | Produktbeschreibung |
| BaseX | BaseX Team | Open Source Download | XQuery 3.1, XPath 2.0, XQuery Update, XQuery Full Text XSLT 1.0 (integriert), XSLT 2.0 (über Saxon), JSON, HTML5, SQL interaktive und benutzerfreundliche GUI Interfaces: REST, WebDAV, XML:DB, XQJ, 15 weitere Programmiersprachen Schwerpunkt auf Performance und Skalierbarkeit |
| Berkeley DB XML | Oracle | kostenlos Download | … |
| eXist-db | eXist-db Team | Open Source Download | XQuery 1.0, XPath 2.0, teilweise XQuery 3.0 XSLT 1.0 (integriert), XSLT 2.0 (über Saxon) HTTP-Interfaces: REST, WebDAV, SOAP, XML-RPC, and Atom Publishing Protocol XML database specific: XMLDB XUpdate XQuery Update Extension |
| MonetDB/XQuery | monetdb Team | Open Source Download | Entwicklung der XQuery Erweiterung auf dem Stand von Mai 2011 "eingefroren" |
| Sedna | Sedna Team | Open Source | Feature-List |
| Xindice | Apache Software Foundation | Open Source Download | Weiterführung dbXML Core (Dez. 2001) nutzt X-Path als Abfragesprache XML:DB X-Update für Aktualisierungen XML:DB API durch Java besitzt XML-RPC API wird seit August 2011 nicht mehr weiterentwickelt |

### XML-enabled Datenbanken

* Db2 (pureXML, XML Extender)
* Microsoft SQL Server
* Oracle Database