XML und Datenbanken Textbasierte Abbildung von XML auf Datenbanken Sebastian Roolant Gliederung 1. Einleitung 2. Die Textbasierte Abbildung 2.1 Speicherung 2.2 Indexbildung 2.3 Umsetzung in Produkten 3. Zusammenfassung Einleitung Warum Abbildung von XML auf Datenbanken? XML nicht nur als temporäres Austauschformat sondern dauerhafte Speicherung von XMLDokumenten keine zusätzliches XML-Datenbanbanksysteme sondern Speicherung in vorhandenen relationalen Datenbanksystemen Einleitung Unterschiede, die überwunden werden müssen: Relational Welt XML Die Daten sind in mehreren flachen Tabellen gespeichert. In manchen Systemen sind verschachtelte Tabellen erlaubt, aber nicht in beliebiger Tiefe. Daten liegen in einer hierarchischen, beliebig tiefen Struktur vor Spalten haben einen einzelnen Wert. Elemente mit Werten können mehrfach auftreten. keine Ordnung der Tabellenzeilen Elemente sind geordnet. Schema ist verpflichtend und vollständig. Schema ist optional und kann offen sein. Nur im Schema beschriebene Information kann gespeichert werden. Kommentare und Verarbeitungsanweisungen sind überall im Dokument erlaubt, ohne dass sie im Schema deklariert werden müssen. eindeutige Struktur der Daten komplexe Inhaltsmodelle wie Auswahl (choice) und gemischter Inhalt Einleitung Klassifikation der Verfahren: Einleitung Dokumentencharakter spielt beim Einsatz der Verfahren eine wichtige Rolle Datenzentrierte XML-Dokumente Dokumentzentrierte XML-Dokumente In erster Linie Daten von Interesse Beinhalten Daten und Struktur der Informationen Daten sind häufig aus anderen Informationen generiert worden Daten sind häufig bereits ursprünglich im XML-Format erstellt worden Bsp.: elektronische Kataloge, Bestellungen … Bsp.: wissenschaftl. Artikel, Buchinhalte Für Anfragen ist das Erstellen von Ergebnisdokumenten notwendig XML-Dokumente sollen bei der Speicherung als Ganzes erhalten bleiben oder originalgetreu wiedergegeben werden können Gliederung 1. Einleitung 2. Die textbasierte Abbildung 2.1 Speicherung 2.2 Indexbildung 2.3 Umsetzung in Produkten 3. Zusammenfassung Die textbasierte Abbildung eignet sich für dokumentzentrierte XML-Dokumente XML-Dokumente werden als Ganzes gespeichert auch opake Speicherung genannt keine Umwandlungsoperationen notwendig zwei Möglichkeiten der Speicherung: als Dateien im Dateisystem als CLOBs innerhalb von Datenbanksystemen Speicherung XML-Dokumente als Dateien im Dateisystem Anwendung DBS XML DBS hat Zugriff über Zeiger Zugriff auch direkt von Außen möglich Speicherung XML-Dokumente als CLOBs in DBS Anwendung DBS CLOB DBS kann direkt auf XML-Daten zugreifen Zugriff von Außen nur über DBS möglich Speicherung Anfragen durchsuchen die XML-Dokumente sequenziell bei großen Dokumentkollektionen sehr ineffizient Anlegen eines Indexes notwendig Effizienzsteigerung Verringerung der Antwortzeiten Gliederung 1. Einleitung 2. Die textbasierte Abbildung 2.1 Speicherung 2.2 Indexbildung 2.3 Umsetzung in Produkten 3. Zusammenfassung Indexbildung Klassifikation der Indexbildung Volltextindex bekannt aus dem Information Retrieval (Bsp. Suchmaschinen) 3 Teilaufgaben des Information Retrieval: Dokumente Index Deskribierung Benutzerschnittstelle Stichworte Dokumente A 1 B 2 C 2 3 D 1 2 E 3 F 1 Recherche 3 3 Ergebnispräsentation Volltextindex Deskribierung: Aufbereitung von Dokumenten statisch wortbasierte Verfahren linguistische Verfahren Stoppworte Streichen seltener Begriffe Stammwortreduktion Wortnormalisierung Erkennen von Satzzusammenhängen wissensbasierte Verfahren Klassifikation Thesaurus Ontologien Volltextindex Index wird so erstellt, dass ein schneller Zugriff auf die Informationen möglich ist häufig mehrere Indizes für verschiedene Anfragearten Realisierung der Indizes als invertierte Listen Volltextindex Indexbildung Bestimmung der Stichworte in den Dokumenten Speicherung der Stichworte und der zugehörigen Dokumente Stichworte Dokumente A D F 1 B C D A C D 2 3 Dokumente Stichworte E A 1 3 B 2 C 2 3 D 1 2 E 3 F 1 3 Volltextindex <hotel> Begriff Verweis <hotelname>Hotel Hübner</hotelname> <adresse> hotel <plz>18119</plz> Warnemünde <ort>Warnemünde</ort> Rostock <strasse>Seestraße</strasse> <nummer>12</nummer> ort anreisebeschreibung </adresse> <anreisebeschreibung> Aus Richtung Rostock kommend… </anreisebeschreibung> </hotel> Volltextindex Verfahren zur Recherche: boolesche Retrieval Vektorraummodell prohabilistische Modell Volltextindex Ranking Bestimmung der Stichworte der Dokumente und der Häufigkeit ihres Auftretens Dokumente Speicherung der Stichworte und der zugehörigen Dokumente, sortiert nach Häufigkeit des Auftretens Stichworte Stichworte A D F 1 B C D 2 A 3 C D E Dokumente A 3 1 B 2 C 3 2 D 2 3 E 3 F 1 1 Volltextindex Anfragen des booleschen Retrievals sind möglich Information Retrieval Anfragen AND, OR und NOT über Index realisierbar Wortstammreduktion, Ähnlichkeitssuche, Phrasensuche… Ranking der Ergebnismengen Auftretenshäufigkeit, Position Volltext- und Strukturindex nur Volltextindex: keine Berücksichtigung der XMLStrukur bei vielen Anfragen ist die Struktur aber notwendig daher: Index wird erweitert um die hierarchische Struktur der XML-Dokumente Volltext-Index Term Verweis Element Warnemünde Seestraße Rostock XML-Index Element Verweis Ordnung hotel 1 adresse 2 ort 3 strasse 3 anreisebeschreibung 2 <hotel> <hotelname>Hotel Hübner</hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> <nummer>12</nummer> </adresse> <anreisebeschreibung> Aus Richtung Rostock kommend… </anreisebeschreibung> </hotel> Vorgänger Volltext- und Strukturindex Anfragen des booleschen Retrievals sind möglich AND, OR und NOT über Index realisierbar Information Retrieval Anfragen Wortstammreduktion, Ähnlichkeitssuche, Phrasensuche… Auswertung der XML-Tagstruktur XML-Anfragesprachen einsetzbar, um die im Index gespeicherten Informationen auszuwerten Volltext- und Strukturindex XPath XML‘ Einsatz von Anfragesprachen Anfrageauswertung Funktionsaufruf Index XPath DBS XML XML‘ Gliederung 1. Einleitung 2. Die textbasierte Abbildung 2.1 Speicherung 2.2 Indexbildung 2.3 Umsetzung in Produkten 3. Zusammenfassung Umsetzung in Produkten alle Hersteller großer kommerzieller relationaler Datenbanksysteme unterstützen die Speicherung von XML Lösungen variieren zwischen den Systemen ein neuer Teil des SQL-Standards als Teil 14 wird XML-Funktionalität in SQL standardisiert Name: SQL/XML definiert u.a. einen eigenen Typ zur Speicherung von XML Umsetzung in Produkten DB2 UDB XML-Extender Speicherung als „XML Column“ (ADT), d.h. XMLDokument als Wert einer Spalte Typen dieser Spalte: XMLVarchar für kürzere Dokumente XMLCLOB für größere Dokumente XMLFILE, um Dokumente außerhalb der Datenbank zu speichern Kontrolle durch Datenbank Umsetzung in Produkten DB2 UDB Beispiel für Tabellendefinition: CREATE TABLE Hoteluebersicht (id INTEGER NOT NULL PRIMARY KEY, Hotels db2xml.xmlclob); Umsetzung in Produkten Oracle Database mit Oracle 9i wurde eine neuer systemdefinierter Objekttyp eingeführt: XMLType es kann zwischen zwei Realisierungen gewählt werden In einer Realisierung entspricht XMLType dem CLOB Umsetzung in Produkten Oracle Database Tabelle mit einer Spalte vom Type XMLType: CREATE TABLE Hoteluebersicht (Hotels SYS.XMLType); elegantere Möglichkeit (keine benannten Spalten): CREATE TABLE Hoteluebersicht OF XMLTYPE; Fkt. value(Hoteluebersicht) um Zeilen anzusprechen Gliederung 1. Einleitung 2. Die textbasierte Abbildung 2.1 Speicherung 2.2 Indexbildung 2.3 Umsetzung in Produkten 3. Zusammenfassung Zusammenfassung Methode der opaken Speicherung ermöglicht, Dokumente im Original zu erhalten keine Umformung und somit keine Rekonstruktion der Dokumente notwendig Index wird außerhalb der Dokumentenkollektion gespeichert, verändert die Dokumente also nicht Zusammenfassung Anfragen, die das gesamte Dokument liefern, lassen sich gut ausführen anders bei Anfragen, bei denen nur ein Ausschnitt aus einem Dokument ausgegeben werden sollen gesamte Dokument muss geparst werden geeignet für dokumentzentrierte XML-Anwendungen