Verwaltung von XMLDokumenten Prof T Kudra HTWK Leipzig

  • Slides: 33
Download presentation
Verwaltung von XML-Dokumenten

Verwaltung von XML-Dokumenten

© Prof. T. Kudraß, HTWK Leipzig Motivation l l l 2 XML-Dokumente können für

© Prof. T. Kudraß, HTWK Leipzig Motivation l l l 2 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 XMLDokumenten und deren Struktur 2

© Prof. T. Kudraß, HTWK Leipzig Speichern & Liefern von Dokumenten l Round-Trip-Problem –

© Prof. T. Kudraß, HTWK Leipzig Speichern & Liefern von Dokumenten l Round-Trip-Problem – l Der ganze Inhalt – – – l 3 Gespeicherte Dokumente werden “unverändert“ geliefert Prolog Kommentare Processing Instructions Was heißt “unverändert“ 3

© Prof. T. Kudraß, HTWK Leipzig XML-Architektur Dokumentverarbeitung XML Konzeptueller Entwurf von XMLDokumenten <.

© Prof. T. Kudraß, HTWK Leipzig XML-Architektur Dokumentverarbeitung XML Konzeptueller Entwurf von XMLDokumenten <. . > </. . > Datenbanken konzeptuelle Ebene 4 Klettke / Meyer “XML-Datenbanken“ logische Ebene physische Ebene 4

© Prof. T. Kudraß, HTWK Leipzig Logische Ebene <. . > </. . >

© Prof. T. Kudraß, HTWK Leipzig Logische Ebene <. . > </. . > Daten- und Dokumentmodell Anfragen/Updates an Struktur und Inhalt datenzentriert logische Ebene dok-zentriert <. . > Anfragen/Updates an Struktur und Inhalt semistrukturiert Dokumentmodell 5 XML, SGML XQuery, XPath, DOM, IR-Anfragen XML, OEM XQuery, Lorel Datenmodell Anfragen/Updates an Inhalt XML, RDBM, OODBM XQuery, SQL, OQL 5

© Prof. T. Kudraß, HTWK Leipzig Realisierung Physische Ebene l Speicherung der XML-Dokumente als

© Prof. T. Kudraß, HTWK Leipzig Realisierung Physische Ebene l Speicherung der XML-Dokumente als Ganzes und Indizierung (textbasiert native) – – l – generische Graphspeicherung Speicherung der DOM-Informationen strukturierte Abbildung auf Datenbanken – – – 6 Volltextindex Volltext- und Strukturindex Speicherung der Graphenstruktur (modellbasiertes natives Verfahren) – l physische Ebene relationale Datenbanken objekt-orientierte und objekt-relationale Datenbanken Einsatz von benutzerdefinierten Mappingverfahren 6

© Prof. T. Kudraß, HTWK Leipzig physische Ebene 7 datenzentriert semistrukturiert dok-zentriert Architektur: physische

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

© Prof. T. Kudraß, HTWK Leipzig Speicherung von XML-Dokumenten Als Dateien / Clobs Speicherung

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

Speicherungsmethoden (Klassifikation nach Schöning) © Prof. T. Kudraß, HTWK Leipzig l inhaltsorientierte Zerlegung –

Speicherungsmethoden (Klassifikation nach Schöning) © Prof. T. Kudraß, HTWK Leipzig l inhaltsorientierte Zerlegung – – – l strukturorientierte Zerlegung – – l Verwendung allgemeiner Datenstrukturen (z. B. DOM / Baumstruktur) generell anwendbar auch bei unbekanntem Dokumentenschema opake Speicherung – – 9 generisch (generelle Abbildungsvorschrift) definitorisch (Abbildungsvorschriften für einzelen Datenstrukturen) Beispiel: Oracle (beide Varianten mit/ohne Annotations) gesamtes XML-Dokument in einer einzigen Spalte vom Typ VARCHAR oder CLOB SQL-Zugriff nur noch eingeschränkt möglich (bestenfalls dedizierte Funktionen) 9

© Prof. T. Kudraß, HTWK Leipzig Grundprinzip der invertierten Liste 10 10

© Prof. T. Kudraß, HTWK Leipzig Grundprinzip der invertierten Liste 10 10

