Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

Ähnliche Präsentationen


Präsentation zum Thema: "Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,"—  Präsentation transkript:

1 Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

2 © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der Dokumente unterscheidet sich stark Vielzahl von Methoden zur Speicherung existiert verschiedene Abfragemethoden mehrere Varianten zur Modellierung von XML- Dokumenten und deren Struktur

3 © Prof. T. Kudraß, HTWK Leipzig Daten oder Dokumente (1) Lesbare Dokumente (dokumentzentriert) – sind selten genau gleich strukturiert – Reihenfolge ist wichtig – sinntragende Daten auf allen Ebenen, viel Mixed Content – Volltextsuche ist unabdingbar, aber nicht ausreichend – Beispiele Zeitschriftenbeiträge, Bücher Gebrauchsanweisungen, Handbücher Präsentationen Verträge

4 © Prof. T. Kudraß, HTWK Leipzig Daten oder Dokumente (2) Datenzentrierte Dokumente – wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken) – Reihenfolge ist oft nicht relevant – sind einheitlich und meist einfach strukturiert – haben Datentypen – sinntragende Daten in Blattelementen oder Attributen – Mixed Content ist die Ausnahme (oder Dekoration) – Beispiele: Telefonbücher wissenschaftliche Daten Fahrpläne, Flugpläne Bestellungen

5 © Prof. T. Kudraß, HTWK Leipzig Daten und Dokumente Semistrukturierte Daten – Strukturiert: Felder – Unstrukturiert: binäre Daten wie Text, Video- und Audio-Streams, Bilder (in XML: External Entities, CDATA Sections) – unregelmäßiges Auftreten von Hyperlinks Mangel an Struktur – Mischform aus datenzentriert und dokumentenzentriert – Struktur implizit oder verborgen – Integration von Daten aus heterogenen Quellen (hierfür strukturiertes Modell oft zu restriktiv) – Bestimmte Anfragetypen ignorieren Schema bewußt (z.B. Zeichenkettensuche über gesamte Datenbank hinweg) Beispiel Krankenakten: – Daten: Geburtsdatum, Adresse, etc, – binäre Daten: Röntgenbilder – Dokumente: Diagnose, Anamnese etc.

6 © Prof. T. Kudraß, HTWK Leipzig Klassifikation: Beispiel Datenzentrierte Dokumente (strukturiert, regulär Beispiele: Produktkataloge, Bestellungen, Rechnungen) Dokumentzentrierte Dokumente (unstrukturiert, irregulär Beispiele: wissenschaftliche Artikel, Bücher, s, Webseiten) Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte Anteile Beispiele: Veröffentlichungen, Amazon) Meyer XML builds on the principles of two existing languages, HTML and SGML to create a simple mechanism.. The generalized markup concept.. Neil Bradley XML companion XML builds on the principles of two existing languages, HTML and..

7 © Prof. T. Kudraß, HTWK Leipzig Warum XML in Datenbanken XML als SGML-Nachfolger – entstehende Dokumente müssen gespeichert werden XML als Austauschformat – Originaldaten werden in XML transformiert Austauschdaten müssen aber ebenfalls gespeichert werden (z.B. beim Empfänger) Nur die Speicherung in Datenbanken garantiert – mächtige und effiziente Suchfunktionen – transaktionsorientierte Speicherung – Mehrbenutzerbetrieb Anwendungen – Dokumentenverwaltung – Website-Management – Information Publishing

8 © Prof. T. Kudraß, HTWK Leipzig XML-Datenbanksysteme (1) kann beliebige XML-Dokumente als solche speichern kann XML-spezifische Anfragesprache verarbeiten liefert XML als Ergebnis einer Anfrage – Dokumente und Extrakte effiziente struktur-und wertebasierte Anfragen unterstützt Daten- und Dokumentsicht (Mixed Content, Kommentare etc.) erlaubt eine schematische Beschreibung der Dokumente (Validierung möglich) nach [H. Schöning]

9 © Prof. T. Kudraß, HTWK Leipzig XML-Datenbanksysteme (2) DB-Eigenschaften (Transaktionen, Skalierbarkeit etc.) standardkonform Sammlung von XML-Dokumenten? Sammlung von XML-Dokumentfragmenten? Unabhängigkeit von der Speicherungsstruktur Indizierung? Validierung Sicherheit Erweiterbarkeit

10 © Prof. T. Kudraß, HTWK Leipzig Speichern und Liefern von Dokumenten Round-Trip-Eigenschaft – Ausgabe des gespeicherten Dokuments in unveränderter Form Der ganze Inhalt – Prolog – Kommentare – Processing Instructions unverändert – unveränderte Reihenfolge der Elemente – identisches Aussehen gegenüber Original

11 © Prof. T. Kudraß, HTWK Leipzig Anfragetypen für XML-Dokumente werteorientiert – Suche nach Attributwerten – Suche nach Elementen textorientiert – Information Retrieval Operationen: contains, similar strukturorientiert – vgl. XPATH Query Language linkorientiert metadatenorientiert kombinierte Anfragen nach [H. Schöning]

