Seminar XML und Datenbanken Speicherung von XML-Werten vor SQL:2003
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Andere Verfahren Zusammenfassung
XML vor SQL:2003 Einführung und Motivation Notwendigkeit einer persistenten Speicherung von XML-Dokumenten Vor SQL:2003 Keine XML-Unterstützung in SQL-Norm Speichertechniken nur Notbehelf Mit Nachteilen behaftet
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Andere Verfahren Zusammenfassung
XML vor SQL:2003 Grundlagen und Verständnis Dokumenten-Charakter Datenzentrierte Dokumente Dokumentenzentrierte Dokumente Semistrukturierte Dokumente Document Object Model (DOM)
XML vor SQL:2003 – Grundlagen und Verständnis Datenzentrierte Dokumente Daten selbst von Interesse Strukturinformationen dienen Unterteilung Regulär Strenge Typinformationen Dokumente meist aus anderen Informationen generiert Beispiele: Produktkataloge, Rechnungen, Fahrpläne Jena Lutherplatz / / <
XML vor SQL:2003 – Grundlagen und Verständnis Dokumentenzentrierte Dokumente Daten und Struktur beinhalten Information Häufig als XML-Dokument erzeugt Darstellung irregulär Meist keine Typinformationen Beispiele: wissenschaftliche Artikel, Buchinhalte, s, Webseiten Sie können unser Haus auf verschiedenen Wegen erreichen: per bahn: 1km ab Bahnhof … per Auto: 10km ab Autobahn A4 … Sie finden uns in direkter Citylage.
XML vor SQL:2003 – Grundlagen und Verständnis Semistrukturierte Dokumente Mischform aus daten- und dokumentenzentrierten Dokumenten Beispiele: Bücher (Metadaten vs. Inhalten) Hotelinformationen (Preise, Adresse vs. Beschreibungen, Anreisemöglichkeiten) Online-Buchhändler (Bücher, Lieferzeiten vs. Inhaltsangeben, Rezessionen) Schwarzer Bär Fürstengraben … Sie können unser Haus auf verschiedenen Wegen erreichen: …
XML vor SQL:2003 Grundlagen und Verständnis Dokumenten-Charakter Datenzentrierte Dokumente Dokumentenzentrierte Dokumente Semistrukturierte Dokumente Document Object Model (DOM)
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Comment ProcessingInstruction Document DocumentFragment DocumentType Element Entity EntityReference Notation Text CDataSection DOMImplementationNodeNodeListNamedNodeMap CharacterData Attr Empfehlung des W3C beschreibt Schnittstellen zum Zugriff auf XML-Dokumente und zur Veränderung von Struktur und Inhalten die zugrundeliegende Implementierung und Speicherung der XML- Dokumente wird nicht definiert
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden für XML-Dokumente Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Zusammenfassung
XML vor SQL:2003 – Speichermethoden für XML-Dokument Klassifikation der Speicherung Zahlreiche verschiedene Methoden Drei grundlegende Klassen von Verfahren Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung von XML-Dokumenten Abbildung auf Datenbankstruktur Speicherung von XML-Dokumenten Speicherung der Dokumentenstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden für XML-Dokumente Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Zusammenfassung
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes XML-Dokumente als Datei in Dateisystem speichern und verwalten Keine Umwandlungsoperationen nötig Orginalzustand bleibt erhalten und jederzeit verfügbar Speicherung als CLOBs in Datenbanksystem Character Language OBject - Datenbankfeld zur Speicherung von sehr langen Textdaten
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Anfragen durchsuchen Dokumente sequentiell Ineffizient bei großen Mengen Lösung: Index Speicherung als Ganzes Volltext-Index Volltext- und Struktur-Index
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Information Retrieval Anfragen auf Volltext Verwendung in Suchmaschinen Anfragen möglich wie: Welche Dokumente handeln von XML? In welchem Dokument treten Datenbanken im Zusammenhang mit XML auf? Deskribierung, Recherche und Ergebnispräsentation Deskribierung – Aufbereitung von Dokumenten Statistisch wortbasierte Verfahren Linguistische Verfahren Wissensbasierte Verfahren
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Index als invertierte Liste 2 1 ADF 3 CDB ACDE DokumenteStichworte A B D E C F Dokumente
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Index als invertierte Liste Verweis Jena Jena 2 Schwarzer Bär Aus Richtung Erfurt kommend... Begriff anreisebeschreibung ort Richtung hotel Lutherplatz
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Ranking A B D E C F Stichworte Dokumente 2 1 EA 3 D C B D C F AD Stichworte
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Anfragen: boolesches Retrieval Kombination von Anfrageteilen mit AND, OR oder NOT Beispiele: Hotel AND Jena (Hotel OR Pension) AND (Jena OR Weimar) linguistische Anfragen Stammwortsuche, phonetische Suche, Ähnlichkeitssuche
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Verwendung eines Volltextindex Fazit: SchemabeschreibungNicht erforderlich DokumentenrekonstruktionDokumente bleiben im Original erhalten AnfragenAnfragen des Information Retrieval BesonderheitenVolltextfunktion Keine Auswertung der XML-Struktur Einsatzdokumentenzentrierte
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Kombination Volltext- und Strukturindex Erweiterung des Volltextindex um Strukturinfos Index geteilt (Struktur-, Volltextinformationen) Schwarzer Bär Jena TermVerweisElement Jena x x x x ElementVerweisOrdnungVorgänger hotel x 1 adresse x 2 x ort x 3 x plz x 3 x Volltext-Index Struktur-Index
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Kombination Volltext- und Strukturindex Anfragen: Boolesches Retrieval Linguistische Anfragen Position der Stichworte im Index erlaubt weitere Anfragen Auswertung der XML-Struktur hotel.adresse CONTAINS (Jena) hotel.adresse CONTAINS (Weimar) OR pension.adresse CONTAINS (Erfurt)
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung als Ganzes Kombination Volltext- und Strukturindex Fazit: Schemabeschreibungnicht erforderlich DokumentenrekonstruktionOriginal bleibt erhalten AnfragenInformation Retrieval und Auswertung der Struktur BesonderheitenVolltextfunktion Einsatzdokumentenzentriert semistrukturiert
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Zusammenfassung
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Speicherung der Dokumentenstruktur Einfache Abbildung der Graphenstruktur DOM
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Abbildung der Graphenstruktur Elemente: Attribute DocIDElementnameIDVorgängerKind-NrWert h001hotel1011 h001name Schwarzer Bär h001adresse h001strasse Fürstengraben h001nummer h001ort Jena DocIDAttributnameElementIDWert h001url101www.schwarzer-baer-jena.de h001id101h001
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Abbildung der Graphenstruktur - Anfragen Einfache Anfragen effizient SQL, Fähigkeiten jedoch kaum genutzt Beispiel: alle Hotelnamen in Jena: SELECT FROM Elemente a, Elemente b WHERE a.elemetname = name AND b.elementname = ort AND b.wert = Jena AND a.DocID = b.DocID;
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Abbildung der Graphenstruktur - Anfragen Fazit : Schemabechreibungnicht erforderlich Dokumentenrekonstruktionmöglich, aber sehr aufwendig AnfragenXQuery / XQL / angepasstes SQL Besonderheiten- Einsatzsemistrukturiert, aber auch für daten- und dokumentenstrukturierte Anwendungen
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Document Object Model Speicherung von XML-Dokumenten node_idnode_typdoc_idparentp_siblingn_sibling 001elementh elementh elementh … 034attributh attributh Node
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Document Object Model Speicherung von XML-Dokumenten node_idtag_nametext 001hotel 002nameSchwarzer Bär 003adresse 004plz07743 ……… 011anreisebeschreibungSie finden... node_idattr_nameattr_valuespecified 012urlwww.schwarzer-baer-jena.detrue 013idh001true Element Attribut
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Document Object Model Anfragen DOM-Methoden XPath oder XQuery SQL
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Speicherung der Dokumentenstruktur Document Object Model Fazit: Schemabechreibungnicht erforderlich Dokumentenrekonstruktionmöglich, aber sehr aufwendig AnfragenXQuery / XQL / angepasstes SQL BesonderheitenAnfragen und Updates über DOM- Methoden Einsatzsemistrukturiert, aber auch für daten- und dokumentenzentrierte Anwendungen
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Zusammenfassung
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Abbildung auf Datenbankstrukturen Automatische Verfahren Benutzerdefiniertes Mapping
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Abbildung auf Struktur objektorientierter Datenbanken hotelIDnameadressepreise Ortstrasse...einzelzimmer... H0001Schwarzer BärJenaFürstengraben89 Objektrelationale Datenbank Hotel XML-Dokument Schwarzer Bär Jena Fürstengraben
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Abbildung auf Struktur relationaler Datenbanken XML-Dokument HotelIDHotelnameAdressePreise H0001Schwarzer BärA0001P0001 AdresseIDOrtStrasse... A0001JenaFürstengraben PreiseIDEinzelzimmer... P Hotel: Preise: Adresse: Schwarzer Bär Jena Fürstengraben Relationale Datenbank
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Schemabechreibungerforderlich Dokumentenrekonstruktionnur teilweise möglich AnfragenSQL- und XML-Anfrage und Transformation möglich BesonderheitenErhalten der Dokumentordnung über zusätzliches Attribut Einsatzdatenzentrierte Anwendungen Automatische Verfahren - Fazit
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping bisher: Art der Speicherung nicht beeinflussbar jetzt: Mappingvorschrift durch Benutzer spezifiziert Struktur der XML-Dokumente und Datenbankschema können unabhängig voneinander entworfen werden (und relativ autonom sein) ebenso: Speicherung von XML-Dokumenten in existierende Datenbanken
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping (schreddern) Schwarzer Bär Hotel_URL Hotelpreise NameEinzelzimmer Datenbank Schwarzer Bär Jena Fürstengraben... XML-Dokument Mapping Vorschrift
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping Beispiel nach Ronald Bourret... Verbindung zwischen Elementen und Relationen Verbindung zwischen Elementen/Attributen und Datenbankattributen
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping Anfragen: Datenbankenanfragen XML-Anfragen
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Abbildung auf Datenbankstrukturen Schemabechreibungerforderlich Dokumentenrekonstruktionnicht möglich AnfragenSQL BesonderheitenMapping-Vorschriften erforderlich Speicherung der Dokumenten- Ordnung durch zusätzliches Attribut Einsatzdatenzentrierte XML-Dokumente Benutzerdefiniertes Mapping - Fazit
XML vor SQL:2003 Inhalt Einführung und Motivation Grundlagen und Verständnis Speichermethoden Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur Zusammenfassung
XML vor SQL:2003 Zusammenfassung Vielzahl von Verfahren und Techniken existieren nebeneinander oft aus den Bereichen Datenbanken und Dokumentverarbeitung generell: keine beste Lösung für alle XML- Dokumente geeignetste Lösung ist abhängig von konkreten Erfordernissen vieles ist noch in der Entwicklung SQL:2003
Vielen Dank für die Aufmerksamkeit! Fragen?
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Methoden der Klasse Node Fast alle Dokumentbestandteile basieren auf dieser Klasse Die Klasse Node enthält: Methoden zur Identifikation des Knotentyps Methoden zur Navigation durch die Dokumentstruktur Methoden zur Manipulation der Dokumentstruktur
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Zugriff kann durch Navigation erfolgen Ausgehend vom Knoten liefern folgende Methoden der Klasse als Ergebnis: 6 - getNextSibling() 4 - getChildren() 3 - getLastChild() 2 - getFirstChild() 1 - getParentNode() 5 - getPreviousSibling() Node die Knoten bzw. Knotenlisten
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Manipulation des Dokumentstruktur insertBefore (newChild, refChild) refChild appendChild (newChild) newChild refChild removeChild (oldChild) oldChild Methoden zum oLöschen, oErgänzen, oVerschieben oVerändern von Dokumentanteilen
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Methoden der Klasse Elemente getTagName() - Tagnamen eines Elementes getAttribute(name) - liefert das angegebene Attribut setAttribute(name, value) - Verändern und Ergänzen von Attributen removeAttribute(name) - löscht das spezifizierte Attribut getElementsByTagName(tagname) - alle Elemente des Dokumentes, mit angegebenen Elementnamen haben getElementsByTagName(*) - alle Elemente.
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Methoden der Klasse Attribute Attributinformationen können über die folgenden Methoden erfragt werden: getName() - Attributnamen getValue() - Attributwert setValue(value) - setzt Attributwert.
XML vor SQL:2003 – Speichermethoden für XML-Dokumente Document Object Model (DOM) Methoden der Klasse Character Data Zum Auslesen, Verändern und Setzen von Textanteilen getLength() getData() liefert den vollständigen Text substringData(start,count) appendData(text) replaceData(offset,count,text) insertData(offset,text) deleteData(offset,count)