Speicherung von XML-Dokumenten

Werbung
XML und Datenbanken
Speicherungsmethoden
Meike Klettke
[email protected]
www.xml-und-datenbanken.de
1
Inhalt





Anforderungen an die Speicherung
Motivation der Existenz verschiedener Varianten
Vorstellung verschiedener Speicherungsverfahren
– Speicherung und Indizierung
– Speicherung der Graphstruktur
– strukturierte Speicherung in Datenbanken
Hybride Verfahren
Weiterführende Literatur
Meike Klettke
2
Anforderungen an die Speicherung
von XML-Dokumenten
Nach (Fiebig, Kanne, Moerkotte)



Effektive Speicherung
Effizienter Zugriff auf XML-Dokumente oder Teile davon
– Transaktionsverwaltung
– Unterstützung von XPath und XQuery
– Unterstützung von SAX und DOM für Anwendungen
Wiederherstellbarkeit der Dokumente (oder der
Informationen aus den Dokumenten)
Meike Klettke
3
Unterteilung von XMLDokumenten
Datenzentrierte Dokumente
strukturiert, regulär
Beispiele: Produktkataloge, Bestellungen,
Rechnungen
Dokumentzentrierte Dokumente
unstrukturiert, irregulär
Beispiele: wissenschaftliche Artikel,
Bücher, E-Mails, Webseiten
Semistrukturierte Dokumente
datenzentrierte und dokumentzentrierte
Anteile
Beispiele: Veröffentlichungen, Amazon
Meike Klettke
<order>
<customer>Meyer</customer>
<position>
<isbn>1-234-56789-0</isbn>
<number>2</number>
<price currency=„Euro“>30.00</price>
</position>
</order>
<content>
XML builds on the principles of two existing
languages, <emph>HTML</emph> and
<emph>SGML</emph> to create a simple
mechanism ..
The generalized markup concept ..
</content>
<book>
<author>Neil Bradley</author>
<title>XML companion</title>
<isbn>1-234-56789-0</isbn>
<content>
XML builds on the principles of two existing
languages, <emph>HTML</emph> and ..
</content>
</book>
4
Speicherungsmethoden

Vorstellung von verschiedenen Methoden
– Grundprinzip der Speicherung
– Eigenschaften
– Anfragemöglichkeiten

Dabei Klassifikation bekannter Methoden
Meike Klettke
5
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Volltextindex
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Volltext- und
XML-Index
Information Retrieval
Suchmaschinen
Text Extender
- Oracle Text
- DB2 Text Extender
- Informix Text Data Blades
Meike Klettke
6
Exkurs: Information Retrieval


Volltextindizierung = grundlegende Technologie im
Information Retrieval
Eingesetzt bei der Verarbeitung von
– Textdokumenten
– Universitätskatalogen oder in
– Suchmaschinen
– überall hinter solchen Feldern:
Meike Klettke
7
Gewünschte Suchfunktionalität







„wo findet man Informationen über objektrelationale
Datenbanken?“
„wo ist der Begriff Information Retrieval definiert?“
„wo ist der Zusammenhang zwischen Datenbanken und
Information Retrieval erläutert?“
„was sind Biomembranen?“
die Verarbeitung solcher Informationen: Inhalt des Gebietes
Information Retrieval (nach Norbert Fuhr: = inhaltsbasierte Suche
in Texten)
beachten muss man Effizienz, in der Regel liegen große
Textmengen zugrunde
Anwendung in Suchmaschinen, spezielle Anforderungen dabei
Meike Klettke
8
Typische Suchfunktionalität:
google
Meike Klettke
9
Suchfunktionalität: Bibliothek
Meike Klettke
10
man sucht also ein Dokument..


zum Beispiel html, pdf, ps, in dem
die in der Suche angegebenen
Begriffe auftauchen
Computer „versteht“ die Texte
nicht, man kann also nur danach
suchen, welche Wörter in den
Texten vorkommen, wie oft, in
welchem Zusammenhang ...
Meike Klettke
HTML-Dokument:
<a href=„“> ...
Information Retrieval
... Datenbanken
... Information
... Web
... Datenbank
11
Überblick über die
Dokumentverarbeitung /1
„Such doch mal im Internet danach ...“
Notwendigkeit eines Indexes:
 damit Anfragen effizient ausgeführt werden können
Inhaltsbasierte Suche in Volltexten



Deskribierung
Recherche
Ergebnispräsentation
Meike Klettke
12
2. Überblick über die
Dokumentenverarbeitung
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Index
Bewertung
Deskribierung
Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
manuelle und automatische
Verfahren zur Anreicherung
des strukturierten Textes mit
Deskriptoren
Meike Klettke
13
Indexbildung /1




Suchmaschinen für das WWW realisieren eine Indexbildung über
Webseiten
Übrigens: Information-Retrieval-Systeme und Datenbanksysteme
führen ebenfalls eine Indexbildung nach der Speicherung von
Dokumenten durch
Bei Indexbildung muss bereits feststehen, welche Arten von
Informationen angefragt werden und wie die Anfragen aussehen
Anfragen sind zeitkritisch, Indexbildung nicht !
Meike Klettke
14
Deskribierung
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Index
Bewertung
Deskribierung
Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
manuelle und automatische
Verfahren zur Anreicherung
des strukturierten Textes mit
Deskriptoren
Meike Klettke
15
Indexbildung /2

aus den Dokumenten werden die relevanten Stichworte extrahiert, diese
fließen in den Index ein
<a href=„“> ...
Information Retrieval
... Datenbanken
... Information
... Web
... Datenbank
Meike Klettke
Datenbank
Datenbanken
Information, 2*
Retrieval
Web
16
Implementierung als invertierte
Liste
Dokumente
d1..dn
Term i
d3 (15)
Term j
d2(45)
Term k
d2(335)
d2(25,30)
d4(50)
d1(300)
d1(435)
• verschiedene Optimierungen dieser Indexstrukturen
• Anfragen sind zeitkritisch, die Indexbildung nicht,
Ziel sind also effiziente Zugriffe
Meike Klettke
17
Übersicht über Verfahren zur
Deskribierung



statistische, wortbasierte Verfahren
– Häufigkeit von Wörtern auswerten
linguistische Verfahren
– Stammwortreduktion
– Erkennen von SatzzusammenDeskribierung
hängen
wissensbasierte Verfahren
– Klassifikationen, Thesauren, Ontologien
Meike Klettke
Index
18
Häufigkeit der Terme auswerten / 1

Stoppwortliste eliminiert sehr häufige Worte
– (diese würden sehr viele Einträge im Index bewirken, sind aber für die
Recherche ungeeignet)
– Beispiele – 10 häufigste Begriffe im Deutschen:
• der, die, und, in, den, von, zu, das, mit, sich