© Prof. T. Kudraß, HTWK Leipzig Volltext-Index Begriff Verweis hotel Warnemünde Rostock ort anreisebeschreibung

© Prof. T. Kudraß, HTWK Leipzig Volltext-Index Begriff Verweis hotel Warnemünde Rostock ort anreisebeschreibung <hotel> <hotelname>Hotel Hübner</hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> <nummer>12</nummer> </adresse> <anreisebeschreibung> Aus Richtung Rostock kommend. . . </anreisebeschreibung> </hotel> - bekannte Methode (älter als relationale Datenbanken) - Boolesches Retrieval (AND, OR, NOT) 11 11

© Prof. T. Kudraß, HTWK Leipzig Eigenschaften des Volltext-Indexes l Schemabeschreibung – l Dokumentrekonstruktion

© Prof. T. Kudraß, HTWK Leipzig Eigenschaften des Volltext-Indexes l Schemabeschreibung – l Dokumentrekonstruktion – l – für dokumentzentrierte XML-Anwendungen Produkte – 12 Volltextfunktionen (vgl. SQL-MM) keine Auswertung des XML-Markups Einsatz – l Anfragen des Information Retrieval Weitere Besonderheiten – l Dokumente bleiben im Original erhalten Anfragen – l nicht erforderlich Oracle Inter. Media Text, DB 2 Text Extender 12

© Prof. T. Kudraß, HTWK Leipzig Kombinierter Volltext- und XML-Index Volltext-Index Term Verweis Element

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

Eigenschaften des kombinierten Volltext - und XML-Indexes © Prof. T. Kudraß, HTWK Leipzig l

Eigenschaften des kombinierten Volltext - und XML-Indexes © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l Dokumentrekonstruktion – l – – – für dokumentzentrierte XML-Anwendungen auch für semistrukturierte Anwendungen Produkte – 14 Volltextfunktionen (vgl. SQL-MM) Einsatz – l Anfragen des Information Retrieval Auswertung des Markup in den Anfragen XML-Anfragen möglich Weitere Besonderheiten – l Dokumente bleiben im Original erhalten Anfragen – l nicht erforderlich Oracle Inter. Media Text, DB 2 Text Extender 14

© Prof. T. Kudraß, HTWK Leipzig Speicherung der Graphstruktur Elements: Element Type Value plz

© Prof. T. Kudraß, HTWK Leipzig Speicherung der Graphstruktur Elements: Element Type Value plz int 18119 ort string Warnemünde strasse string Seestrasse Descendant-of hotel adresse Attributes: Element Attribute Type 15 Value url string www. . . autor string Müller • generische Speicherung der Struktur des XML-Dokumentes 15

Eigenschaften der Speicherung der Graphenstruktur © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung –

Eigenschaften der Speicherung der Graphenstruktur © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l Dokumentrekonstruktion – l – für daten- und dokumentzentrierte, sowie semistrukturierte XMLAnwendungen Produkte – 16 Anfragen über vielen Elementen/Attributen sind aufwendig Einsatz – l XML-Anfragen möglich Angepaßte Datenbankanfragen Weitere Besonderheiten – l Möglich, aber sehr aufwendig Anfragen – l Zur Speicherung nicht erforderlich Algorithmen von Florescu/Kossmann, Bradley u. a. 16

© Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM / 1 l Informationen des

© Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM / 1 l Informationen des Document Object Models werden in Datenbanken gespeichert DOMImplementation Node. List Named. Node. Map Attr Character. Data Comment Text l l Verwendung relationaler oder objekt -orientierter Datenbanken oder Entwicklung eigener Speicherungsstrukturen CData. Section Document. Fragment Document. Type Element Entity. Reference Notation 17 Processing. Instruction 17

© Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM / 2 Methoden der Klasse

© Prof. T. Kudraß, HTWK Leipzig Speicherung des DOM / 2 Methoden der Klasse Node: - get. Children() - get. First. Child() - get. Next. Sibling() - get. Node. Type() - get. Parent. Node() - get. Previous. Sibling() - has. Children() Node. ID Node. Type Previous. Sibling Doc. ID Next. Sibling Node. ID Methoden der Klasse Element: - get. Attributes() - get. Elements. By. Tag. Name(String) - get. Tag. Name() Node. ID Element. ID Parent. Node First. Child Tag. Name Attribut. Value Methoden der Klasse Attribut: - get. Name() - get. Value() 18 18

