1 / 52

Seminar XML und Datenbanken

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

Download Presentation

Seminar XML und Datenbanken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SeminarXML und Datenbanken Speicherung von XML-Werten vorSQL:2003

  2. 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

  3. 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

  4. 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

  5. XML vor SQL:2003Grundlagen und Verständnis • Dokumenten-Charakter • Datenzentrierte Dokumente • Dokumentenzentrierte Dokumente • Semistrukturierte Dokumente • Document Object Model (DOM)

  6. 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><

  7. 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>

  8. 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>

  9. XML vor SQL:2003Grundlagen und Verständnis • Dokumenten-Charakter • Datenzentrierte Dokumente • Dokumentenzentrierte Dokumente • Semistrukturierte Dokumente • Document Object Model (DOM)

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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>

  19. 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

  20. 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

  21. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Verwendung eines Volltextindex Fazit:

  22. 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

  23. 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”)

  24. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung als Ganzes • Kombination Volltext- und Strukturindex Fazit:

  25. XML vor SQL:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Zusammenfassung

  26. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur Speicherung derDokumentenstruktur Einfache Abbildungder Graphenstruktur DOM

  27. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur Abbildung der Graphenstruktur • Elemente: • Attribute

  28. 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;

  29. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur Abbildung der Graphenstruktur - Anfragen Fazit:

  30. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Speicherung von XML-Dokumenten Node

  31. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Speicherung von XML-Dokumenten Element Attribut

  32. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model • Anfragen • DOM-Methoden • XPath oder XQuery • SQL

  33. XML vor SQL:2003 – Speichermethoden für XML-DokumenteSpeicherung der Dokumentenstruktur • Document Object Model Fazit:

  34. XML vor SQL:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Zusammenfassung

  35. XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Abbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping Automatische Verfahren

  36. 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

  37. 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:

  38. XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Automatische Verfahren - Fazit

  39. 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

  40. 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)

  41. 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

  42. XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping • Anfragen: • Datenbankenanfragen • XML-Anfragen

  43. XML vor SQL:2003 – Speichermethoden für XML-DokumenteAbbildung auf Datenbankstrukturen Benutzerdefiniertes Mapping - Fazit

  44. XML vor SQL:2003Inhalt • Einführung und Motivation • Grundlagen und Verständnis • Speichermethoden • Speicherung als Ganzes • Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstruktur • Zusammenfassung

  45. 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

  46. <ende> Vielen Dank für die Aufmerksamkeit! <frage> Fragen? </frage> </ende>

  47. 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

  48. 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

  49. 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

  50. 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.

More Related