Kapitel 14
Die XML-Datenbank
310
Umgang mit XML-Dokumenten die Nutzung standardkonformer Abfragespra-
chen wie XPath.
14.2 XML-Dokumente speichern
Wenn eine Tabellenspalte vom Typ XMLTYPE definiert ist, bedeutet das zunächst
nur, dass die Spalte XML-Dokumente enthält. Die XML-Dokumente können auf
zweierlei Art und Weise gespeichert werden:
Dokumentorientierte Speicherungsform (CLOB-basiert)
Objektrelationale Speicherungsform
In der Literatur stößt man häufig auf die Klassifizierung von XML-Dokumenten in
datenorientiertes XML und dokumentorientiertes XML.
Dokumentorientiertes XML ist das vom W3C ursprünglich anvisierte Anwen-
dungsgebiet von XML und fokussiert auf das Dokument als solches. Eine einzelne
Information aus dem XML-Dokument hat ohne seinen Kontext keine Bedeutung
und ist wertlos. Ein typisches Beispiel ist ein Presseartikel. Ein einzelner Absatz
aus diesem Artikel ist ohne den Rest wertlos. Der Nutzen von dokumentorientier-
tem XML ergibt sich durch das layoutneutrale XML-Format. Mit dokumentorien-
tiertem XML wird im Normalfall wie folgt gearbeitet:
Zugriffe erfolgen auf das ganze Dokument. Auf Dokumentteile oder einzelne
Elemente wird nicht oder nur selten zugegriffen.
Dokumente werden anhand von Volltextabfragen gesucht. Größer- oder Klei-
ner-als-Abfragen werden normalerweise nicht getätigt.
Die Dokumente werden häufig in ein anderes Layout (HTML) transformiert.
Dazu kommt XSLT zum Einsatz.
Der Einsatz von datenorientiertem XML wurde in der Praxis entwickelt und wird
normalerweise im Datenaustausch verwendet. Hier ist der Dokumentkontext nur
von untergeordneter Bedeutung. Einzelne Abschnitte bzw. Elemente können auch
sinnvollen Informationsgehalt haben, wenn sie für sich alleine stehen. Ein typi-
sches Beispiel ist eine Preisliste im XML-Format. Ein Auszug aus der Preisliste ist
der Preis für ein bestimmtes Produkt. Dieser Ausschnitt ist auch für sich alleine
gesehen eine sinnvolle Information. Datenorientiertes XML stellt andere Anforde-
rungen als dokumentorientiertes XML:
Da einzelne Elemente oder Teildokumente auch ohne ihren Kontext eine sinn-
volle Bedeutung haben, ist es durchaus üblich, dass diese für sich alleine abge-
fragt werden.
Volltextsuche findet normalerweise nicht statt; dagegen sind Größer- oder Klei-
ner-als-Abfragen üblich.
14.2
XML-Dokumente speichern
311
Sehr wichtig ist die Integration mit anderen Daten oder Systemen. Eine gängi-
ge Anforderung ist, die XML-Dokumente mit bestehenden relationalen Tabel-
len zu integrieren.
In der Praxis zeigt sich, dass häufig mit Mischformen zwischen dokumentorien-
tiertem und datenorientiertem XML gearbeitet wird. Ein typisches Beispiel dafür
sind Zeitungsartikel, die in einem Archiv gespeichert werden. Ein solches XML-
Dokument enthält normalerweise einen Abschnitt mit (strukturierten) Metadaten
und einen Abschnitt mit dem eher unstrukturierten Text des Artikels. Bei einem
solchen XML-Dokument sind die Merkmale von daten- und dokumentorientier-
tem XML vereint. Auf den strukturierten Metadatenteil treffen die Merkmale und
Anforderungen von datenorientiertem XML und auf den unstrukturierten Teil die
von dokumentorientiertem XML zu.
Die Wahl der Speicherungsform hat in der Oracle-Datenbank (im Gegensatz zu
manch anderem Anbieter) keine Konsequenzen hinsichtlich des Zugriffs auf die
XML-Dokumente. Die Art und Weise, wie mit XML-Dokumenten in Oracle10g
umgegangen wird, ist von der gewählten Speicherungsform unabhängig. Die
Speicherungsform hat jedoch massiven Einfluss auf die Performance, mit welcher
die Zugriffe ablaufen werden. Eine ungünstige Speicherungsform bewirkt also
nicht, dass eine Datenbankanwendung nicht funktioniert, sie wird jedoch mit
schlechterer Performance funktionieren. Da gute Performance immer im Inter-
esse der Projektbeteiligten ist, sollte die Speicherungsform für XML-Dokumente
von Anfang an sorgfältig gewählt werden.
14.2.1 Die dokumentenbasierte Speicherung
Dokumentorientiertes XML wird in der Oracle-Datenbank als Textstrom gespei-
chert. Dabei wird zwar der Datentyp XMLTYPE verwendet; tatsächlich wird das
Dokument als CLOB gespeichert.
Um diese Speicherungsform zu nutzen, müssen Sie lediglich eine Tabelle oder
eine Tabellenspalte vom Typ XMLTYPE erstellen.
SQL> create table XML_DOKUMENTBASIERT_1 of xmltype;
Table created.
SQL> create table XML_DOKUMENTBASIERT_2
2 (
3 ID number(10),
4 DOC xmltype
5 )
6 xmltype column DOC store as clob;
Table created.
Listing 14.3: Eine XML-Tabelle mit dokumentenbasierter Speicherung

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.