12 © Prof. T. Kudraß, HTWK Leipzig XPath Für die Verwendung in XSLT und XPointer entworfen Beim W3C normiert (W3C Recommendation) Navigation in einem Dokument – Location Path Achsen zur Navigation child, descendant, parent, ancestor, sibling, following, preceding, attribute, namespace, self, z.B. descendant::Name/child::Vorname Kurznotation ist verfügbar: //Name/Vorname

13 © Prof. T. Kudraß, HTWK Leipzig XPath (Forts.) Filter – [expression] – Beispiel: AND Author] Wildcard – Position [pos] – /book/author[1] kann auf Processing Instructions und Kommentare zugreifen Weitere Query Languages – XQL: basiert auf XPath, W3C-Proposal – Quilt: Basis für XQuery (zur Zeit diskutierter Sprachvorschlag) – IPSI-QL (erste Implementierung)

14 © Prof. T. Kudraß, HTWK Leipzig XML-Architektur physische Ebene Dokument- verarbeitung Dokumenten Entwurf von XML- Konzeptueller logische Ebene konzeptuelle XML Datenbanken [M. Klettke]

15 © Prof. T. Kudraß, HTWK Leipzig Bedeutung des Dokumentcharakters XML-Dokumente können die ganze Bandbreite von Daten bis zu Volltextdokumenten ein-nehmen – dokumentzentriert, semistrukturiert, datenzentriert dementsprechend unterschiedliche Speiche- rungsverfahren von der Dokumentenverarbeitung bis zur DB-Technologie weiterhin: Neuentwicklung von Methoden keine optimale Lösung für alle Anwendungen, Dokumentcharakter spielt entscheidende Rolle!

16 © Prof. T. Kudraß, HTWK Leipzig Architektur: physische Ebene datenzentriert semistrukturiert dok-zentriert relationale, objekt-relationale oder objekt-orientierte Datenbanken generische Speicherung von Graphen oder DOM-Informationen Dateien Volltextindex, Strukturindex Struktur auf Werteebene Struktur auf Schema- und Werteebene Struktur auf Schemaebene Ebene physische

17 © Prof. T. Kudraß, HTWK Leipzig XML in Datenbanken - Optionen zur Realisierung Relational – inhaltsorientiert zerlegt generisch definitorisch – strukturorientiert zerlegt – opaque Ansatz (Large Objects) Objektorientiert (Objektrelational) – benutzerdefinierte Objekte – vordefinierte Objekte, basierend auf Large Objects (CLOBS) native XML-DBMS – Oracle-Konkurrenzprodukte (z.B. Tamino) Klassifizierung nach dem Ziel-Datenmodell nach [H. Schöning]

18 © Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur Für dokument-zentrierte XML-Dokumente Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Speicherung von XML-Dokumenten [M. Klettke ]

19 © Prof. T. Kudraß, HTWK Leipzig Oracle XML Infrastruktur - Basis für verschiedene Speicherungsformen interMedia PL/SQL XML Packages Java Applikationen Java XML SQL Utility Java XML Parser JDBC Driver Jserver Runtime URIs XML TypeObject Types LOBs Tabellen

20 © Prof. T. Kudraß, HTWK Leipzig CLOB-Ansatz (Opaque Ansatz) Merkmale – XML-Dokument gespeichert als Large Object (LOB) – Dokument bleibt vollständig erhalten Speicherung Insert into tblXMLClob values (1,person.xml, Mary ); DocIdurlcontent 1person.xml Mary

21 © Prof. T. Kudraß, HTWK Leipzig Kombinierter Volltext- und XML-Index XML - Struktur kann in Anfragen ausgewertet werden Verweis Seestraße... Vorgänger Warnemünde Element Hotel Hübner Volltext-Index XML-Index Element ort Aus Richtung Rostock kommend fahren Sie auf der hotel adresse Stadtautobahn bis nach Warnemünde strasse Term Warnemünde Rostock anreise- beschreibung

22 © Prof. T. Kudraß, HTWK Leipzig Oracle interMedia Text Anfragen mit interMedia Text – Volltext-Retrieval (nur wortorientierte Suche) – Pfadangaben nur in Verbindung mit Wortsuche – keine Bereichsanfragen Beispiel in interMedia Text: SELECT DocId FROM tblXMLClob WHERE CONTAINS(content,(Mary WITHIN name) WITHIN person)>0 XML Volltext-Index – Autosectioner Index – XML Sectioner Index – WITHIN operator text_subquery WITHIN elementname sucht den vollständigen Textinhalt innerhalb der genannten Tags

23 © Prof. T. Kudraß, HTWK Leipzig Beispiel: Arbeit mit interMedia Text (1) create table ins_claim (id number (7) primary key, when date, doc clob); Speicherung von XML-Dokumenten einer Versicherungsgesellschaft Spalte doc ist indiziert mit auto_section_group : create index doc_ix on ins_claim(doc) indextype is ctxsys.context parameters (section group ctxsys.auto_section_group);

24 © Prof. T. Kudraß, HTWK Leipzig Beispiel: Arbeit mit interMedia Text (2) The insureds car broke through the guard rail and plummeted into a ravine. The cause was determined to be faulty braked Amazingly there were no casualties. Beispiel-Dokument in der Spalte doc : XML Section kann abgefragt werden: select id, when from ins_claim where contains (doc,brakes within cause) > 0; ID WHEN DOC OCT-00The insureds car...

