Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller...
-
Upload
mareike-nemetz -
Category
Documents
-
view
108 -
download
2
Transcript of Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller...
Modellbasierte AbbildungXML – SQL
Vortrag von Marcus WenzelDozenten: 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:
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:
Modellbasierte AbbildungXML – SQL
• Generische Speicherung eines
binären Modells des XML-Dokumentes (z.B. DOM)
• direkte Abbildung der Graphenstruktur
Idee modellbasierter Abbildung:
Modellbasierte AbbildungXML – SQL
(1) einfache Speicherung der
Graphenstruktur
(2) Speicherung der Graphenstruktur unter Verwendung des Documtent Object Models (DOM)
Unterschieden in :
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
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
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
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
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
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
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
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
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
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
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
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
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
Modellbasierte AbbildungXML – SQL
Die Klassenhierarchie des DOM :(2) Speicherung unter Verwendung des DOM
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
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)
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()
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 -
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
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)
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)
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
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
Modellbasierte AbbildungXML – SQL
Fragen ???