Eigenschaften der Speicherung von DOM © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung –

Eigenschaften der Speicherung von DOM © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l Dokumentrekonstruktion – l – für daten- und dokumentzentrierte, sowie semistrukturierte XML-Anwendungen Produkte – 19 Standardisierte und allgemein akzeptierte Schnittstelle Einsatz – l XML-Anfragen möglich Angepasste Datenbankanfragen Weitere Besonderheiten – l Möglich, aber aufwändig Anfragen – l Zur Speicherung nicht erforderlich infonyte (IPSI Darmstadt), e. Xcelon XIS (POET), ozone (SMB) 19

Abbildung der XML- Struktur auf relationale Datenbanken © Prof. T. Kudraß, HTWK Leipzig XML-Dokument

Abbildung der XML- Struktur auf relationale Datenbanken © Prof. T. Kudraß, HTWK Leipzig XML-Dokument <hotel url="www. hotel-huebner. de"> <hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse>. . . </adresse> <preise> <einzelzimmer>198</einzelzimmer>. . . </preise> </hotel> Hotel: Hotel. ID Hotelname Adresse Preise H 0001 Hotel Hübner A 0001 P 0001 Adresse: Adresse. ID Ort A 0001 Warnemünde Preise: Preise. ID Einzelzimmer P 0001 198 Strasse . . . Seestraße . . . - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen 20 20

Abbildung der XML- Struktur auf objekt-orientierte Datenbanken © Prof. T. Kudraß, HTWK Leipzig XML-Dokument

Abbildung der XML- Struktur auf objekt-orientierte Datenbanken © Prof. T. Kudraß, HTWK Leipzig XML-Dokument <hotel url="www. hotel-huebner. de"> <hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse>. . . </adresse> <preise> <einzelzimmer>198</einzelzimmer>. . . </preise> </hotel> Hotel: Hotel. ID Hotelname Adresse Ort H 0001 Hotel Hübner Strasse Warnemünde Seestraße Preise. . . einzelzimmer . . . 198 - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen - Datenbanken mit vielen Nullwerten 21 21

Strukturierte Speicherung in Datenbanken © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l

Strukturierte Speicherung in Datenbanken © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l Dokumentrekonstruktion – l – für datenzentrierte XML-Anwendungen Produkte – 22 Föderationen mit bestehenden Datenbanken möglich Einsatz – l Datenbankanfragen XML-Anfragen möglich Weitere Besonderheiten – l Nur eingeschränkt möglich (Protokollierung des Abbildungsprozesses) Anfragen – l Zur Speicherung erforderlich – Algorithmen: Bourret, Suciu (STORED), Shanmugasundaram u. a. Oracle XDK (XSU), Bluestone’s XML Suite 22

© Prof. T. Kudraß, HTWK Leipzig Benutzerdefiniertes Mapping XML-Dokument Mapping Vorschrift <Class. Map> <Element.

© Prof. T. Kudraß, HTWK Leipzig Benutzerdefiniertes Mapping XML-Dokument Mapping Vorschrift <Class. Map> <Element. Type Name="hotel"/> <To. Class. Table> <Table Name="Hotelpreise"/> </To. Class. Table> <Property. Map> <Attribute Name="url"/> <To. Column> <Column Name="Hotel_URL"/> </To. Column> </Property. Map> <Element. Type Name="hotelname"/> <To. Column> <Column Name="Name"/> </To. Column> </Property. Map>. . . </Classmap> <hotel url="www. hotel-huebner. de"> <hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse>. . . </adresse> <preise> <einzelzimmer>198</einzelzimmer>. . . </preise> </hotel> Hotelpreise Datenbank Hotel_URL Name www. hotel-huebner. de Hotel Hübner 23 Einzelzimmer 198 - Flexible Methode - Integration von XML-Dokumenten in existierende Datenbanken - Ein Mapping muss von Benutzer spezifiziert werden 23

