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
<adresse> selbst von Interesse
Strukturinformationen
dienen Unterteilung
<plz>07743</plz>
Regulär
<ort>Jena</jena>
Strenge
Typinformationen
<strasse>Lutherplatz</strasse>
<nummer>2</nummer>
Dokumente
meist aus anderen
Informationen
generiert
<telefon>03641/406-0</telefon>
Beispiele:
Produktkataloge, Rechnungen,
<fax>03641/406-113</fax>
Fahrpläne
</adresse><
XML vor SQL:2003 – Grundlagen und Verständnis
Dokumentenzentrierte Dokumente
Daten und Struktur beinhalten Information
<anreisebeschreibung>
Häufig
als XML-Dokument erzeugt
Sie können unser Haus auf
Darstellung irregulär
verschiedenen Wegen erreichen:
Meist keine Typinformationen
<bahn>per bahn: 1km ab Bahnhof …</bahn>
Beispiele: wissenschaftliche Artikel,
<auto>per Auto: 10km ab Autobahn A4 … </auto>
Buchinhalte, eMails, Webseiten
Sie finden uns in direkter Citylage.
</anreisebeschreibung>
XML vor SQL:2003 – Grundlagen und Verständnis
Semistrukturierte Dokumente
<hotel>
Mischform
aus daten- und
<name>Schwarzer Bär</name>
dokumentenzentrierten
Dokumenten
<adresse>
<strasse>Fürstengraben</strasse>
Beispiele:
…
Bücher (Metadaten vs. Inhalten)
</adresse>
Hotelinformationen (Preise, Adresse vs.
<anreisebeschreibung>
Beschreibungen,
Anreisemöglichkeiten)
Sie
können unser Haus
auf verschiedenen
Wegen erreichen:
Online-Buchhändler
(Bücher, Lieferzeiten vs.
…
Inhaltsangeben,
Rezessionen)
</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)
DOMImplementation
Node
NodeList
NamedNodeMap
Attr
 Empfehlung des W3C
CharacterData
Comment
Text
CDataSection
Document
 beschreibt Schnittstellen zum
Zugriff auf XML-Dokumente und
zur Veränderung von Struktur
und Inhalten
DocumentFragment
DocumentType
Element
Entity
EntityReference
Notation
ProcessingInstruction
 die zugrundeliegende
