XML-Datenbanken - ASV, Uni Leipzig

Werbung
Wissens- und
Content-Management
XML und Datenbanken
Dr. Roman Schneider
Institut für Informatik
XML und Datenbanken
Content Management für XML 1/3
•
Aufgabe: Verwaltung der Inhalte und der logischen Struktur von XMLInstanzen
•
Layoutinformationen separat
=> flexible Darstellung und effektive Weiterverarbeitung (Medien, Formate, …)
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
2
XML und Datenbanken
Content Management für XML 2/3
Was gehört dazu? Spektrum der Teilaufgaben:
•
•
•
•
•
•
Modellierung: Erstellung/Ableitung von Strukturbeschreibungen
Manuelle oder automatisierte Generierung von XML-Dokumenten
Speicherung von (dokumentenzentrierten, semistrukturierten, ggf. auch
datenzentrierten) XML-Dokumenten (CMS, DBMS)
Indizierungsverfahren (wichtig zur Abfrage-Optimierung)
Abfragerealisierung (Abfragesprachen für XML-Dokumente)
Update / Transformation von XML-Dokumenten
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
3
XML und Datenbanken
Content Management für XML 3/3
Strukturbeschreibung
Modellierung
XML-Dokumente
Generierung
CMS / Datenbank
Dr. Roman Schneider
Transformation
XSLT
Modul Wissens- und Contentmanagement
HTML
4
XML und Datenbanken
Problematik
1.
2.
3.
XML-Dokumente können für sehr verschiedene Anwendungen
/ Zwecke eingesetzt werden (Kataloge, Webseiten, ...)
=> Aufbau der Dokumente unterscheidet sich stark
Oft mehrere Varianten einer Struktur-Modellierung denkbar
Es existiert eine Vielzahl von Methoden zur Speicherung
Nachfolgend:

Klassifikation und

Einordnung bekannter Methoden für Entwurf, Generierung &
Speicherung von XML-Dokumenten
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
5
XML und Datenbanken
Drei-Ebenen-Architektur
konzeptuell ► logisch ► physisch

3 Ebenen für Datenbanken ok

3 Ebenen für XML-Anwendungen ?
2) Logische Ebene (systemabhängig, Relationenschemata)
Anordnung entspricht
3) Physische Ebene (konkrete Implementierung, Datendefinition)
hier der historischen
1) Konzeptuelle Ebene (Anforderungsanalyse, systemunabhängig)
Entwicklung!
k
o
n
z
e
p
t
u
e
l
l
e
E
b
e
n
e
Dr. Roman Schneider
l
o
g
i
s
c
h
e
E
b
e
n
e
Modul Wissens- und Contentmanagement
p
h
y
s
i
s
c
h
e
E
b
e
n
e
6
XML und Datenbanken
Drei Ebenen bei Datenbanken
k
o
n
z
e
p
t
u
e
l
l
e
E
b
e
n
e
1.
2.
3.
l
o
g
i
s
c
h
e
E
b
e
n
e
p
h
y
s
i
s
c
h
e
E
b
e
n
e
Konzeptuelle Ebene (in der Regel bezogen auf ein
Anwendungsgebiet): Entwurf evtl. bereits mit ERM, ERDiagrammen
Logische Ebene (logische Strukturen für konkretes System):
relationales Datenmodell, relationale Algebra
Physische Ebene (Implementierung): interne Speicherung,
Indizierung, Transaktionsverarbeitung, Anfrageoptimierung
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
7
XML und Datenbanken
Konzeptuelle Ebene bei Datenbanken
Nach Prof. Dr. Rainer Manthey, Bonn
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
8
XML und Datenbanken
Logische Ebene bei Datenbanken
n
1
Nach Prof. Dr. Rainer Manthey, Bonn
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
9
XML und Datenbanken
Physische Ebene bei Datenbanken
TB_STADT
TB_HAUPTSTADT
TB_LAND
CO_STADT | CO_LAND
----------------------------------Berlin
D
Hamburg
D
Leipzig
D
Köln
D
Bordeaux
F
Paris
F
CO_STADT | CO_LAND
---------------------------------Berlin
D
Paris
F
CO_LAND
---------------D
F
 CREATE TABLE – Statement
Mit Datentypdefinition etc.
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
10
XML und Datenbanken
Drei Ebenen für XML-Applikationen
Konzeptueller
Entwurf von XMLDokumenten
?
<..>
<..>
<..>
konzeptuelle
Ebene
</..>
</..>
</..>
logische
Ebene
?
physische
Ebene
Historisch: logische Ebene (Spezifikation Dokumentenmodell) prominent…