25 © Prof. T. Kudraß, HTWK Leipzig Beispiel: Arbeit mit interMedia Text (3) ctx_ddl.create_section_group(my_section, XML_SECTION_GROUP); ctx_ddl.add_zone_section(my_section,cause,Cause);... create index my_doc_ix on ins_claim(doc) indextype is ctxsys.context parameters(section group my_section); Alternative zu vordefiniertem Auto- Sectioner: Definition eines eigenen Sectioners und Verwendung im Index Mögliche Abfrage ist Suche nach Attributwerten:... where contains (doc, Audi within Findet: section nametag name

26 © Prof. T. Kudraß, HTWK Leipzig XPath Anfragen mit PL/SQL Voraussetzung: XDK für PL/SQL auf Server vorhanden Übersetze CLOB in eine DOM-Darstellung XPath Anfrage Ermittle Document IDs aller CLOBs der XML-Tabelle Ausführen der XPath Anfrage auf dem DOM-Baum für jedes CLOB Objekt der Doc IDs Doc IDs mit Ergebnis XML- Dokument serverseitig DB Doc IDs

27 © Prof. T. Kudraß, HTWK Leipzig Oracle 9i XML Type createXML(xml IN varchar2 return XMLType createXML(xml IN clob) return XMLType existsNode(xpath IN varchar2) return number extract(xpath IN varchar2) return XMLType isFragment() return number // 1 oder 0 getClobVal() return clob getStringVal() return varchar2 getNumberVal() return number Funktionen des Oracle XML Type in Oracle 9i (Release 1) intern als CLOB realisiert

28 © Prof. T. Kudraß, HTWK Leipzig Nutzung des XML Type select d.document.extract(/Item/desc/text()).getStringVal() from xmldocs d; Extraktion von Daten aus XML-Dokumenten mittels XML Type Funktionen select * from xmldocs d where d.document.extract(/Item/Qty/text()).getNumberVal()=4; select * from xmldocs d where d.document.existsNode(//Discount)=1; Insert, Update und Delete auf Spalten vom Typ XMLType erlaubt Zugriff auf XMLType in der DB in Java möglich mittels Klasse: oracle.xdb.XMLType

29 © Prof. T. Kudraß, HTWK Leipzig Vergleich der Anfragemöglichkeiten liefert Dokument-IDs Wordsuche (Default) kein Existenztest für Elemente oder Attribute Pfadausdrücken beschränkt möglich durch WITHIN e.g.: (xml WITHIN title) WITHIN book erlaubt begrenzt Attribut- wertsuche, keine Verschach- telung von Attributsuchen numerische und Datumswerte werde nicht konvertiert keine Bereichsanfragen auf Attributwerten findet Dokument-Fragmente Substring-Suche Suche nach vorhandenen Elementen oder Attributen Pfadausdrücke struktur- orientierte Anfragen //Book/Title/[contains(..xml)] Suche nach Attributwerten und Element-Text kann kom- biniert werden berücksichtigt auch Dezimal- werte Bereichsanfragen möglich mittels Filter interMedia TextXPath

30 © Prof. T. Kudraß, HTWK Leipzig CLOB Ansatz Vorteile Bewahrung der Informationen des Dokuments Behandlung großer Dokumente – geeignet für dokumentenzentrische Dokumente mit wenig Struktur und textreichen Elementen Verschiedene XML Document APIs – interMedia Text: eingeschränkte Menge von XPath- Funktionalität – generiere ein DOM des Dokuments vor Anwendung von XPath-Queries

31 © Prof. T. Kudraß, HTWK Leipzig CLOB Ansatz Nachteile Beschränkte Ausdrucksfähigkeit von Text-Anfragen Performance vs. Genauigkeit der Anfrage-Ergebnisse – interMedia Text Queries auf CLOBs schneller als DOM-API – Beispiel-Dokument: 12.5 MB, Übersetzungszeit 3 Min., Ladezeit 5 Min. Restriktionen der Indexe – Maximale Länge der Tag-Namen fürs Indexieren (inkl. Namespace): 64 Bytes Probleme mit Markup – Character Entities: Dekodieren oder nicht? Stabilität – maximale Dokumentgröße: 50 MB – Speicherfehler bereits bei kleineren Dokumenten möglich

32 © Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur Für dokument-zentrierte XML-Dokumente Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Speicherung von XML-Dokumenten

33 © Prof. T. Kudraß, HTWK Leipzig Speicherung der Graphstruktur generische Speicherung der Struktur des XML-Dokumentes Element Müller ort plz ValueTypeDescendant-of string strasse Warnemünde Seestrasse hotel string Element adresse int18119 AttributeValueType url autor string Attributes: Elements:

34 © Prof. T. Kudraß, HTWK Leipzig Relationale Strukturorientierte Zerlegung Prinzip – Speicherung in generischen Tabellen (festes DB-Schema) – Zerlegung eines XML-Dokumentes in kleine Einheiten (Elemente) und Speichern in der Datenbank (Shredding) Vielzahl von Mapping-Methoden – Abspeichern der Kanten und Knoten des zum XML-Dokument gehörenden Strukturbaums – Speichern der Kanten in einer Tabelle Kantenverfahren (Florescu, Kossmann) (Normalisiertes) Universalverfahren Model-based Fragmentation Monet XML-Modell – Speichern der Kanten in mehreren Tabellen Attributverfahren

35 © Prof. T. Kudraß, HTWK Leipzig Speichermethode [Krumbein] XML-QL Datenmodell Peter Mary Fruitdale Ave.

36 © Prof. T. Kudraß, HTWK Leipzig Datenmodell tblDocs DocIdurl tblEdge SourceIdTargetIdLeafIdAttrIdDocIdEdgeNameTypeDepth tblLeafs LeafIdValue tblAttrs AttrIdValue 1 n 1 0/1 1

37 © Prof. T. Kudraß, HTWK Leipzig Import-Algorithmus Peter Hauptstrasse Leipzig Source Id Target Id Leaf Id Attr Id Doc Id EdgeNameTypeDepth 01 1baumref3 12 1personref2 2311alterattr0 2411nameleaf0 25 1adresseref1 5621strasseleaf0 5731PLZleaf0 5841Ortleaf0 DocIdurl 1Beispiel.xml LeafIdValue 1Peter 2Hauptstr asse Leipzig AttrIdValue 136

38 © Prof. T. Kudraß, HTWK Leipzig Anfragemethode Mit welcher Anfragesprache? – XML-Anfragesprache auf XML-Dokumente sinnvoll – Datenmodell ausgehend von XML-QL erstellt XML-QL Anfrage Parser Generierung des SQL Statement Objekt- Struktur SQL Statement Row Set Ausführung des SQL Statement Konstruktion des Ergebnisdokuments XML Dokument DB Datenbank versteht nur SQL – Transformation von XML-QL nach SQL notwendig – Erzeugen eines Ergebnis- Dokumentes aus Tupeln

39 © Prof. T. Kudraß, HTWK Leipzig Erzeugen eines SQL-Statements XML-QL Anfrage CONSTRUCT { WHERE $n $a CONSTRUCT $n $a } SQL-Statement SELECT DISTINCT B.Type AS n_Type, B.TargetId AS n_TargetId, B.Depth AS n_Depth, C.Value AS n_Value, D.Type AS a_Type, D.TargetId AS a_TargetId, D.Depth AS a_Depth, E.Value AS a_Value FROM tblEdge A,tblEdge B,tblLeafs C, tblEdge D,tblLeafs E WHERE (A.EdgeName = person) AND (A.TargetId = B.SourceId) AND (B.EdgeName = name) AND (B.LeafId = C.LeafId(+)) AND (A.TargetId = D.SourceId) AND (D.EdgeName = adresse) AND (D.LeafId = E.LeafId(+))

40 © Prof. T. Kudraß, HTWK Leipzig Konstruktion des Ergebnis- Dokumentes Ergebnistupel SELECT A.EdgeName, A.Type, Al.Value AS A_LeafVal, Aa.Value AS A_AttrVal FROM tblEdge A, tblLeafs Al, tblAttrs Aa WHERE A.SourceId=5 AND A.leafId=Al.leafId(+) AND A.attrId=Aa.attrId(+) n_Typen_Target Id n_Depthn_Valuea_Typea_Target Id a_Deptha_Value leaf40Peterref51 EdgeNameTypeA_LeafValA_Attr Val strasseleafHauptstrasse 4 PLZleaf04236 OrtleafLeipzig Teilbaum-Rekonstruktion

41 © Prof. T. Kudraß, HTWK Leipzig Anfrageergebnis XML-Ergebnis-Dokument Peter Hauptstrasse Leipzig

42 © Prof. T. Kudraß, HTWK Leipzig Strukturorientierte Zerlegung - Vorteile Herstellerunabhängigkeit – benutzt keine spezifischen DBMS-Eigenschaften Keine Schemadefinition durch Benutzer notwendig – hohe Flexibilität bei dynamisch erzeugten XML-Dokumenten – verwendete relationale Strukturen für Benutzer unbrauchbar (keine Anwendungssemantik) Stabilität Hohe Flexibilität der Anfragen – Lesen und Ändern einzelner Werte – volle SQL-Funktionalität nutzbar Gute Eignung für strukturorientierte Anfragen – Strukturen in Tabellen repräsentiert

43 © Prof. T. Kudraß, HTWK Leipzig Strukturorientierte Zerlegung - Nachteile Informationsverlust – Comments – Processing Instructions – Prolog – CDATA Sections – Entities Restriktionen des Abbildungsalgorithmus – nur ein Text (Inhalt) pro Element Text1 Text2 geht verloren – Element-Text als VARCHAR(n); n <= 4000

44 © Prof. T. Kudraß, HTWK Leipzig Strukturorientierte Zerlegung - Nachteile (2) Anfragesprache: nur SQL – keine XML-adäquaten Anfragekonstrukte – Anfrageformulierung schwierig – Änderungen auf SQL-Ebene können Struktur des Dokuments zerstören Schlechte Performance – lange Ladezeit Beispiel-Dokument: 3.3. MB, Zeilen, 13 Minuten – komplexe Joins – Sortierung in Anfragen (wegen Reihenfolgeerhaltung)

45 © Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur Für dokument-zentrierte XML-Dokumente Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Speicherung von XML-Dokumenten

46 © Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM (1) Informationen des Document Object Models werden in Datenbanken gespeichert Verwendung relationaler oder objekt-orientierter Datenbanken oder Entwicklung eigener Speicherungsstrukturen Comment ProcessingInstruction Document DocumentFragment DocumentType Element Entity EntityReference Notation Text CDataSection DOMImplementation NodeNodeListNamedNodeMap CharacterData Attr

47 © Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM (2) Methoden der Klasse Node: - getChildren() - getFirstChild() - getNextSibling() - getNodeType() - getParentNode() - getPreviousSibling() - hasChildren() Methoden der Klasse Element: - getAttributes() - getElementsByTagName(String) - getTagName() Methoden der Klasse Attribut: - getName() - getValue() NodeIDNodeTypeDocIDParentNode NodeIDElementIDAttributNameAttributValue PreviousSiblingNextSiblingFirstChild NodeIDTagName

48 © Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM: Bewertung Vorteile – benötigt keine Schemabeschreibung – XML-Anfragen möglich – standardisierte und allgemein akzeptierte Schnittstelle – vielfältige Einsatzmöglichkeiten: für daten- und dokumentzentrierte sowie semistrukturierte XML- Anwendungen Nachteile – Dokumentrekonstruktion möglich, aber aufwändig – wenig Produkte auf dem Markt infonyte (IPSI Darmstadt) eXcelon XIS (POET) ozone (SMB Leipzig)

49 © Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur Für dokument-zentrierte XML-Dokumente Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Speicherung von XML-Dokumenten

50 © Prof. T. Kudraß, HTWK Leipzig Strukturierte Speicherung in Datenbanken - Überblick inhaltsorientiert – Struktur des Dokuments bestimmt DB-Struktur generisch vs. definitorisch – generisch: vorgefundene Strukturen werden nach einem allgemeingültigen Konzept in XML-Strukturen umgesetzt gilt analog auch für Generierung einer DTD aus relationalem Schema – definitorisch: die Abbildung der existierenden Strukturen in XML-Strukturen (und umgekehrt) wird jeweils spezifiziert relational vs. objektrelational Beispiel (generisch & relational): – Oracle XML SQL Utility (XSU) für Queries und DML- Operationen

51 © Prof. T. Kudraß, HTWK Leipzig Abbildung der XML- Struktur auf relationale Datenbanken - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen Hotel Hübner Warnemünde Seestraße XML-Dokument HotelIDHotelnameAdressePreise H0001Hotel HübnerA0001P0001 AdresseIDOrtStrasse... A0001WarnemündeSeestraße PreiseIDEinzelzimmer... P Hotel: Preise: Adresse:

52 © Prof. T. Kudraß, HTWK Leipzig Oracle XML SQL Utility (XSU) Prinzip: – Generierung von XML-Dokumenten aus SQL-Abfragen (in String-Darstellung oder DOM) – Speichern von XML-Dokumenten durch Einfügen von Daten aus Dokumenten (generated XML) – Aktualisieren und Löschen von Daten aus XML-Dokumenten in der Datenbank Schnittstellen: – XSU Java API (Java-Klasse OracleXML ) – XSU PL/SQL API (Packages DBMS_XMLQuery und DBMS_XMLSave ) – Kommandozeilen-Interface java OracleXML [putXML | getXML] optionen

53 © Prof. T. Kudraß, HTWK Leipzig Beispiel Generierung von XML- Dokumenten mit XSU CREATE TABLE emp ( EMPNO NUMBER, ENAME VARCHAR2(20), JOB VARCHAR2(20), MGR NUMBER, HIREDATE DATE, SAL NUMBER, DEPTNO NUMBER ); Ausführen einer SQL-Abfrage Bsp.: SELECT * FROM emp WHERE EMPNO=7369;

54 © Prof. T. Kudraß, HTWK Leipzig Beispiel Generierung von XML- Dokumenten mit XSU (SELECT) Analyse der Metadaten der Ergebnismenge Konvertierung in folgende Form: 7369 Smith CLERK /17/1980 0:0:

55 © Prof. T. Kudraß, HTWK Leipzig Einfügen aus XML (INSERT) Analyse der Metadaten der Zieltabelle Generierung eines Statements der Form: INSERT INTO emp (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO) VALUES (?,?,?,?,?,?,?); Extrahieren der zu den Metadaten passenden Elemente aus dem XML-Dokument Ausführen des generierten SQL-Statements unter Verwendung der extrahierten Daten

56 © Prof. T. Kudraß, HTWK Leipzig Aktualisieren mit XML (UPDATE) Festlegung von Schlüsselattributen, die zur Identifizierung der zu aktualisierenden Datensätze dienen Festlegung der zu aktualisierenden Attribute; sonst erfolgt Aktualisierung aller Attribute Analyse der Metadaten der Zieltabelle Generierung eines Update-Statements Extrahieren der Daten aus XML-Dokument

57 © Prof. T. Kudraß, HTWK Leipzig Aktualisieren mit XML (UPDATE) Bsp.:EMPNO Schlüsselspalte SAL zu aktualisierende Spalte 7369 CLERK UPDATE emp SET SAL=800 WHERE EMPNO=7369;

58 © Prof. T. Kudraß, HTWK Leipzig Löschen mit XML (DELETE) Festlegung von Schlüsselattributen, die zur Identifizierung der zu löschenden Datensätze dienen Analyse der Metadaten der Zieltabelle Generierung eines DELETE-Statements Extrahieren der Daten aus XML-Dokument Ausführung des generierten SQL-Statements unter Verwendung der extrahierten Daten

59 © Prof. T. Kudraß, HTWK Leipzig Abbildung der XML- Struktur auf objekt-relationale Datenbanken - DTD ist erforderlich (Datentypen) - Anfragen verwenden SQL - Funktionalität - Datenbanken mit vielen Nullwerten HotelIDHotelnameAdressePreise OrtStrasse...einzelzimmer... H0001Hotel HübnerWarnemündeSeestraße198 Hotel: XML-Dokument Hotel Hübner Warnemünde Seestraße

60 © Prof. T. Kudraß, HTWK Leipzig Objektrelationaler Ansatz Motivation Einbeziehung mehrfach geschachtelter XML- Dokumente Schema des Dokuments vorhanden und bekannt Umgang mit komplexen Objekten – XML-Dokument = komplexes Objekt – Vermeiden Dekomposition (vgl. relationaler Ansatz) Objektrelationale Technologie sehr gut geeignet für Darstellung komplexer Objekte – Objekt-Sichten (Object Views) – benutzerdefinierte Typen (Object Types)

61 © Prof. T. Kudraß, HTWK Leipzig Behandlung von Nested XML - Object View Ansatz (1) Speicherung und Wiedergewinnung von mehrfach geschachtelten XML-Dokumenten in Oracle mit Hilfe von Object Types und Object Views Schritte – Definiere die passenden Tabellen und Object Types – Baue eine Object View, die mit Dokumentstruktur übereinstimmt – Nutze Object Views für Insert- und Retrieval- Operationen in XSU

62 © Prof. T. Kudraß, HTWK Leipzig Behandlung von Nested XML (2) Fun with XML 13 Paul Theroux Fun with XML 13 Paul Theroux... XML Source Dokument

63 © Prof. T. Kudraß, HTWK Leipzig Behandlung von Nested XML (3) Object Types first last Person_T isbn title price Book_T first_name last_name Author_Table isbn title price Book_Table Schema der Ziel-Datenbank: Tabellen 1*

64 © Prof. T. Kudraß, HTWK Leipzig Behandlung von Nested XML (4) CREATE VIEW book as SELECT Book_T (b.ISBN, b.Title, b.Price, Person_T(a.First_Name, a.Last_Name) ) as Book FROM book_table b, author_table a WHERE b.author_id = a.id; CREATE VIEW book as SELECT Book_T (b.ISBN, b.Title, b.Price, Person_T(a.First_Name, a.Last_Name) ) as Book FROM book_table b, author_table a WHERE b.author_id = a.id; Object View nutzbar für Retrieval- und Insert-Operationen Anlegen einer View auf der Basis von Object Types: XSU kann SQL Cursor Operator nutzen in SQL-Statements, um beliebig geschachtelte XML-Dokumente zu erzeugen: SELECT id,first_name,last_name CURSOR (SELECT isbn,title,price FROM book_table b WHERE a.id = b.author_id) as book FROM author_table a; SELECT id,first_name,last_name CURSOR (SELECT isbn,title,price FROM book_table b WHERE a.id = b.author_id) as book FROM author_table a;

65 © Prof. T. Kudraß, HTWK Leipzig Behandlung von Nested XML (5) Ergebnis-Dokument 2000 Paul Theroux Fun with XML

66 © Prof. T. Kudraß, HTWK Leipzig Objektrelationale Speicherung - Überblick benutzerdefinierte Objekte – Transformation DTD Relationenschema – Transformation DTD objektrelationales Schema – Vorstellung eines selbstentwickelten Werkzeugs vordefinierte Objekte – CLOB-basiert (vgl. dort) – XML Object Type (seit Oracle 9i Release 2)

67 © Prof. T. Kudraß, HTWK Leipzig Verarbeitung von DTD and XML XML V2 ParserDTD Parser XML DokumentDTD Schema Definition Überprüfung, ob wohlgeformt / valid XML2 Oracle XML DOM BaumDTD DOM Baum DBMS Oracle JDBC / ODBC Syntax Check

68 © Prof. T. Kudraß, HTWK Leipzig

69 © Prof. T. Kudraß, HTWK Leipzig Transformation von DTD in Relationenschema [Bourret] DTD Klassen Tabellen CLASS A { CREATE TABLE A ( STRING b; a_pk INTEGER NOT NULL, C c;} b VARCHAR2(30) NOT NULL); CLASS C { CREATE TABLE C ( STRING d;} c_pk INTEGER NOT NULL, a_fk INTEGER NOT NULL, d VARCHAR2(10) NOT NULL); Grundidee: – Erzeugung von Klassen aus DTD – Abbildung der Klassen auf Tabellen entsprechend Regeln Veränderung des Algorithmus von Bourret – Keine Klassenbildung (Klassen und Tabellen verschmolzen) – Nutzung der Objekte des DTD-Baumes

70 © Prof. T. Kudraß, HTWK Leipzig Jedes komplexe Element Tabelle Jedes mengenwertige Element Tabelle Primärschlüssel in jeder Tabelle Schritt 1 Andere Elemente & Attribute Spalten Schritt 2 Abbildungsregeln DTD Relationenschema [Bourret] Beziehungen zwischen Elementen Fremdschlüssel Schritt 3

71 © Prof. T. Kudraß, HTWK Leipzig CREATE TABLE TabUniversity ( IDUniversity INTEGER NOT NULL, attrStudyCourse VARCHAR(4000) NOT NULL, PRIMARY KEY (IDUniversity)); CREATE TABLE TabStudent ( IDStudent INTEGER NOT NULL, IDUniversity INTEGER NOT NULL, attrStudNr VARCHAR(4000) NOT NULL, attrLName VARCHAR(4000) NOT NULL, attrFName VARCHAR(4000) NOT NULL, PRIMARY KEY (IDStudent), CONSTRAINT conStudent FOREIGN KEY (IDUniversity) REFERENCES TabUniversity (IDUniversity));... Beispiel-Transformation

72 © Prof. T. Kudraß, HTWK Leipzig Tool zur objektrelationalen Speicherung von XML Grundidee: – Darstellung eines XML-Dokuments durch Kombination von benutzerdefinierten Typen – Generiere ein objekt-relationales Schema aus der DTD – Generiere Programm zum Laden des Dokuments in Oracle-DB Abbildungsregeln: – Attribute und einfache Elemente – Komplexe Elemente – Mengenwertige Elemente – Komplexe mengenwertige Elemente – Constraints

73 © Prof. T. Kudraß, HTWK Leipzig XML Attribute & Einfache Elemente Elemente vom Typ #PCDATA und XML Attribute Attribut eines Objekttyps Wertebereich einfacher Elemente: – Keine Typ-Information in der DTD numerisch vs. alphanumerisch? Länge? – Beschränkungen des DBMS (z.B. VARCHAR 4000 Zeichen) Abbildung eines XML-Attributes eines einfachen Elements Definition eines Objekttyps für Attribut und Element

74 © Prof. T. Kudraß, HTWK Leipzig CREATE TABLE TabProfessor OF Type_Professor; CREATE TYPE Type_Professor AS OBJECT ( attr PAddressVARCHAR(4000), attrPNameVARCHAR(4000), attrSubject VARCHAR(4000), attrDeptType_Dept); CREATE TYPE Type_Dept AS OBJECT ( attrDept VARCHAR(4000), attrDAddressVARCHAR(4000)); XML Attribute & Einfache Elemente

75 © Prof. T. Kudraß, HTWK Leipzig Komplexe Elemente CREATE TABLE TabUniversity ( attrStudyCourse VARCHAR(4000), attrStudent Type_Student ); CREATE TYPE Type_Student AS OBJECT ( attrStudNrVARCHAR(4000), attrLNameVARCHAR(4000), attrFNameVARCHAR(4000), attrCourse Type_Course ); CREATE TYPE Type_Course AS OBJECT ( attrNameVARCHAR(4000), attrProfessorType_Professor, attrCreditPts VARCHAR(4000)); CREATE TYPE Type_Professor AS OBJECT ( attrPNameVARCHAR(4000), attrSubject VARCHAR(4000), attrDept VARCHAR(4000)); INSERT INTO TabUniversity VALUES ( Computer Science', Type_Student('23374','Conrad','Matthias', Type_Course(Databases II, Type_Professor(Kudrass, Database Systems', Computer Science), '4'))); SELECT u.attrStudent.attrLname FROM TabUniversity u WHERE u.attrStudent.attrCourse.attrProfessor.attrPName = Kudrass'; Verschachtelung durch zusammen- gesetzte Object Types

