Lade Inhalt...

Evaluierung der SQL/XML:2006-Standardkonformität von ausgewählten Datenbanksystemen

©2009 Bachelorarbeit 85 Seiten

Zusammenfassung

Inhaltsangabe:Einleitung:
Da die Nutzung des Internets zum Zweck des E-Commerce im B2B- aber auch im B2C-Bereich stetig ansteigt, ist im Zuge dessen auch die Bedeutung des elektronischen Datenaustauschs enorm gewachsen. Es werden Informationen ausgetauscht, die auf Inhalten aus Datenbanken basieren. Die eXtensible Markup Language (XML) ist ein Dokumentenformat, das aufgrund seines flexiblen und selbstbeschreibenden Charakters die Grundlage für den Datenaustausch über das Internet bildet. Neben dem Einsatz von XML zum Austausch relationaler Daten eignet sich XML auch zur Präsentation von relationalen Daten im Web. Historisch bedingt sind große Datenbestände in relationalen Datenbanken gespeichert und eine große Anzahl an Anwendungen greift auf diese Daten zu. Diese Tatsache erfordert im zunehmenden Ausmaß Techniken, die XML und SQL miteinander verbinden.
XML hat sich in kurzer Zeit als Dokumentenformat für den Datenaustausch über das World Wide Web (WWW) entwickelt und ist ein wichtiges Dokumentenformat im Web-Kontext. Dennoch wird laut auch in Zukunft der SQL-basierte Datenbankzugriff bestehen und dominierend bleiben. Der Autor nennt folgende drei Argumente, die diese Aussage untermauern:
„SQL ist eine weit verbreitete, etablierte, mächtige, herstellerunabhängige, normierte Datenbanksprache,…“.
„SQL wird von den Datenbankmanagementsystemen zahlreicher Hersteller unterstützt. Entsprechende Systeme werden […] stetig weiterentwickelt und kontinuierlich bezüglich Performance und Funktionalität verbessert“.
„Die heutige Datenbanklandschaft wird deutlich von (objekt-)relationalen Datenbanksystemen dominiert“.
In Folge dessen haben sich führende Datenbankhersteller wie Oracle und IBM früh dazu entschlossen, ihre Datenbanksysteme (DBS) um XML-Funktionalitäten zu erweitern. Da die Integration dieser Funktionalität ohne Abstimmung zwischen den Herstellern stattgefunden hat, existieren mehrere unterschiedliche Implementierungen zwischen den Systemen. Das SQL-Normierungsgremium hat daher ebenfalls auf die rasante Verbreitung von XML reagiert und den SQL-Standard um den Part 14 SQL/XML erweitert.
Laut war die Veröffentlichung der Schlussentwürfe (Final Draft International Standard – FDIS) für den SQL:2008-Standard im ersten Quartal 2008 vorgesehen. Die Realität zeigte aber, dass der Standard tatsächlich erst Mitte Juli 2008 veröffentlicht wurde. Diese Arbeit basiert auf dem Schlussentwurf ISO/IEC-14:2006. Dieser Teil 14 des Standards wurde noch im Jahr […]

Leseprobe

Inhaltsverzeichnis


Michael Wagner
Evaluierung der SQL/XML:2006-Standardkonformität von ausgewählten
Datenbanksystemen
ISBN: 978-3-8366-4598-0
Herstellung: Diplomica® Verlag GmbH, Hamburg, 2010
Zugl. Wels/Austria, Fachhochschule Oberösterreich, Campus Hagenberg, Bachelorarbeit, 2009
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte,
insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von
Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der
Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen,
bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung
dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik
Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich
vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des
Urheberrechtes.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in
diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme,
dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei
zu betrachten wären und daher von jedermann benutzt werden dürften.
Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können
Fehler nicht vollständig ausgeschlossen werden und der Verlag, die Autoren oder
Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für evtl.
verbliebene fehlerhafte Angaben und deren Folgen.
© Diplomica Verlag GmbH
http://www.diplomica.de, Hamburg 2010

iii
Danksagung
An dieser Stelle möchte ich die Gelegenheit nutzen, allen zu danken, die durch ihre fachliche
und persönliche Unterstützung zum Gelingen dieser Bachelorarbeit beigetragen haben. An
erster Stelle möchte ich mich bei Herrn Professor Mag. Dr. Josef Altmann für die
Ermöglichung der Arbeit und für seine freundliche Betreuung bedanken. Er erklärte sich
stets für Gespräche über den theoretischen Hintergrund bereit und gab mir viele wertvolle
praktische Hinweise.
Ein besonderer Dank gilt auch meiner Ehefrau MMag. Michaela Wagner, denn sie hat
mich nicht nur während des Verfassens dieser Arbeit, sondern das ganze Studium hindurch
immer wieder unterstützt bzw. motiviert. Auch meiner Familie möchte hier meinen Dank
aussprechen, da sie immer an mich geglaubt hat.