XML-Dokumente: Welche Methoden und Werkzeuge für...
–
–
–
–
Entwurf/Konzeption ?
Speicherung ?
Anfragen, Updates ?
Transformation ?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
11
XML und Datenbanken
Logische Ebene: Modelle, Methoden & Technologien
dokumentzentriert
</..>
</..>
</..>
logische
Ebene
semistrukturiert
<..>
<..>
<..>
Dokumentmodell
Anfragen/Updates an
Struktur und Inhalt
XML, SGML
XQuery, XPath, Volltext-IR
XSLT
Daten- und Dokumentmodell
Anfragen/Updates an
Struktur und Inhalt
XML, SGML
XQuery, XPath
XSLT
datenzentriert
Datenmodell
Anfragen/Updates an
Inhalt
XML, RDBM, OODBM
XQuery, Xpath, SQL
XSLT, DB-Import, -Export
… und für die physische bzw. konzeptuelle Ebene?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
12
XML und Datenbanken
Anforderungen an die physische Ebene
Anforderungen an die Speicherung von XML-Dokumenten:
effektive Speicherung
 effizienter Zugriff auf XML-Dokumente oder -Fragmente
durch
physische
– Transaktionsverwaltung
Ebene
– Unterstützung von XPath und XQuery
– Unterstützung von SAX (Simple API for XML) oder DOM (Document
Object Model, W3C-Standard), beide spezifizieren Methoden für den
Zugriff auf XML-Instanzen
 Wiederherstellbarkeit der Dokumente (bzw. der enthaltenen Informationen)

Nach Fiebig, Kanne, Moerkotte (2002): Anatomy of a native XML base management system.
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
13
XML und Datenbanken
Physische Ebene: Modelle, Methoden & Technologien
semistrukturiert
Struktur durch Schema
und Werte kodiert
datenzentriert
Dr. Roman Schneider
dokumentzentriert
physische
Ebene
kaum explizite Struktur
Struktur durch Schema
Speicherung als Ganzes
Speicherung der
Graphstruktur
Abbildung auf
Datenbanken
Modul Wissens- und Contentmanagement
14
XML und Datenbanken
Realisierungen für die physische Ebene

Speicherung der XML-Dokumente als
Ganzes (textbasiert native)
– Dateisystem
– Volltextindex
– Strukturindex

physische
Ebene
Speicherung der Graphenstruktur
(modellbasiertes natives Verfahren)
– generische Graphspeicherung
– Speicherung der DOM-Informationen

strukturierte Abbildung auf Datenbanken
– relationale Datenbanken
– objekt-orientierte und objekt-relationale Datenbanken
– Einsatz von Mappingverfahren (manuell oder automatisiert)
XML-Datenbanken?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
15
XML und Datenbanken
Konzeptuelle Ebene: Modelle, Methoden & Technologien
dokumentzentriert
??
Entwurf von XMLDokumenten
konzeptuell
e
konzeptuelle
Ebene
Ebene
semistrukturiert
Konzeptueller
Modellierung von
Struktur und Inhalt
??
Modellierung von
Struktur und Inhalt
??
datenzentriert
Modellierung von
Struktur
??
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
16
XML und Datenbanken
Realisierungen für die konzeptuelle Ebene
Dokumentzentrierte XML-Dokumente
– Graphische Entwurfswerkzeuge
– Visualisierung von Baum- und Graphstruktur
Konzeptueller
Entwurf von XMLDokumenten
konzeptuelle
Ebene
Semistrukturierte XML-Dokumente
– Graphendarstellungen, …?
Datenzentrierte XML-Dokumente
– UML (Unified Modelling Language)
– Erweiterung von ER
– Erweiterung von ORM (Object-Relational Mapping, einem Konzept zum
Abbilden von Objekten in relationale Datenbanken)
Hier besteht (insbesondere für semistrukturiertes XML) noch Forschungsbedarf,
bislang keine etablierte Entwurfsmethode!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
17
XML und Datenbanken
Zusammenfassung: Drei-Ebenen-Architektur
Dokumentverarbeitung
Konzeptueller
Entwurf von XMLDokumenten
XML
<..>
<..>
<..>
</..>
</..>
</..>
Datenbanken
konzeptuelle
Ebene
logische
Ebene
physische
Ebene
=> was leisten (XML-)Datenbanken für die Speicherung?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
18
XML und Datenbanken
Stand der Kunst bei XML-Datenbanken
Nach wie vor ist vieles in der Entwicklung:


Beim W3C: Abfragesprachen, Updatesprachen, Schemaevolutionssprachen
Entsprechend auch bei XML-Datenbanksystemen
Diverse Verfahren und Techniken existieren nebeneinander
 Im Produkt-Portfolio großer Anbieter gibt es z.T. mehrere parallel angebotene
Lösungen
 Technologie oft aus den „etablierten“ Sparten DBMS und Textverarbeitung
 Generell: es gibt keinen „Königsweg“
 Beste Lösung für Anwender ist abhängig von konkreten Erfordernissen (und
Vorkenntnissen)

Dr. Roman Schneider
Modul Wissens- und Contentmanagement
19
XML und Datenbanken
Speicherung von XML-Instanzen in Datenbanken 1/2

Vorstellung von verschiedenen Speicherungs-Methoden
–
–
–
–

