520 likes | 669 Views
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
E N D
SeminarXML und Datenbanken Speicherung von XML-Werten vorSQL:2003
XML vor SQL:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Andere Verfahren • Zusammenfassung
XML vor SQL:2003Einfü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:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Andere Verfahren • Zusammenfassung
XML vor SQL:2003Grundlagen und Verständnis • Dokumenten-Charakter • Datenzentrierte Dokumente • Dokumentenzentrierte Dokumente • Semistrukturierte Dokumente • Document Object Model (DOM)
XML vor SQL:2003 – Grundlagen und VerständnisDatenzentrierte Dokumente • Daten selbst von Interesse • Strukturinformationen dienen Unterteilung • Regulär • Strenge Typinformationen • Dokumente meist aus anderen Informationen generiert • Beispiele: Produktkataloge, Rechnungen, Fahrpläne <adresse> <plz>07743</plz> <ort>Jena</jena> <strasse>Lutherplatz</strasse> <nummer>2</nummer> <telefon>03641/406-0</telefon> <fax>03641/406-113</fax> </adresse><
XML vor SQL:2003 – Grundlagen und VerständnisDokumentenzentrierte Dokumente • Daten und Struktur beinhalten Information • Häufig als XML-Dokument erzeugt • Darstellung irregulär • Meist keine Typinformationen • Beispiele: wissenschaftliche Artikel, Buchinhalte, eMails, Webseiten <anreisebeschreibung> Sie können unser Haus auf verschiedenen Wegen erreichen: <bahn>per bahn: 1km ab Bahnhof …</bahn> <auto>per Auto: 10km ab Autobahn A4 … </auto> Sie finden uns in direkter Citylage. </anreisebeschreibung>
XML vor SQL:2003 – Grundlagen und VerständnisSemistrukturierte 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) <hotel> <name>Schwarzer Bär</name> <adresse> <strasse>Fürstengraben</strasse> … </adresse> <anreisebeschreibung> Sie können unser Haus auf verschiedenen Wegen erreichen: … </anreisebeschreibung> </hotel>
XML vor SQL:2003Grundlagen und Verständnis • Dokumenten-Charakter • Datenzentrierte Dokumente • Dokumentenzentrierte Dokumente • Semistrukturierte Dokumente • Document Object Model (DOM)
DOMImplementation Node NodeList NamedNodeMap Attr CharacterData Comment Text CDataSection Document DocumentFragment DocumentType Element Entity EntityReference Notation ProcessingInstruction XML vor SQL:2003 – Speichermethoden für XML-DokumenteDocument Object Model (DOM) • 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:2003Inhalt • 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-DokumentKlassifikation der Speicherung • Zahlreiche verschiedene Methoden • Drei grundlegende Klassen von Verfahren Speicherung vonXML-Dokumenten Speicherung vonXML-Dokumenten Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung alsGanzes Speicherung vonXML-Dokumenten Speicherung vonXML-Dokumenten Speicherung vonXML-Dokumenten Speicherung derDokumentenstruktur Speicherung vonXML-Dokumenten Speicherung vonXML-Dokumenten Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Speicherung derDokumentenstruktur Abbildung aufDatenbankstruktur Abbildung aufDatenbankstruktur Speicherung vonXML-Dokumenten Abbildung aufDatenbankstruktur Abbildung aufDatenbankstruktur Speicherung vonXML-Dokumenten Abbildung aufDatenbankstruktur Abbildung aufDatenbankstruktur Abbildung aufDatenbankstruktur Abbildung aufDatenbankstruktur
XML vor SQL:2003Inhalt • 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-DokumenteSpeicherung 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-DokumenteSpeicherung als Ganzes • Anfragen durchsuchen Dokumente sequentiell • Ineffizient bei großen Mengen • Lösung: Index Speicherung alsGanzes Volltext-Index Volltext- undStruktur-Index
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung 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
Stichworte Dokumente Dokumente Stichworte 1 3 A A D F 1 2 B 2 3 C B C D 2 1 2 3 D 3 E A C D E 1 F 3 XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Verwendung eines Volltextindex • Index als invertierte Liste
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Verwendung eines Volltextindex • Index als invertierte Liste <hotel> <hotelname>Schwarzer Bär</hotelname> Begriff Verweis <adresse> <plz>07743</plz> hotel <ort>Jena</ort> Jena <strasse>Lutherplatz</strasse> Richtung <nummer>2</nummer> ort </adresse> <anreisebeschreibung> anreisebeschreibung Aus Richtung Erfurt kommend ... </anreisebeschreibung> </hotel>
Dokumente Stichworte Stichworte Dokumente F A D 1 A 3 1 B 2 D B C C 3 2 2 D 2 1 3 E 3 D A C E 3 F 1 XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Verwendung eines Volltextindex • Ranking
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung 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-DokumenteSpeicherung als Ganzes • Verwendung eines Volltextindex Fazit:
Term Verweis Element Jena x x 07743 x x Element Verweis Ordnung Vorgänger hotel x 1 adresse x 2 x ort x 3 x plz x 3 x XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Kombination Volltext- und Strukturindex • Erweiterung des Volltextindex um Strukturinfos • Index geteilt (Struktur-, Volltextinformationen) Volltext-Index <hotel> <name>Schwarzer Bär</name> <adresse> <ort>Jena</ort> <plz>07743</plz> </adresse> </hotel> Struktur-Index
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung 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-DokumenteSpeicherung als Ganzes • Kombination Volltext- und Strukturindex Fazit:
XML vor SQL:2003Inhalt • 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-DokumenteSpeicherung der Dokumentenstruktur Speicherung derDokumentenstruktur Einfache Abbildungder Graphenstruktur DOM
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur Abbildung der Graphenstruktur • Elemente: • Attribute
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung 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-DokumenteSpeicherung der Dokumentenstruktur Abbildung der Graphenstruktur - Anfragen Fazit:
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Speicherung von XML-Dokumenten Node
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Speicherung von XML-Dokumenten Element Attribut
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Anfragen • DOM-Methoden • XPath oder XQuery • SQL
XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model Fazit:
XML vor SQL:2003Inhalt • 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-DokumenteAbbildung auf Datenbankstrukturen Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping Automatische Verfahren
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Abbildung auf Struktur objektorientierter Datenbanken XML-Dokument <hotel url="www.schwarzer-baer-jena.de"> <name>Schwarzer Bär</name> <adresse> <ort>Jena</ort> <strasse>Fürstengraben</strasse> ... </adresse> <preise> <einzelzimmer>89 </einzelzimmer> ... </preise> </hotel> Objektrelationale Datenbank Hotel
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Abbildung auf Struktur relationaler Datenbanken XML-Dokument Relationale Datenbank Hotel: <hotel url="www.schwarzer-baer-jena.de"> <name>Schwarzer Bär</name> <adresse> <ort>Jena</ort> <strasse>Fürstengraben</strasse> ... </adresse> <preise> <einzelzimmer>89 </einzelzimmer> ... </preise> </hotel> Adresse: Preise:
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Automatische Verfahren - Fazit
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung 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-Dokument Mapping Vorschrift <hotel url="www.schwarzer-baer-jena.de"> <ClassMap> <name>Schwarzer Bär</name> <ElementType Name="hotel"/> <adresse> <ToClassTable> <ort>Jena</ort> <Table Name="Hotelpreise"/> <strasse>Fürstengraben</strasse> </ToClassTable> ... <PropertyMap> </adresse> <Attribute Name="url"/> <preise> <ToColumn> <einzelzimmer>89</einzelzimmer> ... <Column Name="Hotel_URL"/> </preise> </ToColumn> </hotel> </PropertyMap> <PropertyMap> <ElementType Name="name"/> <ToColumn> <Column Name="Name"/> </ToColumn> </PropertyMap> ... </Classmap> Hotelpreise Hotel_URL Name Einzelzimmer Datenbank www.schwarzer-baer-jena.de Schwarzer Bär 89 XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping (schreddern)
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping Beispiel nach Ronald Bourret <ClassMap> <ElementType Name="hotel"/> <ToClassTable> <Table Name="Hotelpreise"/> </ToClassTable> <PropertyMap> <Attribute Name="url"/> <ToColumn> <Column Name="Hotel_ULR"/> </ToColumn> </PropertyMap> ... </ClassMap> Verbindung zwischen Elementen und Relationen Verbindung zwischen Elementen/Attributen und Datenbankattributen
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping • Anfragen: • Datenbankenanfragen • XML-Anfragen
XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping - Fazit
XML vor SQL:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Zusammenfassung
XML vor SQL:2003Zusammenfassung • 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
<ende> Vielen Dank für die Aufmerksamkeit! <frage> Fragen? </frage> </ende>
XML vor SQL:2003 – Speichermethoden für XML-DokumenteDocument 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
1 Ausgehend vom Knoten liefern folgende Methoden der Klasse Node die Knoten bzw. Knotenlisten 5 6 als Ergebnis: 1 - getParentNode() 4 2 - getFirstChild() 2 3 3 - getLastChild() 4 - getChildren() 5 - getPreviousSibling() 6 - getNextSibling() XML vor SQL:2003 – Speichermethoden für XML-DokumenteDocument Object Model (DOM) • Zugriff kann durch Navigation erfolgen
insertBefore (newChild, refChild) refChild newChild refChild appendChild (newChild) newChild removeChild (oldChild) oldChild XML vor SQL:2003 – Speichermethoden für XML-DokumenteDocument Object Model (DOM) • Manipulation des Dokumentstruktur • Methoden zum • Löschen, • Ergänzen, • Verschieben • Verändern • von Dokumentanteilen
XML vor SQL:2003 – Speichermethoden für XML-DokumenteDocument 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.