Implementierung und
Speicherung der XMLDokumente 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
der
Dokumentenstruktur
XML-Dokumenten
Speicherung
Abbildung auf
von
Datenbankstruktur
XML-Dokumenten
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
Character Language OBject Speicherung
als CLOBs
in
Datenbankfeld
zur Speicherung
Datenbanksystem
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
– Aufbereitung
von Dokumenten
•Statistisch wortbasierte
Verfahren
Deskribierung,
Recherche
und
•Linguistische Verfahren
Ergebnispräsentation
•Wissensbasierte Verfahren
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Speicherung als Ganzes
Verwendung eines Volltextindex
Index als invertierte Liste
Dokumente
Stichworte
Stichworte
1
A
D
F
2
B
C
D
3
A
C
D
E
A
B
C
D
E
F
Dokumente
1
2
2
1
3
1
3
3
2
3
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Speicherung als Ganzes
Verwendung eines Volltextindex
Index als invertierte Liste
Begriff
Verweis
hotel
Jena
Richtung
ort
anreisebeschreibung
<hotel>
<hotelname>Schwarzer Bär</hotelname>
<adresse>
<plz>07743</plz>
<ort>Jena</ort>
<strasse>Lutherplatz</strasse>
<nummer>2</nummer>
</adresse>
<anreisebeschreibung>
Aus Richtung Erfurt kommend ...
</anreisebeschreibung>
</hotel>
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Speicherung als Ganzes
Verwendung eines Volltextindex
Ranking
Dokumente
Stichworte
1
A
D
F
2
B
C
D
3
A
C
D
Stichworte
E
A
B
C
D
E
F
Dokumente
3
2
3
2
3
1
1
2
3
1
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:
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)
Term
Verweis
Element
Jena
07743
x
x
x
x
Element Verweis
hotel
adresse
ort
plz
x
x
x
x
Volltext-Index
<hotel>
<name>Schwarzer Bär</name>
<adresse>
Ordnung Vorgänger
1
2
3
3
x
x
x
<ort>Jena</ort>
<plz>07743</plz>
</adresse>
</hotel>
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:
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 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
DocID
Elementname
ID
Vorgänger
Kind-Nr
Wert
h001
hotel
101
h001
name
102
101
1
h001
adresse
103
101
2
h001
strasse
104
103
1
Fürstengraben
h001
nummer
105
103
2
2
h001
ort
106
103
3
Jena
1
Schwarzer Bär
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 - Anfragen
Fazit:
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
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
Schwarzer Bär
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:
Schemabechreibung
nicht erforderlich
Dokumentenrekonstruktion
möglich, aber sehr aufwendig
Anfragen
XQuery / XQL / angepasstes SQL
Besonderheiten
Anfragen und Updates über DOMMethoden
Einsatz
semistrukturiert, 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
XML-Dokument
Objektrelationale Datenbank
Hotel
hotelID
name
adresse
Ort
H0001
<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>
strasse
Schwarzer Bär Jena Fürstengraben
preise
...
einzelzimmer ...
89
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Abbildung auf Datenbankstrukturen
Abbildung auf Struktur relationaler 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>
Relationale Datenbank
Hotel: HotelID Hotelname
H0001
Schwarzer Bär A0001
Adresse: AdresseID Ort
A0001
Adresse Preise
Strasse
Jena Fürstengraben
Preise: PreiseID Einzelzimmer ...
P0001
198
P0001
...
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Abbildung auf Datenbankstrukturen
Automatische Verfahren - Fazit
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
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
XML-Dokument
Mapping Vorschrift
<hotel url="www.schwarzer-baer-jena.de">
<name>Schwarzer Bär</name>
<adresse>
<ort>Jena</ort>
<strasse>Fürstengraben</strasse>
...
<ClassMap>
<ElementType Name="hotel"/>
<ToClassTable>
<Table Name="Hotelpreise"/>
</ToClassTable>
<PropertyMap>
</adresse>
<preise>
<einzelzimmer>89</einzelzimmer>
...
</preise>
</hotel>
<Attribute Name="url"/>
<ToColumn>
<Column Name="Hotel_URL"/>
</ToColumn>
</PropertyMap>
<PropertyMap>
<ElementType Name="name"/>
<ToColumn>
<Column Name="Name"/>
</ToColumn>
</PropertyMap>
...
</Classmap>
(schreddern)
Hotelpreise
Hotel_URL
Name
www.schwarzer-baer-jena.de
Schwarzer Bär
Einzelzimmer
Datenbank
89
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Abbildung 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-Dokumente
Abbildung auf Datenbankstrukturen
Benutzerdefiniertes Mapping
Anfragen:
Datenbankenanfragen
XML-Anfragen
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Abbildung auf Datenbankstrukturen
Benutzerdefiniertes Mapping - Fazit
Schemabechreibung
erforderlich
Dokumentenrekonstruktion
nicht möglich
Anfragen
SQL
Besonderheiten
Mapping-Vorschriften erforderlich
Speicherung der DokumentenOrdnung durch zusätzliches Attribut
Einsatz
datenzentrierte XML-Dokumente
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 XMLDokumente
 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
Ausgehend vom Knoten
liefern folgende Methoden der Klasse
Node die Knoten bzw. Knotenlisten
als Ergebnis:
1
5
4
6
2
3
1 - getParentNode()
2 - getFirstChild()
3 - getLastChild()
4 - getChildren()
5 - getPreviousSibling()
6 - getNextSibling()
XML vor SQL:2003 – Speichermethoden für XML-Dokumente
Document Object Model (DOM)
 Manipulation des Dokumentstruktur
insertBefore
(newChild, refChild)
refChild
newChild
refChild
appendChild
(newChild)
newChild
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()
getValue()
setValue(value)
- Attributnamen
- Attributwert
- 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)

v08