29
Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Mül Seminar XML und Datenbanken

Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Embed Size (px)

Citation preview

Page 1: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Vortrag von Marcus WenzelDozenten: Knut Stolze & Peter Müller

Seminar XML und Datenbanken

Page 2: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

(0) Einführung• Idee modellbasierter Abbildung • Aufteilung in 2 Abbildungsarten• Idee der datenbankseitigen Repräsentation

(1) Einfache Graphenabbildung• Ein Beispiel • Konzept der Speicherung • Anfragen• Beispiel-Anfrage• Rekonstruktion

Inhalt:

Page 3: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

(2) Speicherung unter Verwendung des DOM• Klassenhierarchie des DOM• Die Klasse Node• Die Klassen Elemente & Attr.• Die Relation Node• Die Relationen Elemente & Attr.• Anfragen• Eigenschaften

Inhalt:

Page 4: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• Generische Speicherung eines

binären Modells des XML-Dokumentes (z.B. DOM)

• direkte Abbildung der Graphenstruktur

Idee modellbasierter Abbildung:

Page 5: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

(1) einfache Speicherung der

Graphenstruktur

(2) Speicherung der Graphenstruktur unter Verwendung des Documtent Object Models (DOM)

Unterschieden in :

Page 6: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• Relation zur Speicherung der Elemente

DocID Elementname ID Vorgänger Kind-Nr Wert

Idee der datenbankseitigen Repräsentation:

DocID Attributname ElementID Wert

• Relation zur Speicherung der Attribute

(1) einfache Speicherung der Graphenstruktur

Page 7: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

<seminar id=„dbs001“ semester=„SS04“

<dozent1>=„Stolze“ <dozent2>=„Müller“

<veranstaltungsort> Herberge der FSU Friedrichroda</veranstaltungsort> <thema>“XML und Datenbanken“</thema> <termin>29.05.2004</termin> <adresse>

<plz>98744</plz><ort>Siegmundsburg</ort><straße>Dorfstraße</straße><nummer>4</nummer>

</adresse> <dauer>“2 Tage“</dauer> <teilnehmerzahl>12</teilnehmerzahl>

</seminar>

Beispiel: XML

(1) einfache Speicherung der Graphenstruktur

Page 8: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

<!ELEMENT seminar (veranstaltungsort,thema,termin,adresse,dauer,teilnehmerzahl)>

<!ATTLIST seminar id ID #REQUIRED dozent1 CDATA #IMPLIED> dozent2 CDATA #IMPLIED>