sehr seltene Begriffe werden gestrichen
– (haben zwar die höchste Selektivität, würden die Anzahl der Begriffe
im Index stark erhöhen und sind für die Recherche zu speziell)
– Beispiele (aus Heuer, Saake, 2000):
• BadHilfskraft
• Datenbankimplmentierung
Meike Klettke
19
Häufigkeit der Terme auswerten / 2
Zipf´sches Gesetz
Häufigkeit
(nach George Kingsley Zipf, 1902-1950)
die Verteilung der Worte in einem
Dokument richtet sich nach der Übersicht
Diskriminationskraft der
Terme
zu seltene Terme
Rang*
* Sortierung der Terme nach abfallender Häufigkeit
Salton, McGill, 1983
zur Suche eignen sich Begriffe mit mittlerer
Häufigkeit am besten
abnehmende
Worthäufigkeit
Stoppwortliste
Meike Klettke
Eliminierung seltener Begriffe
20
Bildung eines linguistischen
Indexes / 1

Motivation: Suche nach dem Begriff soll auch Deklinationen bzw.
Konjugationen einbeziehen
Beispiele:


– bei Eingabe des Suchbegriffes „Datenbank“ sollen auch
Dokumente mit dem Begriff „Datenbanken“ gefunden werden
– bei der Suche nach „fehlschlagen“ soll auch „fehlschlug“ und
„fehlgeschlagen“ gefunden werden
Verfahren: statt der exakten Begriffe wird die Grundform der
Terme im Dokument gespeichert
Verfahren verkleinert die invertierten Listen und führt sprachlich
zusammengehörige Terme zu einem Eintrag zusammen
Meike Klettke
21
Vorgehensweise bei der Bildung eines
linguistischen Indexes / 2
– Wortnormalisierung (Groß- und Kleinschreibung, Umlaute)
– Wortdekomposition (nur für deutsche Sprache)
• Komposita (zusammengesetzte Begriffe) werden
auseinandergenommen,
• Beispiele:
– West-mole, Ost-mole
– Einzel-zimmer, Doppel-zimmer, Zweibett-zimmer,
Vierbett-zimmer
– Stammformreduktion, Verfahren zur Bestimmung der
Grundformen durch:
• Regeln (für die englische Sprache sind zahlreiche Verfahren
bekannt) oder
• Wörterbücher (besonders für die deutsche Sprache aufgrund
vieler Unregelmäßigkeiten erforderlich)
Meike Klettke
22
Recherche
Recherche
Index
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Bewertung
Deskribierung
Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
manuelle und automatische
Verfahren zur Anreicherung
des strukturierten Textes mit
Deskriptoren
Meike Klettke
23
Verfahren zur Recherche
Häufigste Retrievalmodelle
- Boolesches Retrieval
- Vektorraummodell
- probabilistisches Modell
Recherche
Index
Deskribierung und Recherche müssen mit den gleichen
Methoden erfolgen
(Stammwortreduktion, Stoppwortliste)
Meike Klettke
24
Boolesches Retrieval / 1





Grundbaustein: Attribut - Attributwert - Paar
verknüpft durch: and, or, not
Nachteile: relativ geringe Möglichkeiten, Anfragen zu
formulieren
oft können Benutzer die Verarbeitung der Anfrage nicht
einschätzen
z.B. wurden bei Suchmaschinen Statistiken erhoben, dass die
Anfragen durchschnittlich 1.7 Wörter enthalten
Meike Klettke
25
Boolesches Retrieval / 2
Meike Klettke
26
Boolesches Retrieval auf
invertierten Listen
Dokumente
d1..dn
Term i
d3 (15)
d2(25,30)
Term j
d2(45)
d1(300)
Term k
d2(335)
d1(435)
d4(50)
• Beispielanfragen:
•k
• i or j
• i and k
• i and k and not j
Meike Klettke
27
Vektorraummodell




Dokumente und Anfragen werden als Vektoren betrachtet
mit einem Ähnlichkeitsmaß (Abstandsfunktion) werden zu einer
Anfrage die Ergebnisdokumente ermittelt
es gibt zahlreiche Ähnlichkeitsmaße
Ergebnis der Ähnlichkeitsfunktion kann für das Ranking verwendet
werden
Meike Klettke
28
Probabilistisches Modell



Terme der Anfrage können gewichtet werden, damit hat der
Benutzer die Möglichkeit, wichtigere und unwichtigere Teile einer
Anfrage zu spezifizieren
Terme des Dokumentes werden ebenfalls gewichtet
– manuelle Verfahren: für Indizierende stellt die Angabe solcher
Wahrscheinlichkeiten eine schwierige Aufgabe dar
– automatische Verfahren: verwenden Termhäufigkeiten,
Dokumentgröße, Position des Terms im Dokument, ..
Ähnlichkeitsfunktion liefert ebenfalls ein Ranking
Meike Klettke
29
Arten von Anfragen








Boolesche Anfragen
Stammformsuche
Phrasensuche
Proximity-Suche
– maximaler Wortabstand, im gleichen Satz mit, Wortreihenfolge
Phonetische Suche
– Suche nach ähnlich klingenden Wörtern
fehlertolerante Suche
– Zulassen von x Fehlern
Berücksichtigung der Dokumentstruktur
Wichtungsfaktoren
Meike Klettke
30
Bewertung
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Bewertung
Deskribierung
manuelle und automatische
Verfahren zur Anreicherung
des strukturierten Textes mit
Deskriptoren
Meike Klettke
Index
Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
31
Verfahren zur Bewertung
Recherche
Index
Bewertung

Ranking

Bestimmung, in welcher Reihenfolge die ermittelten Ergebnisse
präsentiert werden
Relevance Feedback
Dialog mit dem Benutzer, bei dem eine neue Ergebnisermittlung
aufgrund von relevanter und nicht relevanter Dokumenten ermittelt
wird
Meike Klettke
32
Ranking



Aufgabe: Reihenfolge für die Ausgabe der relevanten Dokumente wird
gesucht
Grundlegende Maße
– Häufigkeit des Suchterms im Dokument
– Anzahl der verschiedenen Suchterme eines Dokumentes
– Anzahl der Dokumente, in denen der Suchterm auftritt
– Dokumentgröße
– ...
– Aus Kombinationen dieser Maße ergeben sich Rankingfunktionen
Boolesches Retrieval erlaubt kein Ranking (Ergebnis 0 oder 1), dieses wird
oft nachträglich als 2. Schritt über der Menge der relevanten Dokumente
ermittelt.
Meike Klettke
33
Ende des Exkurses
Vorgestellt wurden:
 Techniken zur Textverarbeitung
Jetzt folgt:
 Anwendung für XML-Dokumente