Speicherung mittels benutzerdefiniertem Mapping © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l

Speicherung mittels benutzerdefiniertem Mapping © Prof. T. Kudraß, HTWK Leipzig l Schemabeschreibung – l Dokumentrekonstruktion – l – für datenzentrierte XML-Anwendungen Produkte – 24 Integration in bestehende Datenbanken möglich Einsatz – l Datenbankanfragen XML-Anfragen in Ausnahmefällen möglich Weitere Besonderheiten – l Meist nicht möglich (Voraussetzung: Protokollierung des Abbildungsprozesses, vollständige Abb. ) Anfragen – l Zur Speicherung erforderlich DB 2 XML Extender, Oracle XDK, Oracle 9 i. R 2 24

© Prof. T. Kudraß, HTWK Leipzig Hybride Ansätze Auswahl unterschiedlicher Speicherungsmethoden für verschiedene Dokumentanteile

© Prof. T. Kudraß, HTWK Leipzig Hybride Ansätze Auswahl unterschiedlicher Speicherungsmethoden für verschiedene Dokumentanteile <hotel> <hotelname>Strand Hotel Hübner</hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> <nummer>12</nummer> <telefon>0381/5434 -0</telefon> </adresse> <hausbeschreibung> Sie finden unser elegant und komfortabel eingerichtetes 4 -Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. </hausbeschreibung> </hotel> Sie finden unser elegant und komfortabel eingerichtetes 4 -Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. Hotel Ort Strand Hotel Hübner Warnemünde 25 Strasse Seestraße Telefon 0381/5434 -0 25

© Prof. T. Kudraß, HTWK Leipzig Beschränkungen der Ansätze (1) l Speicherung als Ganzes

© Prof. T. Kudraß, HTWK Leipzig Beschränkungen der Ansätze (1) l Speicherung als Ganzes – – l Locking nur auf Dokumentebene möglich Bearbeitung von Teildokumenten schwieriger oft nur proprietäre Lösungen implementierbar Einschränkungen bei Anfragen (z. B. wertbasierte Suche) Speicherung der Dokumentstruktur (bei Abbildung der Graphstruktur in Relationen): – Anfragesprache: nur SQL l l l – schlechte Performance l l 26 keine adäquaten Anfragekonstrukte Anfrageformulierung schwierig Änderungen auf SQL-Ebene können Struktur des Dokuments zerstören Shredding der Relationen ->komplexe Joins umfangreiche Sperren 26

© Prof. T. Kudraß, HTWK Leipzig Beschränkungen der Ansätze (2) l strukturierte Speicherung in

© Prof. T. Kudraß, HTWK Leipzig Beschränkungen der Ansätze (2) l strukturierte Speicherung in Datenbanken – – Dokumente mit a priori bekanntem Schema, d. h. geringe Flexibilität bei Schemaänderung unterschiedliche Schemamächtigkeit l l – Keine vollständige Abbildung von Dokumenten l l – 27 Rekursion? Mixed Content? Reihenfolgeerhaltung Prolog, Kommentare, Processing Instructions strukturorientierte Anfragen schwierig 27

© Prof. T. Kudraß, HTWK Leipzig Realisierung in Oracle l l l seit Version

© Prof. T. Kudraß, HTWK Leipzig Realisierung in Oracle l l l seit Version 8 XML Developer Kit (XDK) seit Version 9 – spezieller Datentyp: XMLType – unterstützt inhaltsorientierte und opake Speicherung seit Version 10 – l inhaltsorientierte Speicherung – – 28 Integration von XQuery erfordert registriertes Schema bei der Definition der XMLSpalte (Tabelle) teilweise auch opake Speicherung möglich Kommentare, PI und Reihenfolgeinformationen in (proprietärem) Systemattribut SYS_XDBPDS Standardabbildung kann durch Annonationen im XML-Schema geändert werden (xdb: ) 28

© Prof. T. Kudraß, HTWK Leipzig Strukturorientierte Zerlegung <Auftragsnr="12324"> <Auftragsposition><Artikel>124</Artikel > <Menge>2</Menge> </Auftragsposition> <Auftragsposition><Artikel>567</Artikel

