Databases Reference
In-Depth Information
die Dokumente unstrukturiert in Textform abgelegt werden. Tatsächlich werden
sie aber auf physikalischer Ebene ihrer Struktur entsprechend nativ gespeichert,
so dass DB2 schnell auf einzelne Komponenten der Dokumente zugreifen kann.
Diese Architektur ermöglicht auch eine effiziente Verarbeitung von XQuery-
Abfragen:
xquery
db2-fn:xmlcolumn('SAMMLUNGEN.INHALT')//album
Die Dokumente werden mit der Funktion db2-fn:xmlcolumn aus den Spalten-
namen sammlungen.inhalt ermittelt und untersucht. Die XQuery-Syntax, wie
wir sie in Abschnitt 22.5 kennengelernt haben, wird unterstützt 10 :
xquery
<sammlung>{
for $artikel in
db2-fn:xmlcolumn('SAMMLUNGEN.INHALT')//titel/text()
return <artikel> {$artikel} </artikel>
}</sammlung>
Weil die Tabelle nur ein einziges Dokument mit titel -Tags enthält, liefert die
Abfrage das folgende Ergebnis:
Listing 22.10: Das Ergebnis einer XQuery-Abfrage mit DB2
<sammlung>
<artikel>Asterix der Gallier</artikel>
<artikel>Asterix und Kleopatra</artikel>
<artikel>Tim in Tibet</artikel>
<artikel>Rheingold</artikel>
</sammlung>
Weitere Anwendungen ergeben sich durch die Integration der XML-Dokumente
in den relationalen „Rest“ der Datenbank. Die folgende Abfrage bezieht sich nicht
auf alle Dokumente, sondern nur auf diejenigen Sammlungen, die dem Kontakt
„Angela“ angehören. Das Ergebnis entspricht ebenfalls dem aus Listing 22.10.
xquery
for $artikel in db2-fn:sqlquery(
'select inhalt
from kontakte k, sammlungen s
where k.name=''Angela'' and k.id=s.besitzer'
)//titel/text()
return <artikel> {$artikel} </artikel>
10 Für Tabellen- und Spaltennamen spielt die Groß- und Kleinschreibung in SQL-Anweisungen keine
Rolle. Im vorliegenden Fall handelt es sich aber um einen Text.
 
Search WWH ::




Custom Search