iv
Kurzfassung
Die eXtensible Markup Language (XML) hat sich als grundlegende Technologie im
elektronischen Datenaustausch etabliert. Eine Vielzahl an Daten ist jedoch historisch
bedingt in Datenbanksystemen (DBS) abgespeichert und wird dort von vielen Anwendungen
genutzt. Nachdem beide Konzepte aus heutiger Sicht nicht mehr wegzudenken sind, werden
Techniken benötigt, die die beiden kombinieren. Beinahe alle DBS-Hersteller haben auf
diese Entwicklung reagiert und verschiedenste Möglichkeiten zur Handhabung von XML in
DBS entwickelt. Auch die International Organization for Standards (ISO) widmet XML
einen eigenen Part im SQL-Standard, ISO 9075-14: XML Related Specification, kurz
SQL/XML. Die Hersteller von DBS orientieren sich in unterschiedlichem Ausmaß an diesem
Standard. Aus Gründen der Migration ist zu hinterfragen bzw. zu überprüfen, inwiefern
verschiedene DBS diesen Standard unterstützen. Dies stellt gleichzeitig das grundlegende
Ziel dieser Bachelorarbeit dar. Dazu wird die SQL/XML:2006-Spezifikation näher erläutert
und ein Kriterienkatalog, mit Hilfe dessen die XML-Unterstützung eines beliebigen DBS
evaluiert werden kann, entwickelt. Im Rahmen dieser Arbeit findet der entwickelte
Kriterienkatalog an drei ausgewählten DBS der Hersteller Oracle, Microsoft und Sun
Anwendung.
Abstract
The eXtensible Markup Language (XML) has established itself as a basic technology for
electronic data exchange. For the purpose of saving time, a huge number of data is stored in
database systems (DBS) and used in a wide range of applications. As it is difficult from
today's perspective to exist without either of the concepts, technologies are needed which
combine both. Almost all manufacturers of DBS have reacted to this development and have
devised different ways of how to use XML in DBS. Furthermore the International
Organization for Standards (ISO) has devoted a separate part to XML in the SQL-standard
called ISO 9075-14: XML Related Specification, in short terms SQL/XML. For reasons of
migration, it has to be examined to what extent different DBS comply with this standard. This
bachelor thesis illustrates the SQL/XML:2006-specification and concentrates on developing a
criteria catalogue for evaluating XML-support in DBS. Within this thesis, the criteria
catalogue applies to three selected DBS of the manufacturers Oracle, Microsoft and Sun.

v
Inhaltsverzeichnis
Danksagung
iii
Kurzfassung
iv
Abstract
iv
1.
Einleitung
1
1.1.
Motivation
...1
1.2.
Fragestellung und Ziel
...2
1.3.
Aufbau und Gliederung
...2
2.
SQL/XML-Standard
3
2.1.
Basisdatentyp XML
...3
2.2.
Abbildung zwischen SQL und XML
...7
2.2.1.
Abbildung von SQL nach XML
...8
2.2.2.
Abbildung von XML nach SQL
...17
2.3.
SQL/XML-Funktionen
...17
2.3.1.
Kategorisierung
...18
2.3.2.
Allgemeine Ausdrücke
...18
2.3.3.
XMLELEMENT
...21
2.3.4.
XMLCONCAT
...22
2.3.5.
XMLFOREST
...22
2.3.6.
XMLAGG
...22
2.3.7.
XMLSERIALIZE
...23
2.3.8.
XMLPARSE
...24
2.3.9.
XMLQUERY
...24
2.3.10.
XMLTABLE
...25
2.3.11.
XMLCOMMENT
...26
2.3.12.
XMLPI
...26
2.3.13.
CAST und XMLCAST
...26
2.3.14.
XMLDOCUMENT
...27
2.3.15.
XMLTEXT
...28
2.3.16.
XMLVALIDATE
...28

Inhaltsverzeichnis
vi
2.3.17.
XMLITERATE
...28
2.3.18.
INSERT, UPDATE, DELETE und MERGE
...28
2.4.
Künftige Entwicklung
...29
3.
Kriterienkatalog
31
4.
Evaluierung ausgewählter Datenbanksysteme
33
4.1.
Auswahl der Datenbanksysteme
...33
4.2.
Oracle Datenbankserver 11g Release 1
...34
4.3.
MS SQL Server 2008 Enterprise Edition
...35
4.4.
Sun MySQL 5.1.30
...37
4.5.
Vergleichende Beurteilung
...39
5.
Zusammenfassung und Ausblick
42
Literaturverzeichnis
44
Anhang A
48
A.1
Syntax in Oracle 11g Release 1
...48
A.2
Syntax in Microsoft SQL Server 2008
...52
A.3
Syntax in MySQL 5.1.30
...56
Anhang B
57
B.1
Beispielvorlage
...57
B.2
Beispiel in Oracle 11g Release 1
...62
B.3
Beispiel in Microsoft SQL Server 2008
...67
B.4 Beispiel in MySQL 5.1.30
...72

vii
Abbildungsverzeichnis
Abbildung 1: Integrierte Verwendung von XML und SQL
...3
Abbildung 2: Hierarchie des Datentyps XML in SQL/XML:2006
...6
Abbildung 3: Marktanteile von Datenbanksystemen 2007
...33
Abbildung 4: Tabellenschema der Beispielvorlage
...57