Meike Klettke
34
Grundprinzip der invertierten Liste
Dokumente
Stichworte
1
A
D
F
2
B
C
D
3
A
C
D
Stichworte Dokumente
E
Bestimmung der Stichworte
der Dokumente
Meike Klettke
A
B
C
D
E
F
1
2
2
1
3
1
3
3
2
3
Invertierte Speicherung:
Speicherung der Stichworte und
der zugehörigen Dokumente
35
Volltext-Index
Begriff
hotel
Warnemünde
Rostock
ort
anreisebeschreibung
Verweis
<hotel>
<hotelname>Hotel Hübner</hotelname>
<adresse>
<plz>18119</plz>
<ort>Warnemünde</ort>
<strasse>Seestraße</strasse>
<nummer>12</nummer>
</adresse>
<anreisebeschreibung>
Aus Richtung Rostock kommend ...
</anreisebeschreibung>
</hotel>
- bekannte Methode (älter als relationale Datenbanken)
- Verfahren aus dem Bereich der Dokumentverarbeitung
Meike Klettke
36
Weiteres Beispiel
Term
Element
nachricht
autor
nachname
Fürst
vorname
Christian
inhalt
ueberschrift
Vermarktungsfest
text
Wolfgang
…
Meike Klettke
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
37
Volltext-Index
Nicht nur Suche nach exaktem Auftreten der Begriffe möglich,
Verwendung von
 Statistischen wortbasierten Verfahren
– (Stoppwortlisten, Streichen von selten vorkommenden Begriffen)

Linguistischen Verfahren
– Wortnormalisierung
– (Groß-, Kleinschreibung, Getrennt- und Zusammenschreibung,
Umlaute),
– Wortdekomposition durch Regeln (engl.) oder Wörterbücher (dt.)
– Stammwortreduktion

Wissensbasierten Verfahren
– (Einsatz von Ontologien und Thesauren zur Suche nach
Synonymen sowie Über- und Unterbegriffen)
Meike Klettke
38
Anfragen /1

boolesches Retrieval
Kombination von Anfrageteilen mit AND, OR oder NOT
Beispiele:
– Hotel AND Warnemünde
– (Hotel OR Pension) AND (Warnemünde OR Rostock)

linguistische Anfragen
– Stammwortsuche, phonetische Suche,
Ähnlichkeitssuche usw.
Meike Klettke
39
Anfragen /2

Position der Stichworte im Index erlaubt weitere Anfragen
Beispiele:
– Suchbegriff 'Datenbanken' tritt vor 'XML' im Dokument auf
– der Begriff 'Information' folgt unmittelbar auf 'Retrieval‚
– 'XML' und 'Datenbanken' treten mit einem Abstand von
höchstens 5 Wörtern auf

Ergebnis der Anfragen ist in der Regel das vollständige
Dokument
Die Anfragen sind also Suchfunktionen

Nicht realisierbar ist jedoch:

• //hotel[adresse/ort/text()=“Warnemuende“]
• Nur: hotel and adresse and ort and Warnemuende
Meike Klettke
40
Eigenschaften des Volltext-Indexes
Schemabeschreibung
Nicht erforderlich
Dokumentrekonstruktion
XML-Dokumente bleiben im
Original erhalten
Anfragen
Anfragen des Information
Retrieval
Updates
Austausch der XMLDokumente erforderlich
Weitere Besonderheiten
Volltextfunktionen (SQL-MM)
keine Auswertung des XMLMarkups
Anwendung
dokumentzentrierte XMLAnwendungen
Meike Klettke
41
Systeme /1
Suchmaschinen
 fast alle herkömmlichen Suchmaschinen verwenden
invertierte Listen zur Indexbildung
IBM DB2 Text Extender
 Text Extender, ermöglicht die Speicherung von
Volltextdokumenten innerhalb eines Datenbanksystems
 vier verschiedene Arten von Indizes können gebildet
werden,
 Mögliche Suchanfragen:
–
–
–
–
–
Stammwortreduktion,
exakte Suche,
phonetische Suche,
Ähnlichkeitssuche
…
Meike Klettke
42
Systeme /2
Oracle Text
 Verarbeitung von Volltext-Datentypen
 Information-Retrieval-Anfragen in Form von speziellen
SQL-Anweisungen
 Mögliche Anfragen
– Stammwortreduktion
– Verwendung von Wildcards
– Ähnlichkeits- und Phrasensuche
 Ranking der Ergebnisse erfolgt
 Relevance Feedback durch den Anwender ist möglich
Meike Klettke
43
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Volltextindex
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Volltext- und
XML-Index
DB2 Text Extender
Oracle Text
Informix Verity Text
Search Data Blade
XML-Suchmaschinen
Meike Klettke
44
Volltext- und XML-Index
- XML - Struktur kann in Anfragen ausgewertet werden
Meike Klettke
45
Weiteres Beispiel
Term
Verweis
Element
Fürst
Christian
Mozartjahr
Vermarktungsfest
Wolfgang
…
Element
Verweis
Ordnung
nachricht
1
autor
1
nachname
1
vorname
2
…
inhalt
3
ueberschrift
1
text
2
Meike Klettke
Vorgänger
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
46
Volltext- und XML-Index

Strukturinformationen müssen aus dem Index erkennbar
und wiederherstellbar sein,

Zuordnung: Inhalten zum Markup sowie
Hierarchische Schachtelung und Anordnung des Markup

Meike Klettke
47
Anfragen /1

boolesches Retrieval
– Hotel AND Warnemünde

linguistische Anfragen
– Stammwortsuche, phonetische Suche, Ähnlichkeitssuche usw.

Position der Stichworte im Index erlaubt weitere Anfragen
– Suchbegriff 'Datenbanken' tritt vor 'XML' im Dokument auf
– der Begriff 'Information' folgt unmittelbar auf 'Retrieval‚

