Seminar XML und Datenbanken Speicherung von XML-Werten vor SQL:2003

Preview:

Citation preview

SeminarXML und Datenbanken

Speicherung von XML-Werten vor SQL:2003

XML vor SQL:2003

Inhalt

Einführung und MotivationGrundlagen und VerständnisSpeichermethoden

Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur

Andere VerfahrenZusammenfassung

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 MotivationGrundlagen und VerständnisSpeichermethoden

Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur

Andere VerfahrenZusammenfassung

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 InteresseStrukturinformationen dienen UnterteilungRegulärStrenge TypinformationenDokumente meist aus anderen

Informationen generiertBeispiele: 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ändnis

Dokumentenzentrierte Dokumente

Daten und Struktur beinhalten InformationHäufig als XML-Dokument erzeugtDarstellung irregulärMeist keine TypinformationenBeispiele: 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ä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)

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

DOMImplementation Node NodeList NamedNodeMap

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 MotivationGrundlagen und VerständnisSpeichermethoden 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 MethodenDrei grundlegende Klassen von Verfahren

Speicherung vonXML-Dokumenten

Speicherung vonXML-Dokumenten

Speicherung alsGanzes

Speicherung vonXML-DokumentenSpeicherung von

XML-DokumentenSpeicherung von

XML-DokumentenSpeicherung von

XML-DokumentenSpeicherung von

XML-DokumentenAbbildung auf

DatenbankstrukturSpeicherung von

XML-Dokumenten

Speicherung vonXML-Dokumenten

Speicherung derDokumentenstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

Speicherung alsGanzes

Speicherung derDokumentenstruktur

Abbildung aufDatenbankstruktur

XML vor SQL:2003

Inhalt

Einführung und MotivationGrundlagen und VerständnisSpeichermethoden 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ötigOrginalzustand bleibt erhalten und

jederzeit verfügbarSpeicherung 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 MengenLösung: Index

Speicherung alsGanzes

Volltext-IndexVolltext- 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 A D F

3

C DB

A C D E

Dokumente Stichworte

122131

AB

DE

C

F

3

3

32

Stichworte Dokumente

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung als Ganzes

Verwendung eines Volltextindex Index als invertierte Liste

Verweis

Jena

<adresse> <plz>07743</plz> <ort>Jena</ort>

<nummer>2</nummer> </adresse>

<anreisebeschreibung>

</anreisebeschreibung></hotel>

<hotelname>Schwarzer Bär</hotelname>

Aus Richtung Erfurt kommend ...

<hotel>

Begriff

anreisebeschreibung

ort

Richtung

hotel

<strasse>Lutherplatz</strasse>

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung als Ganzes

Verwendung eines Volltextindex Ranking

AB

DE

C

F

13223

13

13

2

Stichworte Dokumente

2

1

EA3 DC

B DC

FA D

Dokumente Stichworte

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung als Ganzes

Verwendung eines VolltextindexAnfragen: 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 VolltextindexFazit:

Schemabeschreibung Nicht erforderlich

Dokumentenrekonstruktion Dokumente bleiben im Original erhalten

Anfragen Anfragen des Information Retrieval

Besonderheiten Volltextfunktion

Keine Auswertung der XML-Struktur

Einsatz dokumentenzentrierte

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)

<hotel> <name>Schwarzer Bär</name> <adresse> <ort>Jena</ort> <plz>07743</plz> </adresse></hotel>

Term Verweis Element

Jena x x07743 x x

Element Verweis Ordnung Vorgänger

hotel x 1adresse x 2 xort x 3 xplz x 3 x

Volltext-Index

Struktur-Index

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung als GanzesKombination 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 StrukturindexFazit:

Schemabeschreibung nicht erforderlich

Dokumentenrekonstruktion Original bleibt erhalten

Anfragen Information Retrieval und Auswertung der Struktur

Besonderheiten Volltextfunktion

Einsatz dokumentenzentriert

semistrukturiert

XML vor SQL:2003

Inhalt

Einführung und MotivationGrundlagen und VerständnisSpeichermethoden

Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur

Zusammenfassung

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung der Dokumentenstruktur

Speicherung derDokumentenstruktur

Einfache Abbildungder Graphenstruktur

DOM

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung der Dokumentenstruktur

Abbildung der Graphenstruktur

Elemente:

Attribute

DocID Elementname ID Vorgänger Kind-Nr Wert

h001 hotel 101 1

h001 name 102 101 1 Schwarzer Bär

h001 adresse 103 101 2

h001 strasse 104 103 1 Fürstengraben

h001 nummer 105 103 2 2

h001 ort 106 103 3 Jena

DocID Attributname ElementID Wert