76 © Prof. T. Kudraß, HTWK Leipzig Mengenwertige Elemente Mehrfaches Auftreten eines Elements (DTD): + oder * Beschränkungen des DBMS (Oracle 8i) – Kollektionstypen nur anwendbar auf textwertige Subelemente, z.B. ARRAY OF VARCHAR – Was ist mit komplexen Subelementen? Subelemente können wiederum mengenwertig sein Lösung – Oracle ab Release 9i verwenden – Beziehungen über Objektreferenzen realisieren (aufwendig!)

77 © Prof. T. Kudraß, HTWK Leipzig Mengenwertige Elemente CREATE TYPE TypeVA_Student AS VARRAY(100) OF Type_Student; CREATE TYPE TypeVA_Course AS VARRAY(100) OF Type_Course; CREATE TYPE TypeVA_Professor AS VARRAY(100) OF Type_Professor; CREATE TYPE TypeVA_Subject AS VARRAY(100) OF VARCHAR(4000); CREATE TABLE TabUniversity ( attrStudyCourse VARCHAR(4000), attrStudent TypeVA_Student ); CREATE TYPE Type_Student AS OBJECT ( attrStudNrVARCHAR(4000), attrLNameVARCHAR(4000), attrFNameVARCHAR(4000), attrCourse TypeVA_Course ); CREATE TYPE Type_Course AS OBJECT ( attrNameVARCHAR(4000), attrProfessor TypeVA_Professor, attrCreditPts VARCHAR(4000)); CREATE TYPE Type_Professor AS OBJECT ( attrPNameVARCHAR(4000), attrSubject TypeVA_Subject, attrDept VARCHAR(4000)); University Student Course Professor Subject

