View
111
Download
1
Category
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