h001 url 101 www.schwarzer-baer-jena.de

h001 id 101 h001

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 - AnfragenFazit:

Schemabechreibung nicht erforderlich

Dokumentenrekonstruktion möglich, aber sehr aufwendig

Anfragen XQuery / XQL / angepasstes SQL

Besonderheiten -

Einsatz semistrukturiert, 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_id node_typ doc_id parent p_sibling n_sibling

001 element h001 - - -

002 element h001 001 - 003

003 element h001 001 002 004

034 attribut h001 027 033 035

035 attribut h001 001 034 -

Node

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung der Dokumentenstruktur

Document Object Model Speicherung von XML-Dokumenten

node_id tag_name text

001 hotel

002 name Schwarzer Bär

003 adresse

004 plz 07743

… … …

011 anreisebeschreibung Sie finden ...

node_id attr_name attr_value specified

012 url www.schwarzer-baer-jena.de true

013 id h001 true

Element

Attribut

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung der Dokumentenstruktur

Document Object ModelAnfragen

DOM-MethodenXPath oder XQuerySQL

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Speicherung der Dokumentenstruktur

Document Object ModelFazit:

Schemabechreibung nicht erforderlich

Dokumentenrekonstruktion möglich, aber sehr aufwendig

Anfragen XQuery / XQL / angepasstes SQL

Besonderheiten Anfragen und Updates über DOM-Methoden

Einsatz semistrukturiert, aber auch für daten- und dokumentenzentrierte Anwendungen

XML vor SQL:2003

Inhalt

Einführung und MotivationGrundlagen und VerständnisSpeichermethoden

Speicherung als Ganzes Speicherung der Dokumentenstruktur Abbildung auf Datenbankstruktur

Zusammenfassung

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Abbildung aufDatenbankstrukturen

Automatische Verfahren

BenutzerdefiniertesMapping

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Abbildung auf Struktur objektorientierter Datenbanken

hotelID name adresse preise

Ort strasse ... einzelzimmer ...

H0001 Schwarzer Bär Jena Fürstengraben 89

Objektrelationale DatenbankHotel

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>

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Abbildung auf Struktur relationaler Datenbanken

XML-DokumentHotelID Hotelname Adresse Preise

H0001 Schwarzer Bär A0001 P0001

AdresseID Ort Strasse ...

A0001 Jena Fürstengraben

PreiseID Einzelzimmer ...

P0001 198

Hotel:

Preise:

Adresse:

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

Relationale Datenbank

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Schemabechreibung erforderlich

Dokumentenrekonstruktion nur teilweise möglich

Anfragen SQL- und XML-Anfrage und Transformation möglich

Besonderheiten Erhalten der Dokumentordnung über zusätzliches Attribut

Einsatz datenzentrierte 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

Name Einzelzimmer

www.schwarzer-baer-jena.de 89

Datenbank

<ClassMap>

<ToClassTable>

</ToClassTable>

<Table Name="Hotelpreise"/>

<ElementType Name="hotel"/>

<hotel url="www.schwarzer-baer-jena.de">

<name>Schwarzer Bär</name>

<adresse>

<ort>Jena</ort>

...

</adresse>

<preise>

<einzelzimmer>89</einzelzimmer>

</preise>

...

</hotel>

<strasse>Fürstengraben</strasse>

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>

...

<Attribute Name="url"/>

<Column Name="Hotel_URL"/>

<ElementType Name="name"/>

<Column Name="Name"/>

</Classmap>

XML-Dokument Mapping Vorschrift

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Benutzerdefiniertes MappingBeispiel 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 zwischenElementen und Relationen

Verbindung zwischenElementen/Attributen und Datenbankattributen

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Benutzerdefiniertes MappingAnfragen:

Datenbankenanfragen XML-Anfragen

XML vor SQL:2003 – Speichermethoden für XML-Dokumente

Abbildung auf Datenbankstrukturen

Schemabechreibung erforderlich

Dokumentenrekonstruktion nicht möglich

Anfragen SQL

Besonderheiten Mapping-Vorschriften erforderlich

Speicherung der Dokumenten-Ordnung durch zusätzliches Attribut

Einsatz datenzentrierte XML-Dokumente

Benutzerdefiniertes Mapping - Fazit

XML vor SQL:2003

Inhalt

Einführung und MotivationGrundlagen und VerständnisSpeichermethoden

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

<ende>Vielen Dank für die

Aufmerksamkeit!<frage>

Fragen?</frage>

</ende>

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

1

65

4 32

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

newChild refChild

removeChild (oldChild)

oldChild

Methoden zum oLöschen, oErgänzen, oVerschiebenoVerä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)

Recommended