viii
Tabellenverzeichnis
Tabelle 1: XML Namespace Prefixes und deren URIs
...7
Tabelle 2: Abbildung von SQL-Bezeichnern nach XML-Namen
...9
Tabelle 3: Abbildung von SQL-Datentypen nach XML-Schema-Typen
...10
Tabelle 4: Abbildung von SQL-Werten nach XML-Werten
...14
Tabelle 5: Kategorisierung von SQL/XML-Funktionen
...18
Tabelle 6: Kriterienkatalog SQL/XML-Funktionalität
...32
Tabelle 7: SQL/XML-Standardkonformität Oracle 11g Release 1
...35
Tabelle 8: SQL/XML-Standardkonformität Microsoft SQL Server 2008
...37
Tabelle 9: SQL/XML-Standardkonformität MySQL 5.1.30
...39
Tabelle 10: Vergleichende Beurteilung der SQL/XML-Standardkonformität
...40

1
1. Einleitung
1.1. Motivation
Da die Nutzung des Internets zum Zweck des E-Commerce im B2B- aber auch im B2C-Bereich
stetig ansteigt, ist im Zuge dessen auch die Bedeutung des elektronischen Datenaustauschs
enorm gewachsen. Es werden Informationen ausgetauscht, die auf Inhalten aus Datenbanken
basieren. Die eXtensible Markup Language (XML) ist ein Dokumentenformat, das aufgrund
seines flexiblen und selbstbeschreibenden Charakters die Grundlage für den Datenaustausch
über das Internet bildet. (vgl. [Lau05, S. 125]) Neben dem Einsatz von XML zum Austausch
relationaler Daten eignet sich XML auch zur Präsentation von relationalen Daten im Web.
Historisch bedingt sind große Datenbestände in relationalen Datenbanken gespeichert und
eine große Anzahl an Anwendungen greift auf diese Daten zu. (vgl. [Hoh03, S. 52]) Diese
Tatsache erfordert im zunehmenden Ausmaß Techniken, die XML und SQL miteinander
verbinden (vgl. [Lau05, S. 125]).
XML hat sich in kurzer Zeit als Dokumentenformat für den Datenaustausch über das
World Wide Web (WWW) entwickelt (vgl. [Tür03, S.
427]) und ist ein wichtiges
Dokumentenformat im Web-Kontext (vgl. [Sch03, S. 106]). Dennoch wird laut [Mül04, S. 2]
auch in Zukunft der SQL-basierte Datenbankzugriff bestehen und dominierend bleiben. Der
Autor nennt folgende drei Argumente, die diese Aussage untermauern:
,,SQL ist eine weit verbreitete, etablierte, mächtige, herstellerunabhängige, normierte
Datenbanksprache,..." [Mül04, S. 2]
,,SQL wird von den Datenbankmanagementsystemen zahlreicher Hersteller unterstützt.
Entsprechende Systeme werden [...] stetig weiterentwickelt und kontinuierlich bezüglich
Performance und Funktionalität verbessert." [Mül04, S. 2]
,,Die heutige Datenbanklandschaft wird deutlich von (objekt-)relationalen
Datenbanksystemen dominiert." [Mül04, S. 2]
In Folge dessen haben sich führende Datenbankhersteller wie Oracle und IBM früh dazu
entschlossen, ihre Datenbanksysteme (DBS) um XML-Funktionalitäten zu erweitern (vgl.
[Tür03, S. 427]). Da die Integration dieser Funktionalität ohne Abstimmung zwischen den
Herstellern stattgefunden hat, existieren mehrere unterschiedliche Implementierungen
zwischen den Systemen (vgl. [Sch03, S. 192]). Das SQL-Normierungsgremium hat daher
ebenfalls auf die rasante Verbreitung von XML reagiert und den SQL-Standard um den
Part 14 SQL/XML erweitert (vgl. [Tür03, S. 427]).

1. Einleitung
2
Laut [Nor08, S.
50] war die Veröffentlichung der Schlussentwürfe (Final Draft
International Standard ­ FDIS) für den SQL:2008-Standard im ersten Quartal 2008
vorgesehen. Die Realität zeigte aber, dass der Standard tatsächlich erst Mitte Juli 2008
veröffentlicht wurde (vgl. [ISO08b]). Diese Arbeit basiert auf dem Schlussentwurf ISO/IEC-
14:2006. Dieser Teil 14 des Standards wurde noch im Jahr 2006 veröffentlicht, da dieser
aufgrund der wirtschaftlichen Bedeutung vom Normierungsgremium bevorzugt behandelt
wurde (vgl. [Nor08, S. 50]). Ein FDIS ist an alle ISO-Mitglieder übermittelt, um das formale
Einverständnis innerhalb von zwei Monaten abzugeben, und unterliegt in dieser Phase keinen
Änderungswünschen mehr, wobei diese aber für spätere Versionen festgehalten werden (vgl.
[ISO08c]).
1.2. Fragestellung und Ziel
Diese Arbeit verfolgt das Ziel, Grundkenntnisse der im SQL/XML:2006-Standard spezifizierten
SQL/XML-Funktionen zu vermitteln und die Unterstützung durch ausgewählte relationale
DBS zu evaluieren. Bei den ausgewählten XML-unterstützenden DBS handelt es sich um die
zum Zeitpunkt der Erstellung dieser Arbeit aktuellen Versionen der Hersteller Oracle,
Microsoft und Sun.
Der SQL/XML-Standard wird dazu in dieser Arbeit näher beschrieben und die
Unterstützung der standardisierten SQL/XML-Funktionalität wird anhand eines
Kriterienkatalogs an den ausgewählten DBS untersucht. Dieser Kriterienkatalog soll sich am
SQL/XML:2006-Standard orientieren und zur Wiederverwendung auf beliebige XML-
unterstützende relationale DBS ausgearbeitet werden. Die Erkenntnisse der Untersuchung
werden abschließend dokumentiert und ausgewertet.
1.3. Aufbau und Gliederung
In Kapitel 1 - Einleitung erfolgt eine Einführung in das Thema SQL/XML. Das Kapitel 2 ­
SQL/XML-Standard erläutert die SQL/XML-Funktionalitäten laut dem aktuellen SQL/XML-
Standard und gibt einen Ausblick auf künftige Erweiterungen der Spezifikation. Kapitel 3 ­
Kriterienkatalog umfasst nach der Ausarbeitung der theoretischen Grundlagen den
Kriterienkatalog, der an jedes XML-unterstützende relationale DBS angewendet werden kann.
Abschließend wird in Kapitel 4 - Evaluierung ausgewählter Datenbanksysteme anhand des
ausgearbeiteten Kriterienkatalogs die Unterstützung der SQL/XML-Funktionalität untersucht
und die Erkenntnisse der Untersuchung dargestellt und bewertet.