78 © Prof. T. Kudraß, HTWK Leipzig Einfügen der Dokument-Daten (Beispiel) INSERT INTO TabUniversity VALUES ( Computer Science', TypeVA_Student ( Type_Student('23374','Conrad','Matthias', TypeVA_Course ( Type_Course(Databases II, TypeVA_Professor ( Type_Professor(Kudrass, TypeVA_Subject ( Database Systems,Operating Systems), Computer Science)),4), Type_Course(CAD Intro, TypeVA_Professor ( Type_Professor(Jaeger, TypeVA_Subject ( CAD,CAE), Computer Science)),4),...)), Type_Student(00011',Meier',Ralf', … ) … )...);

79 © Prof. T. Kudraß, HTWK Leipzig Oracle 9i Release 2 Objektrelationale Speicherung (1) XMLType – 2 Speicherungs-Optionen: CLOB vs. objektrelational – Informationserhaltung entsprechend DOM Unterstützung von XML Schema XPATH kann als Ausdruck in DML Statements genutzt werden Kombination von SQL Anfragen mit XPATH möglich Neue XML Operatoren – XMLTABLE (Umwandlung einer Knotenliste in Tabelle) – XMLELEMENT (Erzeugen von XML-Elementen on-the-fly) XSL Transformationen für XMLType

