SQL/XML
SQL/XML spezifiziert SQL-basierte Erweiterungen zur Nutzung von XML in Verbindung mit SQL. Der neue Datentyp XML als auch diverse Routinen, Funktionen sowie XML-zu-SQL und SQL-zu-XML-Abbildung werden eingeführt, um Manipulation und Speicherung von XML in einer SQL-Datenbank zu unterstützen.
SQL/XML ist in Teil 14 XML-Related Specifications (SQL/XML) des Standards ISO/IEC 9075 der Datenbanksprache SQL definiert. Die erste Version erschien im Dezember 2003.<ref>ISO/IEC 9075-14:2003. In: iso.org. Dezember 2003, abgerufen am 9. Juli 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Der Standard ist nicht frei verfügbar, jedoch gibt es ein ZIP-Archiv mit einem Entwurf der dritten Version, die im Juli 2008 erschien.<ref>Zip-Archiv mit einem Entwurf der dritten Version von SQL/XML. (ZIP; 12,2 MB [Inhalt: PDF]) In: wiscorp.com. 1. Februar 2006, archiviert vom Vorlage:IconExternal am 10. August 2023; abgerufen am 9. Juli 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Im Juni 2023 wurde die aktuelle Version 6.0 (ISO/IEC 9075-14:2023) veröffentlicht.<ref>ISO/IEC 9075-14:2023. In: iso.org. Juni 2023, abgerufen am 9. Juli 2025 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Beschreibung
Die SQL/XML-Spezifikation beinhaltet Funktionen für die Konstruktion von XML-Daten. Diese Funktionen erlauben es dem Benutzer, neue Elemente oder Attribute mit Werten aus relationalen Tabellen zu konstruieren. Andere Funktionen wie beispielsweise XMLCONCAT oder XMLAGG können dazu verwendet werden, um kleine XML-Fragmente in größere zusammenzuführen. Folgende Konstruktionsfunktionen stehen zur Verfügung:
- XMLELEMENT
- XMLATTRIBUTES
- XMLFOREST
- XMLCONCAT
- XMLNAMESPACES
- XMLCOMMENT
- XMLPI
- XMLDOCUMENT
- XMLAGG
- etc.
SQL/XML definiert aber auch Funktionen, die es dem Benutzer erlauben, XQuery-Ausdrücke in SQL-Statements zu verwenden. Diese Funktionen lauten:
- XMLQUERY
- XMLTABLE
Während XMLQUERY Werte vom Typ XML zurückgibt, kann die Funktion XMLTABLE XML Daten als Input verwenden und eine relationale Tabelle als Ausgabe produzieren. Eigenschaften von XML-Daten können zum Beispiel mit dem XMLEXISTS-Prädikat ausgedrückt werden, typischerweise in der WHERE-Klausel eines SQL-Statements.
Standardkonformität
Auf dem genannten Entwurf des ISO-Standards basiert auch die Evaluierung der SQL/XML:2006-Standardkonformität von Oracle 11g Release 1, MS SQL Server 2008 und MySQL 5.1.30 von Wagner. Das Ergebnis dieser Evaluierung wird in folgender Aufstellung dargestellt:<ref>Michael Wagner: SQL/XML:2006 – Evaluierung der Standardkonformität ausgewählter Datenbanksysteme. Diplomica Verlag, 2010, ISBN 3-8366-9609-6.</ref>
| Oracle 11g Release 1 | MS SQL Server 2008 | MySQL 5.1.30 | |
|---|---|---|---|
| Basisdatentyp XML | teilweise (Oracle bezeichnet den Datentyp als 'XMLType' anstelle von 'XML') | hohe | keine |
| SQL/XML-Prädikate | hohe | teilweise | keine |
| SQL/XML-Funktionen | hohe | teilweise | geringe |
Aufgrund der kaum nennenswerten Änderungen in SQL/XML:2008 gegenüber SQL/XML:2006 hat oben angeführte Aufstellung nach wie vor Gültigkeit.
Weblinks
- ISO/IEC 9075-14:2023. In: iso.org. (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).
- Andrew Eisenberg, Jim Melton: Advancements in SQL/XML. (PDF) In: sigmodrecord.org. (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).
- Andrew Eisenberg, Jim Melton: SQL/XML is Making Good Progress. (PDF) In: sigmodrecord.org. (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).
Einzelnachweise
<references />