Seminar XML und Datenbanken
Download
Report
Transcript Seminar XML und Datenbanken
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)