aktuelle Version: 5 (In SQL:2016 wird in Kapitel 14 "XML-Related Specifications (SQL/XML)" der Austausch zwischen XML Datenrepräsentation und relationaler Datenbank spezifiziert.)
Beschreibung
Bei SQLX handelt es sich nicht so sehr um ein Dateiformat (das Dateiformat ist in diesem Falle immer XML) als vielmehr um ein Set von SQL-basierten Funktionen für den Export ("publish") von Tabellen aus relationalen Datenbanken in XML-Dateien und den Import ("extract/store") ebendieser XML-Dateien in eine relationale Datenbank. Der Export einzelner Tabellen ist trivial und wird heute schon von den meisten Datenbanken und Tabellenverarbeitungsprogrammen beherrscht. Schwieriger, bzw. noch nicht überzeugend gelöst, ist die Abbildung einer vollständigen relationalen Datenbank in eine XML-Datenrepräsentation. Das Grundproblem liegt darin, das relationale Datenmodell auf das hierarchische XML-Datenmodell abzubilden.
Bewertung
Offenheit 2
Die Spezifikation ist inzwischen umfangreich und eher in der Form eines Normierungsvorschlages gehalten. Es sind noch Änderungen zu erwarten.
Lizenzfreiheit 4
Es bestehen keine lizenzrechtliche Einschränkungen für den Normierungsvorschlag als Teil von SQL:2016. Die Implementierungen der SQLX-Funktionalität in den einzelnen Datenbanken wird natürlich proprietär erfolgen.
Verbreitung 3
Als Exportmöglichkeit und für den Datenaustausch einzelner Tabellen hat SQLX bereits eine beachtliche Verbreitung gefunden. SQLX ersetzt CSV und behebt dessen bekannte Mängel. Der Export ganzer Datenbankschemata in XML-Datenrepräsentation scheint noch nicht umfassend gelöst.
Funktionalitaet 3
SQLX erlaubt es, Feldbezeichnungen und Feldformate aus einer Tabelle in eine XML-Datei zu übernehmen. Die Abbildung hierarchischer Datenstrukturen aus einer Datenbank kann ohne Aufbau von Redundanz erfolgen. Die Abbildung einer relationalen Datenbank in einer XML-Datei ist noch nicht generisch möglich.
Implementierung 3
Praktisch in jeder Datenbank und jedem Tabellenkalkulationsprogramm können die SQLX-Funktionen mit Hilfe bestehender SQL-Funktionalität implementiert werden. Etliche Anbieter (Oracle, Microsoft etc.) haben die SQLX-Funktionen auch bereits implementiert, die Standard-Konformität der Implementierungen variiert aber stark.
Speicherdichte 2
Solange nur hierarchische Beziehungen abgebildet werden, entsteht keine Datenredundanz (siehe oben Funktionalität). Durch die Speicherung der XML-Tags in der Datei wird diese nicht unerheblich aufgebläht. In der Regel wird darum eine Datenkompression beim Abspeichern angewendet (ZIP).
Verifizierbarkeit 2
Es ist nur eine rudimentäre Formaterkennung möglich.
Best Practice 1
SQLX kann zwar CSV problemlos ablösen, ist in Archiven aber kaum ein Thema.
Perspektive 1
SQL/XML ist für den Datenaustausch und für die Langzeitspeicherung ein interessanter Lösungsansatz. Im Bereich Datenaustausch zwischen Datenbanken und Applikationen hat er bereits eine gewisse Verbreitung erlangt und wird diese wohl auch noch ausbauen können. Im Archivbereich wird sich der Ansatz schwerlich etablieren können.
Formatklasse: D
Die Formatspezifikation ist noch nicht ausgereift, aber für die Archive interessant.
Fazit
Für den einfachen Fall der Umwandlung flacher Tabellen in XML-Dateien gibt es ausgereifte Lösungen. Der Export ganzer relationaler Datenbanken ist hingegen noch nicht generisch zu bewältigen. Es sind auch im Bereich der Standardisierung noch Weiterentwicklungen zu erwarten. Da aber die Spezifikationen zu SQLX die Funktionalitäten des "publish" beziehungsweise des "extract/store" betreffen und nicht die Form der XML-Datenrepräsentation selber, ist diese Weiterentwicklung kein Hinderungsgrund für den Einsatz.
Referenz
ISO/IEC 9075-14:2023 "Information technology — Database languages — SQL — Part 14: XML-Related Specifications (SQL/XML)" https://www.iso.org/standard/76587.html
[kostenpflichtig]