80 © Prof. T. Kudraß, HTWK Leipzig Oracle 9i Release 2 Objektrelationale Speicherung (2) Performance-Verbesserungen – Lazy XML Load – Schema Caching – hierarchischer Index Foldering – Abbildung von Verzeichnisstrukturen in DB-Strukturen Access Control auf der Ebene von XML-Objekten WebDAV und FTP Zugriff Suche in Metadaten, Strukturen und Inhalten mittels SQL Neue APIs – Java Bean Interface – Servlet API zum Zugriff auf XML-Daten

81 © Prof. T. Kudraß, HTWK Leipzig Oracle 9i Release 2 Beispiele SELECT xml_order FROM orders WHERE EXISTSNODE (xml_order,//ship_to/state) > 0; SELECT xml_order FROM orders WHERE EXISTSNODE (xml_order,//ship_to/state) > 0; SELECT xml_order FROM orders WHERE EXTRACTNODE(xml_order, //ship_to/state).getClobVal() = CA; SELECT xml_order FROM orders WHERE EXTRACTNODE(xml_order, //ship_to/state).getClobVal() = CA; SELECT xml_order FROM orders WHERE EXTRACTNODE(xml_order, //ship_to/state) = CA; SELECT xml_order FROM orders WHERE EXTRACTNODE(xml_order, //ship_to/state) = CA; Speicherungsmodus in Anfrage nicht sichtbar Somit auch erlaubt:

82 © Prof. T. Kudraß, HTWK Leipzig Strukturierte Speicherung Bewertung Dokumentstruktur ist starr (durch relationales Schema gegeben) – somit keine beliebigen (nicht vordefinierten) XML-Dokumente speicherbar Beschränkungen in der Abbildung – Rekursion – mixed content Informationsverlust (Round-Trip-Problem) – Kommentare, Processing Instructions – Reihenfolge der Elemente – Element vs. Attribute (wie war es im Original?) Anfragesprache ist immer SQL (erfordert Übersetzung) – strukturorientierte Anfragen schwierig

83 © Prof. T. Kudraß, HTWK Leipzig Fazit Vielzahl von Speicherungsmethoden verfügbar – jeweils Vor- und Nachteile – Mischformen innerhalb einzelner Dokumente denkbar Unterschiedliche Anforderungen (je nach Dokument- typ) – Skalierbarkeit – Performance – Anfragemöglichkeiten Semantik (Information aus Dokumenten bewahren!) Auswahl der günstigsten Methode? Werkzeugunterstützung für XML-Datenbankentwurf?

84 © Prof. T. Kudraß, HTWK Leipzig Quellen Steve Muench: Building Oracle XML Applications, OReilly, Oracle Technology Network: Harald Schöning: XML und Datenbanken, BTW- Tutorium, März Meike Klettke: XML-Speicherungsmethoden, eine Klassifikation, Ron Bourret: XML and Databases, XMLAndDatabases.htm


Herunterladen ppt "Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,"

Ähnliche Präsentationen


Google-Anzeigen