Databases Reference
In-Depth Information
return $reihen
Die beiden voneinander unabhängigen Variablen $reihen und $comics werden
im where -Teil mit Hilfe des Prädikats
$comics/@reihe=$reihen/@name
miteinander verglichen.
XQuery verfügt zwar über keine Schlüsselworte wie group by , um Daten zu
gruppieren, doch reichen die Bordmittel, die wir bereits kennengelernt haben, um
Ergebnisse wie das folgende zu generieren:
<p name="Asterix">
<titel sprache="de">Asterix der Gallier</titel>
<titel sprache="de">Asterix und Kleopatra</titel>
</p>
<p name="Tim und Struppi">
<titel sprache="de">Tim in Tibet</titel>
</p>
Jeder in der for -Komponente gefundene Knoten definiert eine Gruppe, deren
Mitglieder in der folgenden let -Komponente in einer Variablen abgelegt werden.
for $reihen in $d_reihen/reihen/reihe
let $comics := $d_alben/alben/album[@reihe=$reihen/@name]
return <p>{$reihen/@name} {$comics/titel}</p>
Mit Hilfe der Funktionen sum , avg , max , min und count können wir auch Ag-
gregate über diese Gruppen bilden:
for $reihen in $d_reihen/reihen/reihe
let $comics := $d_alben/alben/album[@reihe=$reihen/@name]
return <p>{$reihen/@name} {count($comics/titel)}</p>
Das Ergebnis ist
<p name="Asterix">2</p>
<p name="Tim und Struppi">1</p>
Auch wenn der Bestand an XML-Dokumenten in vielen Unternehmen zunimmt,
so sind die Daten, die in relationalen Datenbanken liegen, immer noch von zen-
traler Bedeutung. Die Daten aus XML-Dokumenten spielen daher eine eher unter-
geordnete Rolle. Gerade aus diesem Grund ist es wichtig, dass Datenbanken für
XML-Dokumente keine Insellösung sind, sondern sich in das relationale Gefüge
des unternehmensweiten Datenbestandes integrieren. Eine Umsetzung dieser In-
tegration ist Gegenstand des folgenden Abschnitts.
Search WWH ::




Custom Search