© Prof. T. Kudraß, HTWK Leipzig Strukturorientierte Zerlegung <Auftragsnr="12324"> <Auftragsposition><Artikel>124</Artikel > <Menge>2</Menge> </Auftragsposition> <Auftragsposition><Artikel>567</Artikel > <Menge>4</Menge> </Auftragsposition> </Auftrag> Knotennr Vorgaenger Position Name Wert 1 0 0 Auftrag - 2 1 0 @Auftragsnr 12324 3 1 1 Auftragsposition - 4 3 1 Artikel 124 5 3 2 Menge 2 6 1 2 Auftragsposition - 7 6 1 Artikel 567 6 2 Menge 4 298 29

© Prof. T. Kudraß, HTWK Leipzig XML-Schema-Dokument PO. xsd <complex. Type name="Auftragstyp"> <sequence> <element

© Prof. T. Kudraß, HTWK Leipzig XML-Schema-Dokument PO. xsd <complex. Type name="Auftragstyp"> <sequence> <element name="Auftragsnr" type="decimal"/> <element name="Firma"> <simple. Type><restriction base="string"> <max. Length value="100"/> </restriction></simple. Type></element> <element name="Auftragsposition" max. Occurs="1000"> <complex. Type><sequence> <element name="Artikel"> <simple. Type><restriction base="string"> <max. Length value="1000"/> </restriction></simple. Type></element> <element name="Preis" type="float"/> </sequence></complex. Type></element> </sequence></complex. Type> <element name="Auftrag" type="Auftragstyp"/> 30 30

© Prof. T. Kudraß, HTWK Leipzig Inhaltsorientierte Zerlegung (Beispiel) • Bindung des XML Schema-Dokuments

© Prof. T. Kudraß, HTWK Leipzig Inhaltsorientierte Zerlegung (Beispiel) • Bindung des XML Schema-Dokuments an eine Tabelle CREATE TABLE po_tab OF XMLTYPE XMLSCHEMA " <Pfad> PO. xsd" ELEMENT "Auftrag" VARRAY(Auftragsposition) STORE AS Auftrag_tab; • Interne Erzeugung von Typdefinitionen TYPE "Auftragsposition_T" (Artikel VARCHAR 2(1000), Preis NUMBER); TYPE "Auftragsposition_COLL" AS VARRAY(1000) OF "Auftragsposition_T"; TYPE "Auftragstyp_T" (Auftragsnr NUMBER, Firma VARCHAR 2(100), Auftragsposition _COLL); 31 31

© Prof. T. Kudraß, HTWK Leipzig Opake Abbildung in Oracle l XML-Dokument mittels Typ

© Prof. T. Kudraß, HTWK Leipzig Opake Abbildung in Oracle l XML-Dokument mittels Typ XMLType gespeichert l Storage-Option CLOB Zugriff auf den Inhalt eines Objekts von XMLType über Funktionen: l – – – 32 extract um das Ergebnis eines XPath-Ausdrucks zu erhalten, get. Clob. Val, get. String. Val und get. Num. Val, um das Ergebnis von extract in einen SQL-Datentyp zu überführen, extract. Value, um das Ergebnis eines XPath-Ausdrucks direkt in einen SQL-Wert umzuwandeln, exists. Node, um zu prüfen, ob ein XPath-Ausdruck ein Ergebnis liefert. create. XML kann aus einer SQL-Zeichenkette ein Wert des Typs XML erzeugt werden (bei inhaltsorientierter Zerlegung wieder auf SQL-Tabellen abgebildet) 32

Zugriff auf Objekt vom Typ XMLType (Beispiel) © Prof. T. Kudraß, HTWK Leipzig SELECT

Zugriff auf Objekt vom Typ XMLType (Beispiel) © Prof. T. Kudraß, HTWK Leipzig SELECT extract. Value(value(d), '/Beschreibung) "Beschreibung" FROM Auftrag, table(xml. Sequence( extract(object_value, '/Auftragsposition/Artikel'))) d WHERE exists. Node(object_value, Auftrag[Auftragsnr="2803030912"]')=1 entspricht dem XPath-Ausdruck: /Auftrag[Auftragsnr="2803030912"]/Auftragsposition/ Artikel/Beschreibung 33 33