Durch das Anlegen eines Strukturindexes lässt sich das
Markup auswerten:
•
•
/unterkuenfte/hotel[adresse/ort/text()=“Warnemuende“ or
adresse/ort/text()=“Rostock”]
/unterkuenfte/hotel[contains(name/text(),”Strand”]
Meike Klettke
48
Anfragen /2

Einsatz von XPath und XQuery ist dadurch möglich

Anfragen, die das gesamte Dokument als Ergebnis liefern,
lassen sich einfach realisieren,
Anderenfalls muss das Dokument geparst werden und das
Ergebnis daraus generiert werden.

Meike Klettke
49
Eigenschaften des Volltext- und
XML-Indexes
Schemabeschreibung
Nicht erforderlich
Dokumentrekonstruktion
XML-Dokumente bleiben im Original
erhalten
Anfragen
Anfragen des Information Retrieval
Auswertung des Markups in den
Anfragen
XML-Anfragen möglich
Updates
Austausch der XML-Dokumente
erforderlich
Weitere Besonderheiten
Volltextfunktionen (SQL-MM)
Anwendung
dokumentzentrierte und
semistrukturierte XML-Anwendungen
Meike Klettke
50
Systeme
DB2 Text Extender
 Speicherung von Volltextdokumenten innerhalb eines
Datenbanksystems
 Auswertung von Markup ist möglich
 Dadurch Kombination von Volltextanfragen mit Auswertung
von XML-Markup möglich
Oracle Text
 XML-Unterstützung durch Auswertung von XML-Strukturen
 bewirkt, dass Volltextanfragen und Anfragen zur Struktur
der Dokumente kombiniert werden können.
Meike Klettke
51
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
(einfache)
Abbildung der
Graphstruktur
strukturierte
Speicherung
in Datenbanken
Speicherung der
Informationen
des DOM
Neil Bradley
Florescu/Kossmann
Shimura/Yoshikawa/Uemura
Meike Klettke
52
Speicherung der Graphstruktur / 1
Elements:
Element
Type
Value
Order
hotel
1
adresse
2
plz
int
18119
1
ort
string
Warnemünde
2
strasse
string
Seestrasse
3
Vorgänger
Attributes:
Element Attribute Type
Value
url
string
www...
autor
string
Müller
• generische Speicherung der Struktur des XML-Dokumentes
• werden mehrere XML-Dokumente in der Relation gespeichert, muss
noch eine ID des XML-Dokumentes in der Relation ergänzt werden
Meike Klettke
53
Weiteres Beispiel
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
Meike Klettke
ID
Element
n001
Wert
Ordnung
Vorgänger
nachricht
1
-
n002
autor
1
n001
n003
nachname
Fürst
1
n002
n004
vorname
Christian
2
n002
n005
agentur
dpa
3
n002
n006
e-mail
[email protected]
e
4
n002
Element
Attribut
Typ
Wert
n001
id
xs:ID
ID0001
n001
bedeutung
xs:int
4
n002
autor_id
xs:ID
A0001
54
Speicherung der Graphstruktur /2

Verwendung von Relationen zur Speicherung von
Elementen und Attributen

Elemente:
DocID Elementname Typ Wert Ordnung Verweis auf Vorgänger

Attribute:
Attributname

Typ
Wert
Verweis auf Element
Damit ist die Zuordnung von Inhalten zur Struktur, sowie die
vollständige Wiederherstellung der Struktur möglich
Meike Klettke
55
Speicherung der Graphstruktur /3


DTD nicht erforderlich
für einfache Anfragen verwendbar

Durch Erweiterungen können Datentypen adäquat
gespeichert und ausgewertet werden

komplexere Anfragen über zwei oder mehr Elemente/
Attribute sind nicht effizient
Meike Klettke
56
Anfragen
Angepasstes SQL, durch Datenbankschema bestimmt:
Elements:
Beispiel:
DocID
Element
d0001
hotel
(Hotels in Warnemünde)
d0001
select a.wert
d0001
from Elemente a, Elemente b d0001
d0001
where (a.element=
'hotelname') and
(b.element='ort') and
(b.wert='Warnemünde') and
(a.DocID=b.DocID)
Meike Klettke
Type
Wert
plz
int
18119
ort
string
Warnemünde
strasse
string
Seestrasse
Descendant-of
adresse
57
Anfragen
XML-Anfragen sind möglich,
XMLAnfragen


SQL
werden intern auf SQL-Anfragen (unter Berücksichtigung
der Speicherstruktur) umgesetzt,
Ergebnis der XML-Anfrage wird aus Ergebnis der
Datenbankanfrage generiert
Meike Klettke
58
Eigenschaften der Speicherung
der Graphstruktur
Schemabeschreibung
Nicht erforderlich
Dokumentrekonstruktion
Möglich, aber sehr aufwändig
Anfragen

Updates
effizient realisierbar
Weitere Besonderheiten
Anfragen über vielen Elementen und
Attributen sind aufwändig
Anwendung
Daten-, dokumentzentrierte und
semistrukturierte XML-Anwendungen
Meike Klettke
XML-Anfragen möglich
 angepasste Datenbankanfragen
59
Systeme



Keine kommerziellen Systeme bekannt
Verwendung in universitären Prototypen
– Einsatz dort, weil einfache Realisierung, die eine
schnelle Abspeicherung von XML-Dokumenten
ermöglicht
– Festes (und kleines) Datenbankschema
Bei uns umgesetzt:
– Diplomarbeit von Guido Rost
• Speicherung und Realisierung von XQuery
– Diplomarbeit von Björn Below
• Realisierung von Updates auf dieser Struktur
Meike Klettke
60
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
(einfache)
Abbildung der
Graphstruktur
strukturierte
Speicherung
in Datenbanken
Speicherung der
Informationen
des DOM
Richard Edwards
infonyte
eXcelon XIS
(POET)
Meike Klettke
61
Speicherung basierend auf
DOM /1
DOMImplementation

Informationen des
Document Object Models
bilden das Schema der
Datenbank
Node
NodeList
NamedNodeMap
Attr
CharacterData
Comment
Text
CDataSection


Verwendung relationaler
oder objekt-orientierter
Datenbanken oder
Entwicklung eigener
Speicherungsstrukturen
Document
DocumentFragment
DocumentType
Element
Entity
EntityReference
Notation
ProcessingInstruction
Meike Klettke
62
Speicherung basierend auf
DOM /2
Methoden der Klasse Node:
- getChildren()
- getFirstChild()
- getNextSibling()
- getNodeType()
- getParentNode()
- getPreviousSibling()
- hasChildren()
NodeID
NodeType
PreviousSibling
Methoden der Klasse Element:
- getAttributes()
- getElementsByTagName(String)
- getTagName()
Methoden der Klasse Attribut:
- getName()
- getValue()
Meike Klettke
NodeID
DocID
ParentNode
NextSibling
FirstChild
NodeID
ElementID
TagName
AttributName
AttributValue
63
Anfragen
XMLAnfragen


DOM-Methoden
XML-Anfragen
Meike Klettke
SQL

Angepasste
Datenbankanfragen (unter
Kenntnis der
Speicherungsstruktur)
64
Eigenschaften der auf DOM
basierenden Speicherung
Schemabeschreibung
Nicht erforderlich
Dokumentrekonstruktion
Möglich, aber sehr aufwändig
Anfragen

Updates
effizient realisierbar
Weitere Besonderheiten

Anwendung
Daten-, dokumentzentrierte und
semistrukturierte XML-Anwendungen
Meike Klettke
XML-Anfragen möglich
 angepasste Datenbankanfragen
Anfragen über vielen Elementen und
Attributen sind aufwändig
 standardisierte und allgemein
akzeptierte Schnittstelle
65
Systeme /1
Infonyte-DB
 verwendet zur Speicherung von XML-Dokumenten
ein persistentes Document Object Model (PDOM)
 baut aber nicht auf existierende Datenbanken auf, sondern
entwickelt Komponenten zur physischen Speicherung, die
an die XML-Dokumente optimal angepasst sind
 Anfragesprache: Richtung XQuery
Tamino
 modellbasierte Speicherung von XML-Dokumenten
 XML-Anfragen auf den gespeicherten Dokumenten sind
durch die Verwendung von XPath realisierbar
 Entwicklung geht Richtung XQuery
Meike Klettke
66
Systeme /2
Sonic XML Server (früher unter den Namen eXcelon)
 verwendet zur Speicherung von XML-Dokumenten das
Document Object Model
 Alle Informationen, die in dieser API enthalten sind, werden
in einer objektorientierten Datenbank objectstore adäquat
gespeichert.
 Anfragen: OQL
Berkeley DB XML
 Generische Speicherung
 Indexverfahren
 Anfragen: XPath, XQuery
 Metadaten können zugeordnet werden
Meike Klettke
67
Systeme /3

mittlerweile unterstützen sowohl Oracle als auch DB2 eine
native XML-Speicherung
– Datentyp: XML,
– Anfragen: XPath, XQuery,
– Volltext- und Strukturindex, ...
Meike Klettke
68
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Vollständiges
(+automatisches)
Mapping
Benutzerdefiniertes
Mapping
Shanmugasundaram et al.
(Ronald Bourret)
(Deutsch/Fernandez/
Suciu : Stored)
Klettke/Meyer
POET
Meike Klettke
69
Abbildung der XML-Struktur auf
Struktur relationaler Datenbanken
XML-Dokument
<hotel HotelID="H0001">
<hotelname>Hotel Hübner
</hotelname>
<adresse>
<ort>Warnemünde</ort>
<strasse>Seestraße</strasse>
...
</adresse>
<preise>
<einzelzimmer>98
</einzelzimmer>
...
</preise>
</hotel>
Hotel:
Adresse:
Preise:
HotelID
Hotelname
Adresse
Preise
H0001
Hotel Hübner
A0001
P0001
AdresseID
Ort
Strasse
A0001
Warnemünde
Seestraße
PreiseID
Einzelzimmer
P0001
98
...
...
- DTD oder XML-Schema ist erforderlich
- typgerechte Speicherung
Meike Klettke
70
Weiteres Beispiel
nachricht:
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
Meike Klettke
id
bedeutung
autor
inhalt
ID0001
4
A0001
P0001
autor:
ID
autor_id
nachname
Vorname
agentur
e
x00001
A0001
Fürst
Christian
dpa
f
inhalt:
ID
ueberschrift
text
y00001
Ein Vermarktungsfest
Als Wolfgang Amadeus Mozart
im Alter von 35 Jahren starb, ..
71
Abbildung der XML-Struktur auf
objektorientierte Datenbanken
XML-Dokument
Hotel:
HotelID
H0001
<hotel url="www.hotel-huebner.de">
<hotelname>Hotel Hübner</hotelname>
<adresse>
<ort>Warnemünde</ort>
<strasse>Seestraße</strasse>
...
</adresse>
<preise>
<einzelzimmer>98</einzelzimmer>
...
</preise>
</hotel>
Hotelname
Hotel Hübner
Adresse
Ort
Strasse
Warnemünde
Seestraße
Preise
...
einzelzimmer
...
98
- DTD oder XML-Schema ist erforderlich
- typgerechte Speicherung
- Datenbanken mit vielen Nullwerten
Meike Klettke
72
Weiteres Beispiel
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
id
ID0001
Meike Klettke
• adäquatere Darstellung von
hierarchischen Informationen
• gut abbildbar: Sequenzen von
Elementen, Attribute
• schlecht abbildbar: mixed content
bedeutung
4
autor
...
autor_id
nachname
vorname
agentur
e-mail
A0001
Fürst
Christian
dpa
fuerst@dp
a.de
73
Erzeugen des Datenbankschemas
für eine DTD (straight-forward) /1
Elemente:

XML-Element
Sequenz von Elementen
Alternative von Elementen
Element mit Quantifizierer ?
Elemente mit Quantifizierer +,*

Geschachtelte Elemente




Meike Klettke
Attribut einer Relation
Attribute einer Relation
Attribute einer Relation
Attribut mit Nullwerten
Menge oder Liste von Attributen
(SET OF, LIST OF)
TUPLE OF
74
Erzeugen des Datenbankschemas
für eine DTD (straight-forward) /2
Attribute:




XML-Attribut
IMPLIED
REQUIRED
Defaultwert
Meike Klettke
Attribut einer Relation
Nullwert erlaubt
Nullwert nicht erlaubt
Defaultwert
75
Beispiel für die
straight-forward Abbildung / 1
<!ELEMENT book (front, body, references)>
<!ATTLIST book isbn CDATA #REQUIRED>
<!ELEMENT front (title, author+, edition?, publisher)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (first, second, e-mail?)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT second (#PCDATA)>
<!ELEMENT e-mail (#PCDATA)>
book:
isbn
front
title
author
first
Meike Klettke
second
body
edition
references
publisher
e-mail
76
Beispiel für die
straight-forward Abbildung / 2
XML document:
Informix syntax:
<!ELEMENT book (front, body, references)>
<!ATTLIST book isbn CDATA #REQUIRED>
<!ELEMENT front (title, author+,
edition?, publisher)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (first, second, e-mail?)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT second (#PCDATA)>
<!ELEMENT e-mail (#PCDATA)>
CREATE TABLE book
( isbn VARCHAR(20) NOT NULL,
front ROW
( title VARCHAR(100) NOT NULL,
author LIST
(ROW
( first VARCHAR(30) NOT NULL,
second VARCHAR(50) NOT NULL,
email VARCHAR(30))) NOT NULL,
edition VARCHAR(20),
publisher VARCHAR(40) NOT NULL),
body ...
references ...
);
Meike Klettke
77
Problemfälle bei der Abbildung:
Alternativen /1
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>

drei Speicherungsvarianten sind möglich

1. alle Alternativen in einer Relation
Hotel
Kategorie Hotel- ... Pensionsname
name
Meike Klettke
Pension
Zimmer
Aus-- Preise
stattung
Campingplatz
Klassifikation
..
..
78
Problemfälle bei der Abbildung:
Alternativen /2
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>

2. Aufspaltung in separate Relationen
Hotel
Kategorie Hotel- ...
name
Pension
Pensionsname
Campingplatz
Klassifikation
Meike Klettke
Zimmer
..
Aus-- Preise
stattung
..
79
Problemfälle bei der Abbildung:
Alternativen /3
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>

3. Verwendung eines Attributes vom Typ XML
unterkunft
<pension>
<pensionsname>Zum Kater</pensionsname>
<zimmer>...</zimmer>
...
</pension>
<hotel>
<kategorie>4 </kategorie>
<hotelname>Strand Hotel Hübner </hotelname>
</hotel>
Meike Klettke
80
Problemfälle bei der Abbildung:
Rekursionen


Rekursionen (in DTDs)
Vorgehensweise:
–
–
–

Markieren der Knoten
Aufspaltung in separate Relationen
Verwendung von Referenzen (primary/foreign key)
Beispiel:
<!ELEMENT publications (book | article | conference)*>
<!ELEMENT book (front, body, references)>
<!ELEMENT references (publications+)>
publications:
publications:
book
references
public.
book
...
Meike Klettke
ID
book
references
81
Problemfälle bei der Abbildung:
Mixed Content
<anreisebeschreibung>
Sie können unser Haus auf verschiedenen Wegen
erreichen:
<bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn>
<auto>per Auto: 19 km ab Autobahn A19
Rostock--Berlin</auto>
Sie finden uns direkt an der Uferpromenade.
</anreisebeschreibung>
Ordnung
#PCDATA
1
Sie können unser Haus auf
verschiedenen Wegen erreichen:
2
Auto
per Bahn: 1 km ab
Bahnhof Warnemünde
3
4
Bahn
per Auto: 19 km ab Autobahn
A19 Rostock—Berlin
Sie finden uns direkt an der
Uferpromenade.
Meike Klettke
82
Problemfälle bei der Abbildung:
Mixed Content


Abbildung in Relationen nur sehr schlecht geeignet
geeignet ist in diesem Fall: XML-Datentyp
...
...
anreisebeschreibung
Sie können unser Haus auf verschiedenen Wegen erreichen:
<bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn>
<auto>per Auto: 19 km ab Autobahn A19 Rostock--Berlin</auto>
Sie finden uns direkt an der Uferpromenade.
</anreisebeschreibung>
Meike Klettke
83
Problemfälle bei der Abbildung:
Inhaltsmodell ANY
<!ELEMENT zusatzinformationen ANY>
Das heißt, im Element zusatzinformationen können beliebige
Inhalte sowie alle in der DTD deklarierten Elemente auftreten
<zusatzinformationen>
Am 31.12. stehen in <ort>Warnemünde</ort> keine Parkplätze zur
Verfügung. <bahn>Die S-Bahn verkehrt an diesem Tag nach einem
Sonderfahrplan im 7,5-Minuten-Takt.</bahn>
</zusatzinformationen>
Abbildung auf ein Datenbankschema?
Meike Klettke
84
Anfragen

Datenbankanfragen (Struktur der Datenbanken muss
bekannt sein)

XML-Anfragen
Prozess der Abbildung der XML-Dokumente auf
Datenbanken muss protokolliert sein,
damit Datenbankanfragen für XML-Anfragen generiert und
Ergebnisse für die XML-Anfragen generiert werden können.
Meike Klettke
85
Vor- und Nachteile
Vorteile: bei der Speicherung strukturierter Daten


Anfragen, Datentypen, Aggregatfunktionen, Sichten
Integration in andere Datenbanken
Nachteile: bei der Speicherung semi- und unstrukturierter
Daten



großes Schema, schwach gefüllte Datenbanken, viele Nullwerte
Keine flexiblen Datentypen, Speicherung von Alternativen problematisch
Fehlende Information Retrieval Anfragen, keine Volltextoperationen
möglich
Meike Klettke
86
Strukturierte Speicherung in
Datenbanken
Schemabeschreibung
Zur Speicherung erforderlich
Dokumentrekonstruktion
Nur eingeschränkt möglich
(Protokollierung des
Abbildungsprozesses)
Anfragen

Updates

Weitere Besonderheiten

Anwendung
Datenzentrierte XML-Anwendungen
Meike Klettke
Datenbankanfragen
 XML-Anfragen möglich
Als Datenbankupdates realisierbar
 Updates, die Strukturen verändern
bewirken aber Datenbankevolution
Föderationen mit bestehenden
Datenbanken möglich
87
Systeme
POET



zu jedem Element der DTD oder der XML-Schema-Beschreibung wird eine
korrespondierende Java-Klasse erzeugt
Diese wird innerhalb des Systems gespeichert, indem dazu eine Relation
generiert wird
Ist kein Schema für eine Dokumentkollektion vorhanden, so wird hier eine
Datenbank mit festem Schema eingesetzt. Diese Schema entspricht den
Informationen des Document Object Model. (siehe vorn)
Oracle 8i / Oracle 9i /10g



Zum Datenbanksystem Oracle werden seit der Version 8i Tools angeboten,
die die XML-Speicherung unterstützen.
Bestandteil des Oracle XML Developer's Kit (XDK)
Verfügbar sind zum Beispiel XML-Parser und XSL-Transformator
Meike Klettke
88
Speicherung von
XML-Dokumenten
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Vollständiges
(+automatisches)
Mapping
Benutzerdefiniertes
Mapping
Deutsch/Fernandez/
Suciu : Stored
Ronald Bourret
DB2 XML Extender
Meike Klettke
89
Benutzerdefiniertes Mapping /1

Bei allen bisherigen Methoden konnte die Art der
Speicherung nicht beeinflusst werden

Jetzt folgt eine flexible Methode
Mappingvorschrift wird durch den Benutzer spezifiziert



Struktur der XML-Dokumente und Datenbankschema
können unabhängig voneinander entworfen werden (und
relativ autonom sein)
Auch möglich: Speicherung von XML-Dokumenten in
existierende Datenbanken
Meike Klettke
90
Benutzerdefiniertes Mapping /2
XML-Dokument
Mapping Vorschrift
<hotel url="www.hotel-huebner.de">
<hotelname>Hotel Hübner</hotelname>
<adresse>
<ort>Warnemünde</ort>
<strasse>Seestraße</strasse>
...
<ClassMap>
<ElementType Name="hotel"/>
<ToClassTable>
<Table Name="Hotelpreise"/>
</ToClassTable>
<PropertyMap>
</adresse>
<preise>
<einzelzimmer>198</einzelzimmer>
...
</preise>
</hotel>
<Attribute Name="url"/>
<ToColumn>
<Column Name="Hotel_URL"/>
</ToColumn>
</PropertyMap>
<PropertyMap>
<ElementType Name="hotelname"/>
<ToColumn>
<Column Name="Name"/>
</ToColumn>
</PropertyMap>
...
</Classmap>
Hotelpreise
Datenbank
Meike Klettke
Hotel_URL
Name
www.hotel-huebner.de
Hotel Hübner
Einzelzimmer
198
91
Mappingvorschrift
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>
Meike Klettke
Verbindung zwischen
Elementen und
Relationen
Verbindung zwischen
Elementen/Attributen
und Datenbankattributen
92
Mappingvorschrift in Oracle
<?xml version="1.0" encoding=“ISO-8859-1“?>
<xs:schema xmlns:xdb="http://xmlns.oracle.com/xdb„
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace=http://www.oracle.com/xsd/auftrag.xsd
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="Auftrag" xdb:SQLName="AUFTRAG„ xdb:SQLType="AUFTRAG_T„
xdb:defaultTable="AUFTRAG_TAB">
<xs:complexType>
<xs:sequence>
<xs:element name="Auftragsnr„ type="xs:integer" xdb:SQLName="A_NR"
xdb:SQLType="INTEGER" />
<xs:element name="Kunde" type="xs:string„ xdb:SQLName="KUNDE„
xdb:SQLType="VARCHAR2" />
<xs:element name="Datum" type="xs:date„ xdb:SQLName="DATUM"
xdb:SQLType="DATE" />
<xs:element name="Produkt„ maxOccurs="unbounded„ xdb:SQLName="PRODUKTE"
xdb:SQLType="PRODUKT_T„ xdb:defaultTable="PRODUKT_TAB„
xdb:SQLInline="false">
....
</xs:schema>
Beispiel von Ulrike Schwinn:
Meike Klettke
93
Anfragen

Datenbankenanfragen (Struktur der Datenbanken muss
bekannt sein)

XML-Anfragen nur sehr eingeschränkt
Prozess der Abbildung der XML-Dokumente auf
Datenbanken muss protokolliert sein, und alle für die
Anfrage relevanten Daten müssen gespeichert sein
Meike Klettke
94
Eigenschaften
Schemabeschreibung
Zur Speicherung erforderlich
Dokumentrekonstruktion
Meist nicht möglich
(Voraussetzungen: Protokollierung
des Abbildungsprozesses,
vollständige Abbildung)
Anfragen
Datenbankanfragen
Updates

Weitere Besonderheiten

Anwendung
Datenzentrierte XML-Anwendungen
Meike Klettke
Als Datenbankupdates realisierbar
 Updates, die Strukturen verändern
bewirken aber Datenbankevolution
Integration in bestehende
Datenbanken möglich
 XML-Dokumente und DB
voneinander unabhängig
95
Systeme /1
IBM DB2 XML-Extender



Speicherung von XML-Dokumenten im Datenbanksystem DB2
über eine Mappingvorschrift (DAD - Data Access Definition) wird
angegeben, wie die Zuordnung von Elementen und Attributen eines
Dokuments auf die Attribute der Datenbank erfolgen soll.
Die Syntax der DAD-Dateien ist XML
Oracle




objektrelationale Speicherung des XMLType
Art der Speicherung wird durch ein annotiertes XML-Schema beschrieben,
dieses enthält eine Zuordnung von Datenbankinformationen zu den XMLBestandteilen
Dadurch benutzerdefinierte Speicherung
Zugriff auf die so gespeicherten XML-Dokumente mit XPath oder SQL
Meike Klettke
96
Systeme /2
Microsoft SQL-Server



speichert XML-Dokumente in Datenbanken
anwenderdefiniertes Mapping wird verwendet, das durch ein
annotiertes XDR-Schema festgelegt wird.
Annotationen beschreiben die Zuordnung zwischen XMLDokument und relationaler Datenbank, zum Beispiel: sql:relation
und sql:field, bestimmen die Zuordnung zwischen Elementen und
Attributen zu Datenbankrelationen und Datenbankattributen.
Meike Klettke
97
Speicherung von
XML-Dokumenten
Als Dateien /
Clobs
Speicherung der
Dokumentstruktur
Strukturierte
Speicherung
in Datenbanken
Volltextindex
Abbildung der
Graphstruktur
Vollständiges
Mapping
Volltextindex
und XML-Index
Abbilden des
DOM-Modells
Benutzerdefiniertes
Mapping
Für dokument-zentrierte XML-Dokumente
Für semistrukturierte XML-Dokumente
Für daten-zentrierte XML-Dokumente
Meike Klettke
98
Was ist native Speicherung?
Als Dateien /
Clobs
Speicherung der
Dokumentstruktur
Strukturierte
Speicherung
in Datenbanken
Volltextindex
Abbildung der
Graphstruktur
Vollständiges
Mapping
Volltextindex
und XML-Index
Abbilden des
DOM-Modells
Benutzerdefiniertes
Mapping
Textbasierte native
Speicherung
Meike Klettke
Modellbasierte native
Speicherung
99
Hybride Speicherung – Motivation
Es gibt eine Reihe von Methoden zur Speicherung von XMLDokumenten.
Welche eignet sich für XML-Dokumente, die sowohl daten- als
auch dokumentzentriert sind?


Algorithmus zur Bestimmung von daten- und
dokumentzentrierten Anteilen eines XML-Dokument
Entsprechende Speicherung
Meike Klettke
100
Hybride Ansätze
Auswahl
unterschiedlicher
Speicherungsmethoden
für verschiedene
Dokumentanteile
<hotel>
<hotelname>Strand Hotel Hübner</hotelname>
<adresse>
<plz>18119</plz>
<ort>Warnemünde</ort>
<strasse>Seestraße</strasse>
<nummer>12</nummer>
<telefon>0381/5434-0</telefon>
</adresse>
<hausbeschreibung> Sie finden unser elegant und
komfortabel eingerichtetes 4-Sterne Hotel
direkt an der Strandpromenade von Warnemünde
mit Blick auf Leuchtturm, Hafeneinfahrt
und Ostsee. </hausbeschreibung>
</hotel>
Sie finden unser elegant und
komfortabel eingerichtetes 4-Sterne Hotel
direkt an der Strandpromenade von Warnemünde
mit Blick auf Leuchtturm, Hafeneinfahrt
und Ostsee.
Hotel
Strand Hotel Hübner
Meike Klettke
Ort
Warnemünde
Strasse
Seestraße
Telefon
0381/5434-0
101
Weiteres Beispiel
nachricht:
<nachricht id="ID0001" bedeutung="4">
<autor autor_id="A0001">
<nachname>Fürst</nachname>
<vorname>Christian</vorname>
<agentur>dpa</agentur>
<e-mail>[email protected]</e-mail>
</autor>
<einordnung>
<rubrik>Mozartjahr 2006</rubrik>
…
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
</nachricht>
Meike Klettke
id
bedeutung
autor
inhalt
ID0001
4
A0001
P0001
autor:
ID
autor_id
nachname
Vorname
x00001
A0001
Fürst
Christian
...
<inhalt>
<ueberschrift>Ein Vermarktungsfest
</ueberschrift>
<text>Als Wolfgang Amadeus Mozart im
Alter von 35 Jahren starb, ..
</text>
</inhalt>
102
Hybride Datenbanken
= objekt-relationale Datenbanken mit Attributen vom Typ XML
Beispiel:
front
title
XML companion


author
Neil Bradley
publisher
Addison
Wesley
content
XML builds on the principles of two existing languages,
<emph>HTML</emph> and <emph>SGML</emph> to create a simple
mechanism .. XML builds on the principles of two existing languages,
<emph>HTML</emph> and <emph>SGML</emph> to create a simple
mechanism ..
„strukturierte“ Anteile des XML-Dokumentes als objektrelationale Strukturen
„unstrukturierte“ Anteile als Attribute vom Typ XML
Meike Klettke
103
Integration der hybriden
Speicherung in die Klassifikation
Als Dateien /
Clobs
Speicherung der
Dokumentstruktur
Strukturierte
Speicherung
in Datenbanken
Volltextindex
Abbildung der
Graphstruktur
Vollständiges
Mapping
Volltextindex
und XML-Index
Abbilden des
DOM-Modells
Benutzerdefiniertes
Mapping
• Erkennen von dokument- und datenzentrierten Anteilen
• Speicherung mit verschiedenen Verfahren
Meike Klettke
104
Anwendungen



Alle Multimedia-Anwendungen profitieren von einer hybriden
Speicherung
Vorgehensweise:
– Multimediadokumente im Original speichern (XML)
– Metadaten strukturiert speichern
Anwendungen:
– Text:
• Mecklenburger Jahrbücher
• GETESS
– Image:
• eNote history (historische Notenhandschriften)
• Proteinbilder
– Audio
• KSWS? .. und diverse andere Projekte
– Video
Meike Klettke
105
Systeme



Hybride Speicherungsverfahren werden durch Datenbanksysteme unterstützt, die mehrere Speicherungsmöglichkeiten für XML-Dokumente anbieten.
Oracle
– Speicherung eines XMLType als CLOB oder
objektrelational, Kombination der Varianten kann durch
entsprechende Angaben im annotierten XML Schema
erfolgen
DB2
– Speicherung von XML-Dokumenten als xmlcolumn und
xmlcollection, Kombination in der gegenwärtigen
Version nicht möglich !
Meike Klettke
106
Überblick zu Speicherungsverfahren
Dokumentverarbeitung
XML
Konzeptueller
Entwurf von XMLDokumenten
<..>
<..>
<..>
</..>
</..>
</..>
Datenbanken
konzeptuelle
Ebene
Meike Klettke
logische
Ebene
physische
Ebene
107
Zusammenfassung

XML-Datenbanken
– Vielzahl von Verfahren und Techniken existieren
nebeneinander
– oft aus den Bereichen Datenbanken und
Dokumentverarbeitung
– generell: es gibt keine „beste Lösung“ für alle XMLDokumente
– geeignetste Lösung ist abhängig von konkreten
Erfordernissen
– Viele Systeme bieten mehrere Varianten an
Meike Klettke
108
Literatur /1
– Neil Bradley, The XML companion, Addison Wesley, 1998
– Yoshikawa, M., Amagasa, T., Shimura, T., Uemura, S., XRel: A PathBased Approach for Storage and Retrieval of XML Documents Using
Relational Databases: ACM Transactions on Internet Technology,
Volume 1, Nummer 1, S. 110-141, 2001
– Daniela Florescu, Donald Kossmann, Storing and Querying XML Data
Using an RDBMS, Bulletin of the Technical Committee on Data
Engineering, volume 22, number 3, September 1999, pp. 27-34
– Dieter Scheffner, Rainer Conrad: Access Support Tree & TextArray: A
Model for Physical Storage of XML Documents, Workshop WebDatenbanken, 2001
– Guido Rost: Implementierung von XQuery auf objekt-relationalen
Datenbanken, Diplomarbeit, Universität Rostock, Fachbereich
Informatik, 2002
Meike Klettke
109
Literatur /2
– Richard Edwards, Sian Hope: Persistent DOM: An Architecture for
XML Repositories in Relational Databases, Intelligent Data
Engineering and Automated Learning --- IDEAL, 2000, S. 416—421
– Georg Lausen, Pedro José Marrón: On Processing XML in LDAP,
Proceedings of 27th International Conference on Very Large Data
Bases, VLDB, 2001, S. 601--610
– Jayaval Shanmugasundaram, Kristin Tufte, Gang He, Chun Zhang,
David DeWitt, Jeffrey Naughton, Relational Databases for Querying
XML Documents - Limitations and Opportunities, Proceedings of the
25th VLDB Conference, Edinburgh, Scotland, 1999, pp. 302-314
– Ronald Bourret, C. Bornhövd, A.P. Buchmann, A Generic Load/
Extract Utility for Data Transfer between XML Documents and
Relational Databases, Second International Workshop on Advanced
Issues of E-Commerce and Web-based Information Systems,
WECWIS'00
Meike Klettke
110
Literatur /3
– Ronald Bourret, XML-DBMS - Middleware for Transferring Data between
XML Documents and Relational Databases,
http://www.rpbourret.com/xmldbms/index.htm
– Klemens Böhm: Verwendung objektorientierter Datenbanktechnologie zur
Verwaltung strukturierter Dokumente, Dissertation, Technische
Hochschule Darmstadt, 1997
– Meike Klettke, Holger Meyer, XML and Object-Relational Databases Enhancing Structural Mappings Based on Statistics, WebDB 2000, Mai
2000
– Alin Deutsch, Mary F. Fernandez, Dan Suciu, Storing Semistructured Data
with STORED, SIGMOD 1999, Proceedings ACM SIGMOD International
Conference on Management of Data, June 1999, Philadephia,
Pennsylvania, USA, ACM Press, 1999, pp. 431-442
– Beate Porst, Untersuchung zu Datentyperweiterungen für XMLDokumente und ihre Anfragemethoden am Beispiel von DB2 und Informix,
Diplomarbeit, Universität Rostock, Fachbereich Informatik, 2000
Meike Klettke
111
Literatur /4
– www.ibm.com
– www.oracle.com/xml
– Ulrike Schwinn (Oracle): XML in der Oracle Datenbank „relational and
beyond“, BTW 2003
– www.exceloncorp.com
– Rüdiger Eichin, Excelon: Prozeßmanagement auf der Basis von XML,
Fachgruppentreffen, GI-Fachgruppe Datenbanksysteme, Darmstadt,
2002
– eXtensible Information Server (XIS), Native XML Data Management
System, www.exceloncorp.com/products/xis/
– www.microsoft.com
Meike Klettke
112
Literatur /5
– www.softwareag.com/tamino
– Harald Schöning, Jürgen Wäsch: Tamino --- An Internet Database
System, Advances in Database Technology --- EDBT 2000, LNCS
1777, S. 383—387
– Walter Waterfeld: Realisierungsaspekte eines XML
Datenbanksystems, BTW 2001
– www. fastobjects.com
– www.infonyte.com
– Thomas Tesch, Peter Fankhauser, Tim Weitzel (infonyte): Skalierbare
Verarbeitung von XML-Dokumenten in Datenbanken, BTW 2003
– Meike Klettke, Holger Meyer, XML and databases,
http://www.xml-und-datenbanken.de
Meike Klettke
113
Herunterladen