Modellbasierte Abbildung XML – SQL Vortrag von Marcus Wenzel Dozenten: Knut Stolze & Peter Müller Seminar XML und Datenbanken
Modellbasierte Abbildung XML – 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 Abbildung XML – 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 Abbildung XML – SQL Generische Speicherung eines binären Modells des XML-Dokumentes (z.B. DOM) direkte Abbildung der Graphenstruktur Idee modellbasierter Abbildung:
Modellbasierte Abbildung XML – SQL (1) einfache Speicherung der Graphenstruktur (2) Speicherung der Graphenstruktur unter Verwendung des Documtent Object Models (DOM) Unterschieden in :
Modellbasierte Abbildung XML – 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 Abbildung XML – SQL <seminar id=dbs001 semester=SS04 =Stolze =Müller Herberge der FSU Friedrichroda XML und Datenbanken Siegmundsburg Dorfstraße 4 2 Tage 12 Beispiel: XML (1) einfache Speicherung der Graphenstruktur
Modellbasierte Abbildung XML – SQL <!ATTLIST seminar id ID #REQUIRED dozent1 CDATA #IMPLIED> dozent2 CDATA #IMPLIED> Beispiel: DTD (1) einfache Speicherung der Graphenstruktur
Modellbasierte Abbildung XML – SQL seminar thema termin adresse dauer teilnehmerzahl Beispiel – Graph: plzortstrassenummer Siegmundsburg XML & Daten banken Dorfstraße4 2 Tage
Modellbasierte Abbildung XML – SQL Beispiel-Relation (Elemente): DocIDElementnameIDVorgängerKind-NrWert dbs001seminar1001 dbs001thema XML & Datenbanken dbs001termin dbs001adresse dbs001plz dbs001ort Siegmundsburg dbs001strasse Dorfstraße dbs001nummer dbs001dauer Tage dbs001teilnehmerzahl
Modellbasierte Abbildung XML – SQL Beispiel-Relation (Attribute): Attribute DocIDAttributnameElementIDWert dbs001Semester1001SS04 dbs001dozent11001Stolze dbs001dozent21001Müller dbs001id1001db001
Modellbasierte Abbildung XML – SQL Möglichkeit der Trennung der einzelnen Datentypen auf eigene Relationen Verweis-IDWert str001XML & Datenbanken str002Siegmundsburg str003Dorfstraße str0042 Tage Beispiel-Relation: Stringwerte Verweis-IDWert i i0024 i00312 Integerwerte Verweis-IDWert d Datum
Modellbasierte Abbildung XML – 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 Abbildung XML – 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 Abbildung XML – 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 XquerySQL DB
Modellbasierte Abbildung XML – SQL FOR $i IN //seminar WHERE $i/dozent1=Stolze RETURN $i/thema $i/dozent1 Beispiel: Xquery-Anfrage (1) einfache Speicherung der Graphenstruktur
Modellbasierte Abbildung XML – SQL SELECT a.wert,b.wert FROM Elemente a, Attribute b WHERE 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 Abbildung XML – 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 Abbildung XML – SQL Die Klassenhierarchie des DOM : (2) Speicherung unter Verwendung des DOM
Modellbasierte Abbildung XML – 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 Abbildung XML – SQL Die Klasse Node (2) Speicherung unter Verwendung des DOM getNextSibling() getNodeType() getParentNode() getPreviousSibling() hasChildren() insertBefore(´Node,Node) removeChild(Node) replaceChild(Node,Node)
Modellbasierte Abbildung XML – 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 Abbildung XML – SQL Die Relation Node: (2) Speicherung unter Verwendung des DOM node_idnode_typedoc_idparentp_siblingn_sibling 001elementdbs elementdbs elementdbs elementdbs elementdbs elementdbs elementdbs elementdbs elementdbs elementdbs attributdbs attributdbs attributdbs attributdbs
Modellbasierte Abbildung XML – SQL node_idtag_nametext 001seminar 002themaXML & Datenbanken 003termin adresse 005plz ortFriedrichroda 007strasseDorfstraße 008nummer4 009dauer2 Tage 010teilnehmerzahl12 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_idattr_nameattr_valuespecified 011semesterSS04true 012dozent1Stolzetrue 013dozent2Müllertrue 014iddbs001true
Modellbasierte Abbildung XML – 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 Abbildung XML – 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 Abbildung XML – 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 Abbildung XML – 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 Abbildung XML – SQL Fragen ???