3
2. SQL/XML-Standard
Der SQL/XML-Standard spezifiziert die Speicherung von XML-Dokumenten bzw. von
Sequenzen von XML-Elementen in der Datenbank. Dafür stehen der Basisdatentyp XML und
eine Reihe von SQL/XML-Funktionen zur Generierung von XML-Dokumenten zur Verfügung.
Zusätzlich wird die Abbildung zwischen SQL und XML definiert (vgl. [Tür03, S. 427]).
Abbildung
1
zeigt die Integration von SQL und XML laut [Tür08, S. 2].
Abbildung 1: Integrierte Verwendung von XML und SQL
[Tür08, S. 2]
Auch [Lau05, S. 163] beschäftigt sich damit, wie Inhalte aus Datenbanken im XML-Format
extrahiert, Inhalte von XML-Dokumenten in Datenbanken gespeichert und Anfragen über
XML-Dokumenten in SQL-Anfragen abgebildet werden können. Die theoretischen
Grundlagen, um diese Fragen beantworten zu können, sollen in diesem Kapitel aufgearbeitet
werden.
Zuerst wird der Basisdatentyp XML untersucht. Im darauf folgenden Abschnitt wird die
Abbildung von SQL auf XML und umgekehrt behandelt. Die SQL/XML-Funktionen werden im
abschließenden Abschnitt genauer erläutert.
2.1. Basisdatentyp XML
Grundsätzlich können XML-Dokumente als Zeichenketten vom Typ VARCHAR oder als
Textdatei vom Typ CLOB in jedem beliebigen DBS abgespeichert werden. Jedoch können
darauf keine konkreten XML-Operationen ausgeführt werden, weshalb der SQL/XML-
Standard die bestehenden Datentypen um den Basisdatentyp XML erweitert. Mit dieser

2. SQL/XML-Standard
4
Erweiterung geht die Einführung von SQL/XML-Funktionen einher. Wichtig ist auch, dass
Abfragesprachen, wie XPath
1
und XQuery
2
, in SQL integriert wurden, wobei diese Integration
jedoch noch nicht vollständig abgeschlossen ist. (vgl. [Lau05, S. 163])
Der Basisdatentyp XML soll dazu dienen, vollständige XML-Dokumente, XML-Elemente
oder eine Sequenz von XML-Elementen als Attribut einer Tabelle in die Datenbank ablegen
und darauf mit SQL/XML-Funktionen operieren zu können. Der Standard erlaubt auch den
SQL-Wert NULL für das Attribut vom Typ XML. (vgl. [Tür03, S. 436]) Zur Speicherung wurde in
der ersten Version des Standards das Infoset Data Model
3
nach dem World Wide Web
Consortium (W3C) verwendet, da zum Zeitpunkt der Standardisierung des SQL/XML-
Standards die Standardisierung des XQuery Data Models (XDM)
4
noch nicht weit genug
fortgeschritten war, um einen internationalen Standard darauf aufzubauen (vgl. [EiMe04,
S. 2]). Diese SQL/XML-Funktionen ermöglichen das Generieren von XML-Werten aus SQL-
Werten und aus anderen XML-Werten, sowie den Zugriff auf Informationen von bereits in
einer Datenbank abgelegten XML-Werten (vgl. [Tür08, S. 4]). Ein weiterer wichtiger Aspekt ist
die Unvergleichbarkeit von Attributen des Typs XML (vgl. [ISO06, S. 14]).
Seit der zweiten Version des Standards, dem SQL/XML:2006-Standard, setzt man zur
Speicherung von XML-Werten nun auf das XDM, dessen Standardisierung nun einen höheren
Reifegrad erreicht hat. Damit lässt die Kombination von SQL und XML noch mehr
Möglichkeiten zu. Die zweite Version erlaubt außerdem den Typ XML bei der Definition eines
Attributes einer Tabelle näher zu spezifizieren, indem man optional so genannte Type Modifier
als Parameter angibt. (vgl. [EiMe04, S. 2 - 3]) Diese Parameter werden nachstehend näher
erläutert.
Die drei Optionen DOCUMENT, CONTENT und SEQUENCE werden Primary Type Modifier
genannt. Der Primary Type Modifier DOCUMENT gibt an, dass in diesem Attribut ein
vollständiges XML-Dokument mit genau einem Kindknoten abgelegt werden soll. CONTENT
gibt hingegen an, dass ein einziges XML-Fragment abgelegt werden kann. Der Primary Type
Modifier SEQUENCE lässt die Speicherung eines Waldes von XML-Elementen zu. Zusätzlich
können zu DOCUMENT und CONTENT Secondary Type Modifier angegeben werden, die eine noch
feinere Spezifikation des XML-Wertes zulassen und nachstehend beschrieben werden. (vgl.
[ISO06, S. 35])
1
Für weiterführende Informationen siehe: W3C: XML Path Language (XPath) Version 1.0, 2004,
http://www.w3.org/TR/xpath/
2
Für weiterführende Informationen siehe: W3C: An XML Query Language, 2004,
http://www.w3.org/TR/xquery/
3
Für weiterführende Informationen siehe: W3C: XML Information Set (Second Edition), 2004,
http://www.w3.org/TR/xml-infoset/
4
Für weiterführende Informationen siehe: W3C: XQuery 1.0 and XPath 2.0 Data Model (XDM), 2007,
http://www.w3.org/TR/xpath-datamodel/