Grundprinzip der Speicherung (als Ganzes ↔ Struktur ↔ feingranular)
Untersch. Anwendungsbereiche
Spezifische Eigenschaften der Speicherungs-Methoden
Abfragemöglichkeiten
Klassifikation der Methoden folgt…
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
20
XML und Datenbanken
Speicherung von XML-Instanzen in Datenbanken 2/2
Speicherung
als Ganzes
Volltextindex
Speicherung der
Dokumentstruktur
Volltext- und
XML-Index
Information Retrieval
Suchmaschinen
- Oracle Text
- IBM DB2 Text Extender
- MS SQL Server Volltextsuche
Dr. Roman Schneider
feingranulare
Speicherung
in Datenbanken
=> Exkurs XML & IR
Modul Wissens- und Contentmanagement
21
XML und Datenbanken
Exkurs: Information Retrieval 1/4
Information Retrieval beschäftigt sich mit Verarbeitung solcher
Informationsanfragen:
„Wo findet man Informationen über Kühlschränke?“
 „Wie ist der Begriff Airflow-System definiert?“
 „Wo ist der Zusammenhang zwischen Kühlsystem und
Energieverbrauch erläutert?“

Norbert Fuhr: „inhaltliche Suche in Texten“
(http://www.is.inf.uni-due.de/courses/ir_ss06/folien/irskall.pdf)
Varianten der Anfrageformulierung: Satz vs. Stichwort vs. ...
Beachten muss man stets die Effizienz, denn in der Regel liegen
große Textmengen zugrunde (”Google doch mal danach...”)!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
22
XML und Datenbanken
Exkurs: Information Retrieval 2/4
Anwendung z.B. in Suchmaschinen,
dabei spezielle Anforderungen
(Textformate, Versionen,
Dokumentstrukturen, ...)
Bibliotheken: Volltext- und
Metasuche
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
23
XML und Datenbanken
Exkurs: Information Retrieval 3/4
Volltextindizierung = grundlegende
Technologie im Information Retrieval
1
Eingesetzt bei der Erschließung von
Textdokumenten,
 Produktkatalogen,
 oder in Suchmaschinen.

3
Generell überall hinter solchen Feldern:
2
4
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
24
XML und Datenbanken
Exkurs: Information Retrieval 4/4



Situation: Man sucht Dokumente (html, doc,
pdf, ps, etc.), in denen die in der Suche
angegebenen Begriffe auftauchen.
Keine semantische Suche: Computer
„versteht“ die Texte nicht, man kann also
nur danach suchen, welche Wörter in den
Texten vorkommen, wie oft, in welchem
Zusammenhang...
Wie funktioniert (inhaltsbasierte) Suche in
solchen Dokumenten?
Dokument mit Markup:
<a href=„kuehlung.html“>
Kühlschränke</a>
... Airflow-System
... Energieverbrauch
... Watt
... Kühlung
=> Deskribierung & Indizierung
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
25
XML und Datenbanken
Inhaltsbasierte Suche in Volltexten umfasst:
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Index
Präsentation
Deskribierung
manuelle und
automatische Verfahren
zur Anreicherung des
strukturierten Textes mit
Deskriptoren
Dr. Roman Schneider
Bewertung und Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
Modul Wissens- und Contentmanagement
26
XML und Datenbanken
Deskribierung
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Index
Präsentation
Deskribierung
manuelle und
automatische Verfahren
zur Anreicherung des
strukturierten Textes mit
Deskriptoren
Bewertung und Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
=> Indexbildung!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
27
XML und Datenbanken
Indexbildung 1/4





Suchmaschinen für das WWW nutzen indizierte Webdokumente.
Information-Retrieval-Systeme und Datenbanksysteme führen
ebenfalls eine Indexbildung nach der Speicherung von
Dokumenten durch.
Ggf. verschiedene Formate (HTML, PDF, Text, ...)!
Vor der Indexbildung muss bereits feststehen:
– welche Arten von Informationen angefragt werden
– wie die Anfragen aussehen (Einwort, Mehrwort, Phrasen, ...)
Anfragen sind zeitkritisch, Indexbildung nicht!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
28
XML und Datenbanken
Indexbildung 2/4

aus den Dokumenten werden die relevanten Textwörter (!) extrahiert und
ggf. aufbereitet, nur diese fließen in den Index ein
<a href=„kuehlung.html“>
Kühlschränke</a>
... Airflow-System
... Energieverbrauch
... Watt
... Kühlung
Kühlschränke
Airflow-System
Kühlung, 2*
Watt
Energieverbrauch
Lemmabildung, Umlaute, …
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
29
XML und Datenbanken
Indexbildung 3/4
Implementierung als invertierte Liste
Dokumente
Stichworte
1
A
D
F
2
B
C
D
3
A
C
D
Stichworte Dokumente
E
Bestimmung der Stichworte
der Dokumente
A
B
C
D
E
F
1
2
2
1
3
1
3
3
2
3
Invertierte Speicherung der Stichworte
und der zugehörigen Dokumente
• verschiedene Optimierungen der Indexstrukturen (B-Tree, Bitmap-Index etc.)
• Anfragen sind zeitkritisch, die Indexbildung weniger: Ziel sind effiziente Zugriffe!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
30
XML und Datenbanken
Indexbildung 4/4
Verfahren zur Deskribierung (Anreicherung um Deskriptoren)

statistische, wortbasierte Verfahren
– Häufigkeit von Wörtern auswerten

linguistische Verfahren
– Stammwortreduktion (Lemmabildung)
– Phonetische Ähnlichkeit (Soundex)
Deskribierung
Index
– Ähnliche Schreibung (fuzzy)
– Erkennen von Satzzusammenhängen (Thema-Rhema, Folgerungen, ...)

wissensbasierte Verfahren
– Klassifikationen, Thesauri, Wortnetze, Ontologien
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
31
XML und Datenbanken
Häufigkeit der Wörter berücksichtigen 1/2

Stoppwortliste eliminiert häufige Worte (z.B. Funktionswörter)
– diese würden sehr viele Einträge im Index bewirken, sind aber für die
Recherche zumeist ungeeignet
– 10 häufigste Wörter im Deutschen laut Wikipedia:
• der, die, und, in, den, von, zu, das, mit, sich
Vgl.: DeReWo – Korpusbasierte Grund-/Wortformenlisten
http://www.ids-mannheim.de/kl/projekte/methoden/derewo.html

sehr seltene Begriffe werden gestrichen
– haben zwar die höchste Selektivität, würden die Anzahl der Begriffe im Index
unverhältnismäßig erhöhen und sind für die Recherche oft zu speziell
– Beispiele:
• kennte
• Külschrank
• Kuhlschrank
• Mogelpower
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
32
XML und Datenbanken
Häufigkeit der Wörter berücksichtigen 2/2
Zipf´sches Gesetz
Häufigkeit
Rang*
* Sortierung der Terme nach abfallender
Häufigkeit
zu seltene Terme
zu häufige Terme
Diskriminationskraft der
Terme
(nach George Kingsley Zipf, 1902-1950)
Produkt aus Rang und Frequenz ist
stabil
Salton / McGill, 1983
Begriffe mit mittlerer Häufigkeit eignen
sich am besten zur Unterscheidung
abnehmende
Worthäufigkeit
Stoppwortliste
Dr. Roman Schneider
Eliminierung seltener Begriffe
Modul Wissens- und Contentmanagement
33
XML und Datenbanken
Bildung eines linguistischen Indexes 1/2
Motivation: Begriffsuche soll auch Deklinationen (Beugung von Substantiven /
Adjektiven) bzw. Konjugationen (Beugung von Verben) einbeziehen.
Beispiele:
– bei Eingabe des Suchbegriffes „Kühlschrank“ sollen auch Dokumente mit dem
Begriff „Kühlschränke“ gefunden werden
– bei der Suche nach „fehlschlagen“ soll auch „fehlschlug“ und „fehlgeschlagen“
gefunden werden



Ergänzend zum exakten Begriff wird die Grundform der Textwörter
gespeichert
Außerdem evtl.: phonetische Ähnlichkeit oder ähnliche Schreibungen
beachten
Ziele:
– Zusammenführung sprachlich zusammengehöriger Textwörter zu einem
Eintrag
– dadurch Verkleinerung der invertierten Listen
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
34
XML und Datenbanken
Bildung eines linguistischen Indexes 2/2
Verfahren:
– Wortnormalisierung (Groß- und Kleinschreibung, Umlaute)
– Wortdekomposition (besonders für deutsche Sprache wichtig)
• Komposita (zusammengesetzte Begriffe) werden auseinandergenommen,
• Beispiele:
– Haupt-bahnhof, Ost-bahnhof (Hauptbahn-hof?)
– Einzel-zimmer, Doppel-zimmer, Zweibett-zimmer
– Stammformreduktion (Verfahren zur Bestimmung der Grundformen)
durch:
• Regeln (sprachabhängige Verfahren mit untersch. Güte) oder
• Wörterbücher (besonders für Sprachen mit vielen Unregelmäßigkeiten)
• Abkürzungen auflösen?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
35
XML und Datenbanken
Recherche
Recherche
Index
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Präsentation
Deskribierung
manuelle und
automatische Verfahren
zur Anreicherung des
strukturierten Textes mit
Deskriptoren
Dr. Roman Schneider
Bewertung und Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
Modul Wissens- und Contentmanagement
36
XML und Datenbanken
Verfahren zur Recherche
Häufigste Retrievalmodelle:
- Boolesches Retrieval
Recherche
- Vektorraummodell
- probabilistisches Modell
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
37
XML und Datenbanken
Boolesches Retrieval 1/2





Dokumente werden als Wort-Mengen modelliert
Abfrage-Grundbaustein: Paar aus Attribut & Attributwert
verknüpft durch: and, or, not
exakt, logisch klar, einfach programmierbar
Suchmaschinen-Statistiken weisen aus, dass Anfragen
durchschnittlich 1,7 Wörter enthalten
Nachteile:
 relativ geringe Möglichkeiten, komplexere Anfragen (präzise) zu
formulieren, evtl. Abfragesprachen mit Klammerung etc.
 Häufigkeit und Relevanz der Terme bleiben unberücksichtigt
 Boolesches Retrieval erlaubt kein Ranking (Ergebnis 0 oder 1),
dieses wird ggf. nachträglich in einem zweiten Schritt ermittelt
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
38
XML und Datenbanken
Boolesches Retrieval 2/2
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
39
XML und Datenbanken
Vektorraummodell 1/2




Dokumente und Anfragen werden nicht als Wortmengen, sondern als
Vektoren (mit Länge und Richtung) betrachtet
Abbildung auf jeweils genau einen Eintrag im Vektorraum
(hochdimensional in Abhängigkeit von Zahl der indizierten Terme)
Merkmalsgewichtungsmodelle berücksichtigen die Häufigkeit von
Textwörtern, Lemmata oder n-Grammen
Reihenfolge der Wörter wird ignoriert (“bag of words”)
d1 = ( 1 , 3 , 3 , 0 , 0 )
d2 = ( 0 , 2 , 1 , 0 , 1 )
d3 = ( 1 , 0 , 0 , 1 , 0 )
d4 = ( 0 , 4 , 2 , 7 , 0 )
d5 = ( 0 , 0 , 1 , 1 , 1 )
q = query
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
40
XML und Datenbanken
Vektorraummodell 2/2





mit einem Ähnlichkeitsmaß (Vektordistanz) werden zu einer AnfrageVektor die ähnlichsten Dokumenten-Vektoren ermittelt
es gibt zahlreiche Ähnlichkeitsmaße
Vagheit von Anfragen wird berücksichtigt ("best match"-Prinzip, d. h. es
erfolgt ein Ranking der Dokumente nach der Wahrscheinlichkeit in wieweit
ein Dokument auf die Anfrage zutrifft)
Ergebnis der Ähnlichkeitsfunktion kann für das Ranking verwendet werden
Relevance-Feedback
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
41
XML und Datenbanken
Probabilistisches Modell




Ermittlung der Wahrscheinlichkeit, ob ein Dokument für die
Suchanfrage relevant ist
Hauptkriterium: Häufigkeiten (Suchterm, Terme in Dokument, ...)
Terme der Anfrage können gewichtet werden, damit hat der
Benutzer die Möglichkeit, wichtigere und unwichtigere Teile einer
Anfrage explizit zu spezifizieren
Wörter des Dokumentes werden ebenfalls gewichtet
– manuelle Verfahren: für Indizierende stellt die Angabe solcher
Wahrscheinlichkeiten eine schwierige Aufgabe dar
– automatische Verfahren: verwenden Worthäufigkeiten,
Dokumentgröße, Position des Worts im Dokument
(Überschrift?), ..
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
42
XML und Datenbanken
Übersicht der Retrievalmodelle
Boolesches Modell
Vektorraummodell
Probabilistisches Modell
Gewichtung
Ja
Ja
Ranking
Ja
Ja
Vektordistanz
Häufigkeit der Begriffe
Boolesche Verknüpfungen
Kriterium der
Übereinstimmung
Alleinstellungsmerkmal
Dr. Roman Schneider
Ja
Vorhandensein der
Begriffe
Relevance Feedback
Modul Wissens- und Contentmanagement
43
XML und Datenbanken
Präsentation
Recherche
Suche von Textdokumenten
nach Vorgabe
von Dokumentdeskriptoren
Präsentation
Deskribierung
manuelle und
automatische Verfahren
zur Anreicherung des
strukturierten Textes mit
Deskriptoren
Dr. Roman Schneider
Index
Bewertung und Ordnung der gefundenen Dokumente
nach ihrer Güte
Ranking, Relevance Feedback
Modul Wissens- und Contentmanagement
44
XML und Datenbanken
Präsentation
Ranking: Bestimmung, in welcher Reihenfolge die ermittelten Ergebnisse
präsentiert werden.
Grundlegende Maße (kombinierbar):
 Häufigkeit des Suchterms im Dokument
 Anzahl der verschiedenen Suchterme eines Dokumentes
 Anzahl der Dokumente, in denen der Suchterm auftritt
 Dokumentgröße
Recherche
Index
Bewertung
Relevance Feedback:
 Dialog mit dem Benutzer
 Klassifizierung von relevanten und nicht relevanten Dokumenten
 anschließend nochmalige Ergebnisermittlung.
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
45
XML und Datenbanken
Anwendung von Volltextsuchen auf XML-Dokumente
Volltext-Index
bekannte Methode (älter als relationale Datenbanken)
 Verfahren aus dem Bereich der Dokumentverarbeitung
 Problem: wie soll mit Bezeichnern von XML-Elementtypen/-Attributtypen
umgegangen werden?

Begriff
Verweis
hotel
Warnemünde
Rostock
ort
anreisebeschreibung
<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>
=> Volltextindex plus XML-Index!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
46
XML und Datenbanken
Speicherung von XML-Instanzen
Speicherung
als Ganzes
Volltextindex
Dr. Roman Schneider
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Volltext- und
XML-Index
Modul Wissens- und Contentmanagement
47
XML und Datenbanken
Volltext- und XML-Index 1/3
- XML-Markup kann für Anfragen auswertbar gemacht werden
- Strukturinformationen sollten im (separaten XML-) Index erkennbar sein
=> Formulierung von Abfragen?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
48
XML und Datenbanken
Volltext- und XML-Index 2/3
/hotel/adresse/ort/text()=“Warnemünde“
Dr. Roman Schneider
Modul Wissens- und Contentmanagement

Einsatz von XPath
und XQuery möglich.

Anfragen, die das
gesamte Dokument
als Ergebnis liefern
sollen, lassen sich
einfach bedienen.

Andernfalls muss das
Dokument geparst
und das Ergebnis
daraus generiert
werden.
49
XML und Datenbanken
Volltext- und XML-Index 3/3
Schemabeschreibung
Nicht zwingend erforderlich
Dokumentrekonstruktion
XML-Dokumente bleiben im Original erhalten
Anfragen
Anfragen des Information Retrieval
Volltextanfragen
XML-Anfragen / Auswertung des Markups
Updates
Austausch kompletter XML-Dokumente
Anwendungen
dokumentzentriertes / semistrukturiertes XML
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
50
XML und Datenbanken
Speicherung von XML-Instanzen
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
(einfache)
Abbildung der
Graphstruktur
strukturierte
Speicherung
in Datenbanken
Speicherung der
Informationen
des DOM
Umfeld SemWeb / NoSQL:
AllegroGraph
Neo4j
Universitäre Prototypen
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
51
XML und Datenbanken
Speicherung der Graphstruktur 1/4
:
Element
<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>
Typ
Wert
Ordnung
hotel
1
adresse
2
plz
int
18119
1
ort
string
Warnemünde
2
strasse
string
Seestrasse
3
Vorgänger
„numbering scheme“
Attribute:
Element
Attribut
Typ
Wert
url
string
www...
autor
string
Müller
• generische Abbildung der Struktur der XML-Instanz
• Verwendung von Knoten/Properties zur Speicherung von Elementen/Attributen
• Verwendung von Kanten für Beziehungen zwischen Knoten
• werden mehrere XML-Instanzen gespeichert: Instanz-ID ergänzen!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
52
XML und Datenbanken
Speicherung der Graphstruktur 2/4
Umsetzung der Speicherung von Elementen & Attributen:

Elemente:
XML-ID 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 (auch ohne DTD) möglich
GraphenDBs: Knoten/Kanten anstatt relationalen Tabellen/Fremdschlüsseln
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
53
XML und Datenbanken
Speicherung der Graphstruktur 3/4
XML-Anfragen sind möglich, werden intern auf Datenbank-Anfragen (unter
Berücksichtigung der Speicherstruktur) umgesetzt => zumeist SQL oder
spezielle Abfragesprachen wie SPARQL (=>RDF) oder Gremlin (OpenSource-Graphen-Programmiersprache)
XMLAnfragen
SQL
Ergebnis der XML-Anfrage wird ggf. aus Ergebnis der DB-Anfrage
generiert.
 für einfache Anfragen gut verwendbar
 aber: Traversieren komplexer Anfragen über zwei oder mehr Knoten
problematisch („teuer“) - insbesondere bei großen Datenvolumen!

Dr. Roman Schneider
Modul Wissens- und Contentmanagement
54
XML und Datenbanken
Speicherung der Graphstruktur 4/4
Konkretes SQL durch Speicherstruktur bestimmt:
Beispiel:
DocID
Element
(Hotels in Warnemünde)
d0001
hotel
d0001
adresse
d0001
select a.wert
from Elemente a, Elemente b
where (a.element='hotel') and
(b.element='ort') and
(b.wert='Warnemünde') and
(a.DocID=b.DocID)
Dr. Roman Schneider
Typ
Wert
plz
int
18119
d0001
ort
string
Warnemünde
d0001
strasse
string
Seestrasse
Modul Wissens- und Contentmanagement
Vorgänger
55
XML und Datenbanken
Speicherung von XML-Instanzen
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
(einfache)
Abbildung der
Graphstruktur
strukturierte
Speicherung
in Datenbanken
Speicherung der
Informationen
des DOM
Excelon
Berkeley-DB XML
Infonyte-DB
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
56
XML und Datenbanken
Speicherung basierend auf DOM 1/4
DOMImplementation

Informationen des Document
Object Models (DOM) bilden
das Schema für die
Speicherung
Node
NodeList
NamedNodeMap
Attr
CharacterData
Comment
Text
CDataSection
Verwendung relationaler
oder objekt-orientierter
Datenbanken
oder
 Entwicklung eigener
Speicherungsstrukturen

Dr. Roman Schneider
Document
DocumentFragment
DocumentType
Element
Entity
EntityReference
Notation
ProcessingInstruction
Modul Wissens- und Contentmanagement
57
XML und Datenbanken
Speicherung basierend auf DOM 2/4
XML-Beispiel von w3schools.com
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
58
XML und Datenbanken
Speicherung basierend auf DOM 3/4
Infonyte-DB



verwendet zur Speicherung von XML-Dokumenten
ein persistentes Document Object Model (PDOM)
baut nicht auf existierende DBMS auf, sondern entwickelt Komponenten
zur physischen Speicherung, die an die XML-Dokumente optimal
angepasst sind
Anfragesprache: Richtung XQuery
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 gespeichert.
Berkeley DB XML

Generische Speicherung, Anfragen via XPath, XQuery
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
59
XML und Datenbanken
Speicherung basierend auf DOM 4/4
XMLAnfragen


SQL
DOM-Methoden
(getChildren(),
hasChild(), ...)
XML-Anfragen
(XQuery / XPath)
Dr. Roman Schneider

Angepasste
Datenbankanfragen (unter
Kenntnis der
Speicherungsstruktur)
Modul Wissens- und Contentmanagement
60
XML und Datenbanken
Speicherung von XML-Instanzen
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Vollständiges
(+automatisches)
Mapping
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
Benutzerdefiniertes
Mapping
61
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 1/8
Ansatz: Abbildung der XML-Struktur auf Struktur (relationaler oder
objektorientierter) Datenbanken
- DTD oder XML-Schema (besser wg. Datentypen!) ist erforderlich
- typgerechte Speicherung einzelner Element-/Attributtypen
- Kodierung von hierarchischen Informationen
- gut abbildbar: Sequenzen von Elementen, Attribute
- schlecht abbildbar: mixed content
Objekttypen vs. strenge Relationierung
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
62
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 2/8
Regeln zur Erzeugung des Datenbankschemas aus einer DTD:

XML-Element wird Attribut (Spalte) einer Relation (Tabelle)

Element mit Quantifizierer ? wird Attribut mit Nullwerten

Zusätzliche Relation für Element mit Quantifizierer * oder +

...
XML-Attribute:
 XML-Attribut
 IMPLIED
 REQUIRED
 Defaultwert
Dr. Roman Schneider
Attribut einer Relation
Nullwert erlaubt
Nullwert nicht erlaubt (NOT NULL)
Defaultwert
Modul Wissens- und Contentmanagement
63
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 3/8
Informix-Syntax:
Beispiel:
<!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
zus. Relation?
(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 ...);
=> Wie legt man die Datentypen fest ?!
book:
isbn
front
title
author
first
Dr. Roman Schneider
second
body
edition
references
publisher
e-mail
Modul Wissens- und Contentmanagement
64
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 4/8
Überführung in (objekt-)relationales Schema 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>
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
65
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 5/8
Problemfälle bei der Abbildung: (1) Alternative Elemente
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>
Generell sind drei Speicherungsvarianten möglich:
 alle Alternativen in einer Relation vorsehen (aber: viele Nullwerte!)
 Aufspaltung in separate Relationen (Performanz?)
 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>
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
66
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 6/8
Problemfälle bei der Abbildung: (2) Rekursionen (in DTDs)

Beispiel:
<!ELEMENT publications (book | article | conference)*>
<!ELEMENT book (front, body, references)>
<!ELEMENT references (publications+)>

Vorgehensweise:
– Markieren der Knoten
– Aufspaltung in separate Relationen
– Verwendung von Referenzen (primary/foreign key)
book
references
public.
book
...
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
ID
book
references
67
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 7/8
Problemfälle bei der Abbildung: (3) 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:
Problematische Abbildung in
Relationen!
Angemessener: XML-Datentyp
Bahn
per Bahn: 1 km ab
Bahnhof Warnemünde
2
per Auto: 19 km ab Autobahn
A19 Rostock—Berlin
3
4
Auto
Sie finden uns direkt an der
Uferpromenade.
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
68
XML und Datenbanken
Automatisierte strukturierte Speicherung in Datenbanken 8/8
Zusammenfassung der automatisierten strukturierten Abbildung
Vorteile: bei der Speicherung strukturierter Daten


Bietet SQL-Anfragen, Datentypen, Aggregatfunktionen, Sichten
Einfache Integration in andere Datenbanken
Nachteile: bei der Speicherung semi- und unstrukturierter Daten



großes Schema, schwach gefüllte Datenbanken, viele Nullwerte
Speicherung von Alternativen problematisch
keine Volltextoperationen möglich
Deshalb besser benutzerdefinierte, flexible Abbildung?
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
69
XML und Datenbanken
Speicherung von XML-Instanzen
Speicherung
als Ganzes
Speicherung der
Dokumentstruktur
strukturierte
Speicherung
in Datenbanken
Vollständiges
(+automatisches)
Mapping
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
Benutzerdefiniertes
Mapping
70
XML und Datenbanken
Benutzerdefiniertes Mapping 1/5

Bei allen bisherigen Methoden konnte die Art der Speicherung nicht
beeinflusst werden

Oft praktikabler: flexible Methode

Mappingvorschrift wird dabei durch den Benutzer spezifiziert

Struktur der XML-Instanzen und das Datenbankschema können unabhängig
voneinander entworfen werden (und relativ autonom gepflegt werden)

Nebeneffekt: Ermöglicht Speicherung von XML-Dokumenten in bereits
existierenden Datenbanken
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
71
XML und Datenbanken
Benutzerdefiniertes Mapping 2/5
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

Hotel_URL
Name
www.hotel-huebner.de
Hotel Hübner
Einzelzimmer
198
XML-Segmente können auch ignoriert werden => kleinere Datenbasis
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
72
XML und Datenbanken
Benutzerdefiniertes Mapping 3/5
Kodierung der Mapping-Regeln; Beispiel nach Ronald Bourret:
<ClassMap>
<ElementType Name="hotel"/>
<ToClassTable>
<Table Name="Hotelpreise"/>
</ToClassTable>
<PropertyMap>
<Attribute Name="url"/>
<ToColumn>
<Column Name="Hotel_URL"/>
</ToColumn>
</PropertyMap>
...
</ClassMap>
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
Verbindung zwischen
XML-Elementen und
Datenbank-Relationen
(Tabellen)
Verbindung zwischen
XML-Elementen/
-Attributen und
Datenbank-Attributen
(Spalten)
73
XML und Datenbanken
Benutzerdefiniertes Mapping 4/5
Schemabeschreibung
Erforderlich für Generierung der Speicherstrukturen
Dokumentrekonstruktion
Nur möglich bei vollständiger Abbildung sowie
Protokollierung des Abbildungsprozesses
Updates

Als Datenbankupdates realisierbar

Updates, die Strukturen verändern,
bewirken Datenbankevolution!
Weitere Besonderheiten
Dr. Roman Schneider

Integration in bestehende DB möglich

XML-Instanzen und DB voneinander unabhängig
Modul Wissens- und Contentmanagement
74
XML und Datenbanken
Benutzerdefiniertes Mapping 5/5
IBM DB2 XML-Extender



Aufsplitten von XML-Dokumenten ins relationale Datenbanksystem DB2
über eine Mappingvorschrift (DAD - Data Access Definition) wird angegeben, wie die
Zuordnung von Elementen und Attributen einer XML-Instanz auf die Attribute der
Datenbank erfolgen soll.
Die Syntax der DAD-Dateien ist XML
Oracle RDBMS
•
•
•
objektrelationale Speicherung / Datentyp XMLType
Art der Speicherung wird durch ein annotiertes XML-Schema beschrieben, dieses
enthält eine Zuordnung von Datenbankinformationen zu den XML-Bestandteilen
dadurch benutzerdefinierte Speicherung möglich
Microsoft SQL-Server

anwenderdefiniertes Mapping durch annotiertes Schema

Annotationen bestimmen die Zuordnung von Elementen und Attributen zu
Datenbankrelationen und Datenbankattributen
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
75
XML und Datenbanken
Zusammenfassung: Speicherung von XML-Instanzen
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 dokumentzentrierte XML-Dokumente
Für semistrukturierte XML-Dokumente
Für datenzentrierte XML-Dokumente
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
76
XML und Datenbanken
Native Speicherung 1/2
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
Modellbasierte native
Speicherung
Also: kein Mapping des XML-Formats, sondern direktes Speichern des
XML-Dokuments. Abgrenzung von XML-enabled DBMS schwierig!
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
77
XML und Datenbanken
Native Speicherung 2/2
Produkte
Open Source, größtenteils plattformunabhängig:
 BaseX (Version 2013: 7.7.2)
 eXist (Version 2013: 2.1)
 MonetDB (Version 2013: 11.15)
 Sedna (Version 2013: 3.5)
zeen-dee-chay
 Apache Xindice (bis 2011: Version 1.2 )
Kommerziell:
 Tamino (Software AG)
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
78
XML und Datenbanken
Zusammenfassung

XML und Datenbanken
– Vielzahl von Verfahren und Techniken existieren
nebeneinander
– oft aus den Bereichen Datenbanken und Text/Dokumentverarbeitung
– generell: es gibt keine „beste Lösung“ für alle XMLDokumente, geeignetste Lösung ist abhängig von konkreten
Projekterfordernissen
Dr. Roman Schneider
Modul Wissens- und Contentmanagement
79
Herunterladen