Databases Reference
In-Depth Information
Zu jeder XML-Komponente, die wir bisher besprochen haben, finden wir hier
einen Knoten. Die Blätter des Baumes bilden die Texte und die Attribute. Ganz
ähnlich wie in Dateisystemen können wir einzelne Elementknoten durch Pfade
beschreiben. Der Pfad, der uns etwa zu allen Titelelementen führt, lautet:
Listing 22.8: Ein einfacher XPath-Ausdruck
/alben/album/titel
Wenn wir diese Pfade mit Hilfe von select -Anweisung formulieren wollen, die
auf den Tabellen aus Listing 22.6 aufbauen, dann bedarf dies einiger Joins. Es gibt
jedoch Datenbanksysteme, die XML-Dokumente so speichern, dass sie schnell auf
Pfade zugreifen können. Die zugehörige Abfragesprache nutzt dann auch Aus-
drücke, die so aussehen können wie die aus Listing 22.8. Da diese Datenbank-
systeme nicht den Umweg über Tabellen gehen, sondern für die Speicherung Da-
tenstrukturen wählen, die der hierarchischen Natur von XML Rechnung tragen,
werden sie auch als nativ bezeichnet.
Um auf Inhalte von XML zuzugreifen, hat das W3C die Abfragesprache XPath
spezifiziert. 5 Die meisten XML-DBMS können nicht nur XML-Dokumente verwal-
ten, sondern ihre Inhalte auch über XPath-Abfragen verfügbar machen. Ein sol-
ches System ist BaseX 6 , dessen Benutzerschnittstelle wir in Abbildung 22.3 sehen.
Unter den vielen XML-Datenbankensystemen 7 zeichnet sich BaseX durch einfa-
che Installation und Handhabbarkeit aus. Eine andere Möglichkeit, XML-Daten
zu persistieren, wird noch in Abschnitt 22.6 aufgezeigt.
Zum XPath-Ausdruck aus Listing 22.8 findet BaseX für das Beispiel aus Lis-
ting 22.7 das folgende Ergebnis.
<titel sprache="de">Asterix der Gallier</titel>
<titel sprache="de">Asterix und Kleopatra</titel>
<titel sprache="de">Tim in Tibet</titel>
<titel sprache="de">Rheingold</titel>
Neben vollständig qualifizierten Pfadausdrücken, wie dem aus Listing 22.8, kön-
nen wir mit
//titel
auf alle Elemente namens titel zugreifen, die irgendwo im Dokument stehen.
Da es außer den Elementen auch Attribute und Textknoten in XML-Dokumenten
geben kann, bedarf es dafür einer eigenen Abfragemöglichkeit. Die beiden folgen-
den XPath-Ausdrücke
/alben/album/titel/text()
5 Siehe www.w3.org/TR/xpath20/
6 siehe basex.org/
7 Eine umfassende Übersicht zu XML-Datenbanken ist unter www.rpbourret.com/xml/XMLDatabaseProds.htm
zusammengestellt.
 
Search WWH ::




Custom Search