2. SQL/XML-Standard
5
Als Second Type Modifier zur noch genaueren Spezifikation eines Attributes vom Typ XML
stehen
ANY für ein typisiertes oder untypisiertes,
UNTYPED für ein untypisiertes sowie
XMLSCHEMA für ein typisiertes
Attribut zur Auswahl. Der Second Type Modifier XMLSCHEMA erlaubt nur ein nach dem
angegebenen XML Schema konformes Attribut. (vgl. [ISO06, S. 35]) Ausgenommen davon ist
der Primary Type Modifier SEQUENCE, der keine weitere Option gestattet.
Syntax:
XML [ ( DOCUMENT
| CONTENT
| SEQUENCE
[ ( ANY
| UNTYPED
| XMLSCHEMA < schema > [ < element > ]
)
]
)
]
< schema > ::=
URI < namespace URI > [ LOCATION < schema location URI > ]
| NO NAMESPACE [ LOCATION < schema location URI > ]
| ID < registered XML Schema name >
< element > ::=
ELEMENT < element name >
| NO NAMESPACE [ ELEMENT < element name >
| NAMESPACE < namespace URI > [ ELEMENT < element name > ]
Folgende Eigenschaften sind laut dem SQL/XML:2006-Standard für einen XML-Wert vom
Basisdatentyp XML vorgesehen (vgl. [ISO06, S. 15]):
Grundsätzlich ist jeder XML-Wert entweder NULL oder eine XQuery-Sequenz. Ein
solcher XML-Wert ist als Typ XML(SEQUENCE) festgelegt.
Ist der Wert eines Attributes vom Typ XML entweder NULL oder ein XQuery Document
Node, ist der XML-Wert vom Typ XML(CONTENT(ANY)).
Ist der Attribut-Wert entweder NULL oder ein XQuery Document Node vom Typ
XML(CONTENT(ANY)), der untypisierte Elemente und Attribute beinhaltet und dessen
Eigenschaft nilled="false" ist, spricht man vom Typ XML(CONTENT(UNTYPED)). Alle
Elemente sind mit xs:untyped und alle Attribute mit xs:untypedAtomic
gekennzeichnet (vgl. [ISO06, S. 13]).
Entsprechen im Gegensatz zum Typ XML(CONTENT(UNTYPED)) alle Elemente und
Attribute des XQuery Document Nodes vom Typ XML(CONTENT(ANY)) einem
registrierten XML Schema oder ist der XML-Wert NULL, handelt es sich bei dem
entsprechenden XML-Wert um den Typ XML(CONTENT(XMLSCHEMA)).

2. SQL/XML-Standard
6
Jeder XML-Wert, der entweder NULL oder vom Typ XML(CONTENT(ANY)) ist, der genau
einen XQuery Element Node, keinen oder mehrere XQuery Comment Nodes und keinen
oder mehrere XQuery Processing Instruction Nodes hat, ist als Typ
XML(DOCUMENT(ANY)) spezifiziert.
Ein XML-Wert ist vom Typ XML(DOCUMENT(UNTYPED)), wenn das Attribut entweder
NULL oder vom Typ XML(CONTENT(UNTYPED)) ist, der wiederum genau einen XQuery
Element Node, keinen oder mehrere XQuery Comment Nodes aber keinen oder einen
XQuery Processing Instruction Node aufweist.
Enthält ein Attribut den Wert NULL oder ist der XML-Wert eines Attributs vom Typ
XML(DOCUMENT(ANY)), der einem registrierten XML Schema entspricht, ist dieses
Attribut vom Typ XML(DOCUMENT(XMLSCHEMA)).
Aus den oben angeführten Charakteristika kann man die Typ-Hierarchie vom
SQL/XML:2006-Standard wie in Abbildung
2
darstellen (vgl. [Mel05, S. 12]).
Abbildung 2: Hierarchie des Datentyps XML in SQL/XML:2006
(vgl. [Mel05, S. 12])
Ein Vergleich von XML-Werten ist im Gegensatz zu einer Zuweisung im SQL/XML-
Standard generell nicht vorgesehen (vgl. [ISO06, S. 14]). Bei der Zuweisung muss aufgrund der
genauen Typspezifikation beachtet werden, dass Attribute vom Typ XML nur dann zugewiesen
werden können, wenn beide Attribute jeweils vom gleichen Typ sind. Eine Zuweisung ist also
nur erlaubt, wenn (vgl. [ISO06, S. 13])
das Ziel-Attribut entweder vom Typ XML(DOCUMENT(UNTYPED)) oder
XML(CONTENT(UNTYPED)) und das Quell-Attribut ebenfalls entweder vom Typ
XML(DOCUMENT(UNTYPED)) oder XML(CONTENT(UNTYPED)) ist.
das Ziel-Attribut entweder vom Typ XML(DOCUMENT(XMLSCHEMA)) oder
XML(CONTENT(XMLSCHEMA)) und das Quell-Attribut ebenfalls entweder vom Typ
XML(DOCUMENT(XMLSCHEMA)) oder XML(CONTENT(XMLSCHEMA)) ist.

2. SQL/XML-Standard
7
das Ziel-Attribut entweder vom Typ XML(DOCUMENT(ANY)), XML(CONTENT(ANY)) oder
XML(SEQUENCE) und das Quell-Attribut vom Typ XML ist.
Der SQL/XML-Standard fordert vor der ersten Verwendung eines XML Schemas eine
Registrierung (vgl. [Tür08, S. 6]). Hierbei wird dem SQL-Server das entsprechende XML
Schema bekannt gemacht. Der Vorgang zur Registrierung ist im Standard nicht definiert und
somit von der jeweiligen Implementierung abhängig. (vgl. [ISO06, S. 16]) Ein registriertes
XML Schema wird durch den vergebenen Namen identifiziert (vgl. [ISO06, S. 16]), welcher
eindeutig sein muss (vgl. [Tür08, S. 6]). Welche Ausprägung dieser Name eines registrierten
XML Schemas haben kann, hängt von der jeweiligen Implementierung ab. Werden zwei XML
Schemata mit dem gleichen Namen registriert, werden diese als identisch behandelt. XML
Schemata werden unter anderem über den Namensraum identifiziert. (vgl. [ISO06, S. 16 - 17])
Es gibt drei vordefinierte und implizit registrierte XML Namensräume, die in Tabelle
1
aufgelistet werden (vgl. [ISO06, S. 17]).
Namespace Prefix
XML Namespace URI
xsd http://www.w3.org/2001/XMLSchema
xsi http://www.w3.org/2001/XMLSchema-instance
sqlxml
5
http://standards.iso.org/iso/9075/2003/sqlxml
Tabelle 1: XML Namespace Prefixes und deren URIs
(vgl. [ISO06, S. 17])
Der Namensraum http://www.w3.org/2005/xpath-datatypes mit dem Prefix xdt
wurde in der zweiten Version des SQL/XML-Standards hinzugefügt (vgl. [ISO06, S. 20]),
jedoch mit dem ersten Technical Corrigendum 1 aus dem Jahr 2007 wieder aus dem Standard
entfernt, da dieser Namensraum vom W3C in den xs Namensraum konsolidiert wurde (vgl.
[ISO07, S. 5]).
2.2. Abbildung zwischen SQL und XML
Die im vorangegangenen Abschnitt 2.1 behandelte Speicherung von XML-Werten vom
Basisdatentyp XML erfordert eine Abbildung von SQL-Konzepten in XML-Konzepten und
umgekehrt (vgl. [EiMe01, S. 2]), welches Thema dieses Abschnitts ist. [Tür03, S. 443] stellt in
diesem Zusammenhang beide Konzepte folgendermaßen gegenüber:
5
Die Definition des sqlxml-Namespace wurde unter folgender URI veröffentlicht:
http://standards.iso.org/iso/9075/2003/sqlxml.xsd
(vgl. [SQL06, S. 21])

2. SQL/XML-Standard
8
SQL-Bezeichner
XML-Namen
SQL-Zeichensätze XML-Unicode
SQL-Datentypen
XML-Schema-Typen
SQL-Tabellen
XML-Dokument inklusive XML-Schema-Dokument
SQL-Schemata
XML-Dokument inklusive XML-Schema-Dokument
SQL-Kataloge
XML-Dokument inklusive XML-Schema-Dokument
Der SQL/XML-Standard stellt den sqlxml-Namensraum bereit, der als Grundlage für die
Abbildung zwischen SQL und XML dient. Dieser Namensraum spezifiziert in XML die SQL-
Datentypen, SQL-Basisdatentypen, sowie die SQL-Schemaobjekte. Strukturierte Typen und
Referenztypen werden hingegen nicht berücksichtigt (vgl. [Tür03, S. 443 - 444]), ebenso wie
Intervalltypen (vgl. [Tür08, S. 10]).
Zunächst werden die einzelnen Abbildungsverfahren von SQL-Konzepten nach XML-
Konzepten behandelt, bevor im Abschnitt 2.2.2 auf den umgekehrten Weg eingegangen wird.
2.2.1. Abbildung von SQL nach XML
Die Verfahren zur Abbildung von SQL nach XML ermöglichen eine vollständige
Repräsentation einer kompletten SQL-Datenbank in einem XML-Schema-Dokument für
Struktur und Typen und einem weiteren XML-Dokument für die Daten (vgl. [Tür03, S. 457]).
Die Methoden werden nachstehend kurz beschrieben.
a. Abbildung von SQL-Zeichensätzen
SQL erlaubt den Einsatz von mehreren Zeichensätzen, wobei die Auswahl des bzw. der
Zeichensätze und deren interne Repräsentation von der jeweiligen Implementierung abhängig
ist. Im Gegensatz dazu ist der Zeichensatz in XML mit Unicode definiert. Diese Tatsache
verlangt von jedem Produkt mit SQL/XML-Unterstützung eine Abbildung zwischen
Zeichenketten aus den jeweiligen SQL-Zeichensätzen und den Unicode-Zeichenketten. (vgl.
[EiMe01, S. 2])
b. Abbildung von SQL-Bezeichner
Die SQL-Bezeichner werden durch SQL/XML in qualifizierte XML-Namen übersetzt. Bei
erlaubten SQL-Bezeichnern wird eine 1:1-Abbildung durchgeführt, die die interne Darstellung
in Großbuchstaben in XML-Namen abbildet. (vgl. [Tür03, S. 447]) [Tür03, S. 447] nennt
folgendes Beispiel:
Mitarbeiter
<MITARBEITER></MITARBEITER>
Bei nicht qualifizierten SQL-Bezeichnern sind Spezialsymbole wie beispielsweise ,,<", ,,>"
und ,,&" enthalten, die in XML-Namen nicht vorkommen dürfen. In solchen Fällen werden die

2. SQL/XML-Standard
9
SQL-Symbole in XML-Unicode-Werte abgebildet, die mit einem ,_x' beginnen und mit einem ,_'
enden. (vgl. [Tür03, S. 447]) Dazwischen befindet sich der dem SQL-Symbol entsprechende
Unicode-Wert (vgl. [Tür03, S. 447]) in Hexadezimalschreibweise (vgl. [EiMe01, S. 2]). Aber es
gibt auch einige Spezialfälle, wie beispielsweise ein führender ,:', der in ,_x003A_' abgebildet
wird, oder ein ,_', der unabhängig von der Platzierung immer in ,_x005F_' abgebildet wird, die
behandelt werden müssen. Hierbei handelt es sich um die so genannte ,,partially-escaped"
Abbildung. (vgl. [EiMe01, S. 2])
Bei der zweiten Abbildungsvariante, der ,,fully-escaped" Abbildung, wird das erste Zeichen
einer SQL-Zeichenkette mit vorangestelltem ,xml' oder ,XML', das im W3C-Standard ein
reserviertes Wort darstellt, oder ein ,:' als Teil einer SQL-Zeichenkette, das in XML für die
Trennung des Namespace-Prefix verwendet wird, in entsprechende Unicode-Werte abgebildet.
(vgl. [EiMe01, S. 2]) Tabelle
2
zeigt anhand von Beispielen aus [EiMe01, S. 2] und [ISO06,
S. 22] wie SQL-Bezeichner in XML-Namen abgebildet werden.
SQL-Bezeichner
fully-escaped XML-Name
partially-escaped XML-Name
Employee EMPLOYEE
EMPLOYEE
"employee
"
employee
employee
"hire date
"
hire_x0020_date
hire_x0020_date
"comp_plan
"
comp_x005F_plan
comp_x005F_plan
"dept:id
"
dept_x003A_id
dept:id
xmlcol _x0078_mlcol xmlcol
XML _x0058_ML XML
Tabelle 2: Abbildung von SQL-Bezeichnern nach XML-Namen
(vgl. [EiMe01, S. 2]) (vgl. [ISO06, S. 22])
Diese Abbildung von SQL-Bezeichner in XML-Namen ist auch umkehrbar, um aus den
gewonnenen XML-Namen wieder SQL-Bezeichner zu erhalten (vgl. [Tür03, S. 447]) (siehe
Abschnitt 2.2.2).
c. Abbildung von SQL-Datentypen
Jeder SQL-Datentyp hat einen XML-Schema-Typ als Gegenstück. XML-Schema-Typen weisen
in manchen Fällen größere Wertebereiche auf als ihr SQL-Gegenstück, wodurch geeignete
Facetten des SQL/XML-Namensraum angewendet werden müssen. Mit Hilfe dieser Facetten
können XML-Schema-Typen so eingeschränkt werden, dass sie den SQL-Datentyp möglichst
präzise widerspiegeln. Beispielsweise wird der SQL-Datentyp VARCHAR(20) auf den XML-
Schema-Typ xs:string mit der Facette maxLength:20 abgebildet. (vgl. [Tür03, S. 447]) In
nachstehender Tabelle
3
listet [Tür03, S.
448] einige SQL-Datentypen und deren
entsprechenden XML-Schema-Typen auf.

2. SQL/XML-Standard
10
SQL-Datentyp
XML-Schema-Typ
BOOLEAN boolean
CHAR, VARCHAR, CLOB
string
BIT, VARYING BIT, BLOB
base64Binary, hexBinary
SMALLINT, INT, BIGINT
integer
NUMERIC, DECIMAL
decimal
FLOAT, REAL, DOUBLE PRECISION float, double
DATE date
TIME time
TIMESTAMP dateTime
INTERVAL duration
Tabelle 3: Abbildung von SQL-Datentypen nach XML-Schema-Typen
(vgl. [Tür03, S. 448])
Der SQL/XML-Namensraum dient zur genauen Beschreibung (Annotation) des SQL-
Datentyps und der XML-Namensraum zur Beschreibung des entsprechenden XML-Schema-
Typs (vgl. [Tür03, S. 448]). Die Definition einer Typabbildung von SQL in XML-Schema folgt
immer nach folgendem Muster, wobei xs:Type hier entweder für xs:simpleType oder
xs:complexType steht (vgl. [Tür03, S. 448]):
<xs:Type name="Neuer_Typname_in_XML">
<xs:annotation>
<xs:appinfo>
<!--Beschreibung des SQL-Datentyps -->
<sqlxml:sqltype [...] name="SQL-Datentyp" [...]/>
</xs:appinfo>
</xs:annotation>
...<!-- Beschreibung des entsprechenden XML-Schema-Typs -->
</xs:Type>
Wie ersichtlich, dient der SQL/XML-Namensraum dazu, den abzubildenden SQL-Datentyp
so präzise wie möglich zu beschreiben, während der XML-Schema-Namensraum den
entsprechenden XML-Schema-Typ beschreibt (vgl. [Tür03, S. 448]). Die Annotation kann
optional angegeben werden (vgl. [Tür03, S. 448]), wobei über diesen Mechanismus die SQL-
Datentypinformationen gesichert werden, die im Abbildungsprozess zu einem XML-Schema-
Datentyp verloren gingen (vgl. [EiMe01, S. 3]). Datentyp-Parameter wie beispielsweise
Präzision und Nachkommastellen werden dabei dem XML-Namen angefügt (vgl. [Tür08,
S. 10]). Anhand der folgenden drei Beispiele nach [Tür03, S. 449 - 450] soll die Abbildung von
Basisdatentypen nach XML-Schema-Typen demonstriert werden.
Beispiel für die Abbildung des SQL-Datentyps CHAR(20):
<xs:simpleType name="CHAR_20">
<xs:annotation>
<xs:appinfo>
<sqlxml:sqltype kind="PREDEFINED"

2. SQL/XML-Standard
11
name="CHAR"
length="20"
characterSetName="LATIN1"
collation="DEUTSCH"/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:length="20"/>
</xs:restriction>
</xs:simpleType>
Beispiel für die Abbildung des SQL-Datentyps NUMERIC(12,2):
<xs:simpleType name="NUMERIC_12_2">
<xs:annotation>
<xs:appinfo>
<sqlxml:sqltype kind="PREDEFINED"
name="NUMERIC"
userPrecision="12"
scale="2"/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:numeric">
<xs:length value="12"/>
<xs:scale value="2"/>
</xs:restriction>
</xs:simpleType>
Beispiel für die Abbildung des SQL-Datentyps SMALLINT:
<xs:simpleType name="SMALLINT">
<xs:annotation>
<xs:appinfo>
<sqlxml:sqltype kind="PREDEFINED"
name="SMALLINT"/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:maxInclusive value="32767"/>
<xs:minInclusive value="-32768"/>
</xs:restriction>
</xs:simpleType>
Bei TIME- und DATE-Typen kommt die pattern-Facette ins Spiel, die an einem weiteren
Beispiel veranschaulicht werden soll. Die Zeichenkette ,,\p{Nd}{4}" in einem Pattern steht für
eine Zeichenklasse von Dezimalzahlen, die viermal auftreten muss. (vgl. [Sch03, S. 195])
Beispiel für die Abbildung des SQL-Datentyps DATE:
<xsd:simpleType name="DATE">
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind="PREDEFINED"
name="DATE"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base="xsd:date">
<xsd:pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
</xsd:restriction>
</xsd:simpleType>

Details

Seiten
Erscheinungsform
Originalausgabe
Jahr
2009
ISBN (eBook)
9783836645980
DOI
10.3239/9783836645980
Dateigröße
962 KB
Sprache
Deutsch
Institution / Hochschule
Fachhochschule Oberösterreich Standort Hagenberg – Informatik/Kommunikation/Medien, Software Engineering
Erscheinungsdatum
2010 (Mai)
Note
1
Schlagworte
sql/xml datenbanksystem
Zurück

Titel: Evaluierung der SQL/XML:2006-Standardkonformität von ausgewählten Datenbanksystemen
book preview page numper 1
book preview page numper 2
book preview page numper 3
book preview page numper 4
book preview page numper 5
book preview page numper 6
book preview page numper 7
book preview page numper 8
book preview page numper 9
book preview page numper 10
book preview page numper 11
book preview page numper 12
book preview page numper 13
book preview page numper 14
book preview page numper 15
book preview page numper 16
book preview page numper 17
book preview page numper 18
85 Seiten
Cookie-Einstellungen