<!ELEMENT veranstaltungsort (#PCDATA)><!ELEMENT thema (#PCDATA)> <!ELEMENT adresse(plz,ort,strasse,nummer)> <!ELEMENT plz (#PCDATA)> <!ELEMENT ort (#PCDATA)> <!ELEMENT strasse (#PCDATA)> <!ELEMENT nummer (#PCDATA)> <!ELEMENT dauer (#PCDATA)> <!ELEMENT teilnehmerzahl (#PCDATA)>

Beispiel: DTD

(1) einfache Speicherung der Graphenstruktur

Page 9: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

seminar

thema termin adresse dauer teilnehmerzahl

Beispiel – Graph:

plz ort strasse nummer

98744 Siegmundsburg

XML&

Datenbanken Dorfstraße 4

2 Tage 1229.05.2004

Page 10: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Beispiel-Relation (Elemente):DocID Elementname ID Vorgänger Kind-Nr Wert

dbs001 seminar 1001      

dbs001 thema 1002 1001 1 XML & Datenbanken

dbs001 termin 1003 1001 2 29.05.2004

dbs001 adresse 1004 1001 3  

dbs001 plz 1005 1004 1 98744

dbs001 ort 1006 1004 2 Siegmundsburg

dbs001 strasse 1007 1004 3 Dorfstraße

dbs001 nummer 1008 1004 4 4

dbs001 dauer 1009 1001 4 2 Tage

dbs001 teilnehmerzahl 1010 1001 5 12

Page 11: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Beispiel-Relation (Attribute):Attribute

DocID Attributname ElementID Wert

dbs001 Semester 1001 SS04

dbs001 dozent1 1001 Stolze

dbs001 dozent2 1001 Müller

dbs001 id 1001 db001

Page 12: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• Möglichkeit der Trennung der einzelnen Datentypen auf eigene Relationen

Verweis-ID Wert

str001 XML & Datenbanken

str002 Siegmundsburg

str003 Dorfstraße

str004 2 Tage

Beispiel-Relation:

Stringwerte

Verweis-ID Wert

i001 98744

i002 4

i003 12

Integerwerte

Verweis-ID Wert

d001 29.05.2004

Datum

Page 13: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• Darstellung der Elementhierarchie in der Relation Elemente durch die Attribute ID, Vorgänger und Kind-Nr.

• in der Relation Attribute werden ElementID (wichtig!), Attributname und Wert gespeichert.

• durch die beiden Relationen werden die grundlegenden Informationen des XML-Dokuments gespeichert.

• Entities müssen vor Speicherung aufgelöst werden, um Anfragen an XML-Dokumente effizient zu halten.

• Werte von Attributen oder Elementen können in separaten Relationen abgebildet werden:

– für jeden mgl. Datentyp eigene Relation– in den Mutterrelation erfolgt Verweis auf ID

• für Processing Instructions und Kommentare ebenfalls eigene Relationen.

Konzept der Speicherung

(1) einfache Speicherung der Graphenstruktur

Page 14: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• einfache Anfragen ( suche nach tagwert) effizient umsetzbar

• Anfragen über mehrere Elemente erfordern rekursive Verbundanweisung auf Elemente-Relation (sehr aufwändig)

• Elemente-Relation wächst mit der Größe des XML-Dokuments oder der Anzahl der gespeicherten XML-Dokumente

(jedes Element ein Tupel in Relation)

Anfragen(1):

(1) einfache Speicherung der Graphenstruktur

Page 15: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• XQuery/XPath-Anfragen möglich

• Anfragen auch als angepaßte SQL-Anfragen realisierbar(siehe Beispiel angepaßte SQL-Anfrage)

• Anfragen jedoch sehr ineffizient, wegen Verbund-Operationenüber Relation zur Speicherung der Elemente

Anfragen(2):

(1) einfache Speicherung der Graphenstruktur

Xquery SQL DB

Page 16: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

FOR $i IN //seminarWHERE $i/dozent1=„Stolze“RETURN<seminar><thema>$i/thema</thema><dozent1>$i/dozent1</dozent1></seminar>

Beispiel: Xquery-Anfrage

(1) einfache Speicherung der Graphenstruktur

Page 17: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

SELECT a.wert,b.wertFROM Elemente a, Attribute bWHERE a.elementname = ‚thema‘AND b.attributname = ‚dozent1‘AND b.wert = ‚Stolze‘AND a.DocID = b.DocID

• Welche anderen Seminare betreut/e Knut Stolze ?• Anfrage schon problematisch weil zwischen Elemente und Attribute-Relation gejoint

werden muß.

Beispiel: angepasste SQL-Anfrage

(1) einfache Speicherung der Graphenstruktur

Page 18: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

• weil Graphenstruktur vollständig abgebildet wird, prinzipiell möglich.• jedoch wegen vieler (notwendiger) Joins sehr zeitaufwändig

Rekonstruktion:

(1) einfache Speicherung der Graphenstruktur

Page 19: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Die Klassenhierarchie des DOM :(2) Speicherung unter Verwendung des DOM

Page 20: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Die Klassenhierarchie des DOM:• in relationalen und objektrelationalen Datenbanken wird

Node durch die in der nächsten Folie dargestellte Relation abgebildet

• Speicherung des DOM nicht direkt über Methoden, sondern durch SQL-

Anweisungen (SELECT oder UPDATE u.s.w) an die Datenbank

(2) Speicherung unter Verwendung des DOM

Page 21: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Die Klasse Node

(2) Speicherung unter Verwendung des DOM

getNextSibling()

getNodeType()

getParentNode()

getPreviousSibling()

hasChildren()

insertBefore(´Node,Node)

removeChild(Node)

replaceChild(Node,Node)

Page 22: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Die Klassen Element & Attr

(2) Speicherung unter Verwendung des DOM

getAttrbutes()

getElementsByTagName(String)

getTagName()

setAttributes(Attribute)

setAttributes(AttributeList)

setTagNAme(String)

getName()

getSpecified()

getValue()

setName(String)

setSpecified(NodeList)

setValue(NodeList)

toString()

Page 23: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Die Relation Node:

(2) Speicherung unter Verwendung des DOM

node_id node_type doc_id parent p_sibling n_sibling

001 element dbs001 - - -

002 element dbs001 001 - 003

003 element dbs001 001 002 004

004 element dbs001 001 003 009

005 element dbs001 004 - 006

006 element dbs001 004 005 007

007 element dbs001 004 006 008

008 element dbs001 004 007 009

009 element dbs001 001 008 010

010 element dbs001 001 009 -

011 attribut dbs001 001 - 012

012 attribut dbs001 001 011 013

013 attribut dbs001 001 012 014

014 attribut dbs001 001 013 -

Page 24: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

node_id tag_name text

001 seminar  

002 thema XML & Datenbanken

003 termin 29.05.2004

004 adresse  

005 plz 98744

006 ort Friedrichroda

007 strasse Dorfstraße

008 nummer 4

009 dauer 2 Tage

010 teilnehmerzahl 12

• jeder Methode der einzelnen Klassen wird ein Datenbankattribut zugeordnet

• Elemente und Attr sind von Node abgeleitet

• Elemente wieder nach Datentypen in Einzelrelationen zerlegbar

Die Relationen Elemente & Attr:

(2) Speicherung unter Verwendung des DOM

Elemente

Attr

node_id attr_name attr_value specified

011 semester SS04 true

012 dozent1 Stolze true

013 dozent2 Müller true

014 id dbs001 true

Page 25: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Anfragen:

(2) Speicherung unter Verwendung des DOM

• XPath/XQuery-Anfragen möglich

• durch Query-Rewriting auf Datenbankanfragen (unter Berücksichtigung des intern gewählten Speichermodells) SQL-Anfragen möglich

• Ergebnisse werden zurücktransformiert• Datenbank-Anfragesprachen einsetzbar

• im relationalen Datenbank-Modell sind Informationen nicht über die Methoden abfragbar (Methoden in SQL-Anweisungen repräsentiert)

Page 26: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Eigenschaften(1):

(2) Speicherung unter Verwendung des DOM

• unter Verwendung von DOM festes Datenbank-Schema

• alle Informationen über die Dokumente werden als Werte der DB gespeichert

• Speicherung unabhängig von Schemabeschreibung

• XML Dokumente ohne DTD und XML Schema speicherbar (ideal für Dokumente mit häufig wechselnder Struktur)

Page 27: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Eigenschaften(2):

(2) Speicherung unter Verwendung des DOM

• DOM von W3C festgeschrieben

• über DOM auch UPDATES auf Dokumenten effizient durchführbar, weil keine vollständigen XML-Dokumente geändert werden müssen

• DOM Information wird vollständig & permanent gespeichert

• XML-Dokumente sind rekonstruierbar

Page 28: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Eigenschaften(3):

(2) Speicherung unter Verwendung des DOM

• nicht verwendbar bei komplizierten Anfragen

• Beantworten von Anfragen ist umständlich (langsam)

• Rekonstruktion sehr aufwändig

Page 29: Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken

Modellbasierte AbbildungXML – SQL

Fragen ???