XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2...

68
Kapitel 11 Kapitel 11 Kommerzielle Datenbanksysteme Kommerzielle Datenbanksysteme für die XML für die XML - - Verarbeitung Verarbeitung IBM DB2 mit XML Extender IBM DB2 mit XML Extender Microsoft SQL Server Microsoft SQL Server Oracle Oracle Tamino Tamino Excelon Excelon Poet Poet Infonyte Infonyte

Transcript of XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2...

Page 1: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

Kapitel 11Kapitel 11

Kommerzielle Datenbanksysteme Kommerzielle Datenbanksysteme für die XMLfür die XML--VerarbeitungVerarbeitung

IBM DB2 mit XML ExtenderIBM DB2 mit XML ExtenderMicrosoft SQL ServerMicrosoft SQL ServerOracleOracleTaminoTaminoExcelonExcelonPoetPoetInfonyteInfonyte

Page 2: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-2Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

BeispielBeispiel--DokumenteDokumente<book>

<title> Datenbanken-Handbuch </title><editor>

<firstname> Peter C.</firstname><lastname> Lockemann </lastname>

</editor><editor>

<firstname> Joachim W.</firstname><lastname> Schmidt </lastname>

</editor><isbn>3-540-10741-X</isbn><publisher> Springer Verlag </publisher><summary>...</summary>

</book>

<book><title> Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme </title><author>

<firstname> Gottfried </firstname><lastname> Vossen </lastname>

</author><isbn>3-89319-566-1 </isbn><publisher> Addison-Wesley </publisher><summary>...</summary>

</book>XML-Dokument book2.xmlXML-Dokument book1.xml

<book><title> Objektdatenbanken </title><author> Gunter Saake </author><author> Can Türker </author><author> Ingo Schmitt</author><isbn>3-8266-00258-7 </isbn><publisher> Thomson </publisher><summary>...</summary>

</book> XML-Dokument book3.xml

Page 3: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-3Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

IBM DB2 mit IBM DB2 mit XMLExtenderXMLExtender: Architektur : Architektur Anwendung

DB2 XML Extender

XML-Dokumente

DAD –Document

Access Definition

Datei-system

Datei-system

Datei-system

Datei-system

IBM DB2

Datenbank

Page 4: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-4Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Speicherungsstruktur: Speicherungsstruktur: Abbildung von XML auf DatenbankenAbbildung von XML auf Datenbanken

Varianten zur Abbildung von XML auf DatenbankenVarianten zur Abbildung von XML auf Datenbanken– XML-Column-Ansatz: basiert auf XML-Datentyp– XML-Collection-Ansatz: basiert auf Zerlegung der XML-Dokumente in

Datenbanktabellen und -spalten

Tabellen mit XMLTabellen mit XML--Spalten (Ansatz: XML Spalten (Ansatz: XML ColumnColumn))– Diverse XML-Datentypen

XMLCLOB: XML-Dokumente werden als CLOBs gespeichertXMLVARCHAR: XML-Dokumente werden als VARCHARs gespeichertXMLFILE: XML-Dokumente werden im Dateisystem gespeichert

– Zusätzliche materialisierte Sichten:Extraktion von ausgewählten XML-Inhalten aus den DokumentenMaterialisierung dieser Inhalte in sog. SeitentabellenSeitentabellen werden in der Document Access Definition (DAD) definiert

– Methoden zur Verarbeitung von XML-Dokumenten ergänzen XML-Datentypenbesprechen wir später

Page 5: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-5Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Einrichten der XMLEinrichten der XML--Erweiterungen für die Datenbank über XML Extender Erweiterungen für die Datenbank über XML Extender Admin WizardAdmin Wizard

Definition der Tabellen zur Aufnahme von XMLDefinition der Tabellen zur Aufnahme von XML--DokumentenDokumenten– Variante 1: Erzeugen mit dem XML Extender Admin Wizzard– Variante 2: SQL

Einfügen von DokumentenEinfügen von Dokumenten

CREATE TABLE xmltable(

docid BIGINT,doctext DB2XML.XMLVARCHAR

)

INSERT INTO xmltable (doctext) VALUES (DB2XML.XMLVARCHARFromFile('book1.xml'))

Erzeugen der Tabellen mit XMLErzeugen der Tabellen mit XML--Typen Typen und Einfügen von Dokumentenund Einfügen von Dokumenten

Page 6: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-6Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Definition der Abbildung durch eine DAD Definition der Abbildung durch eine DAD mit dem XMLmit dem XML--ColumnColumn--AnsatzAnsatz

DDocument Access Definitionocument Access Definition ((DADDAD))– Beschreibung der Abbildungen zwischen XML und Datenbanktabellen über ein

XML-Dokument, das sog. DAD-Dokument (im Dateisystem)

SyntaxSyntax fürfür den XMLden XML--ColumnColumn--AnsatzAnsatz ((spezifiziertspezifiziert in DAD.in DAD.dtddtd von IBM):von IBM):– Tabellen-Element: <table>

Attribut Tabellenname: name="tabname"– Spalten-Element: <column>

Attribut Spaltenname: name="colname"Attribut Datentyp: type="typespecifier"Attribut Pfad im XML-Dokument: path="XPath-" multi_occurrence="boolean"

Beim Registrieren der DAD (über ein ShellBeim Registrieren der DAD (über ein Shell--Programm!!!) werden die Programm!!!) werden die Seitentabellen und Seitentabellen und TriggerTrigger zu deren Wartung automatisch erzeugtzu deren Wartung automatisch erzeugt

C:\> dxxadm enable_column xmldb xmltable doctext bookstore.dad

Page 7: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-7Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Beispiel für eine XMLBeispiel für eine XML--ColumnColumn--DADDAD

<?xml version="1.0"?><!DOCTYPE DAD SYSTEM "dad.dtd"><DAD><validation>NO</validation><Xcolumn><table name="book">

<column name="publisher" type="varchar(50)" path="//book/publisher" multi_occurrence="NO"/>

<column name="title" type="varchar(3000)" path="//book/title" multi_occurrence="NO"/>

<column name="isbn" type="varchar(15)" path="//book/isbn" multi_occurrence="NO"/>

</table><table name="author_ln">

<column name="lastname" type="varchar(200)" path="//book/author/lastname" multi_occurrence="YES"/>

</table></Xcolumn></DAD>

Autoren können in den Dokumenten mehrfach

auftreten

Page 8: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-8Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLXML--ColumnColumn--Ansatz für die BeispielAnsatz für die Beispiel--DokumenteDokumente

Automatisch vom System aufgrund der DAD generiert

<book>...</book>3<book>...</book>2

<book>...</book>1doctextdocid Trigger beim

Laden der Dokumente

XML-Dokumente xmltable

Thomson

Springer

Addison Wesleypublisher

Objekt-datenbanken

Datenbank-Handbuch

Daten-modelle

title

3-8266-0258-73

3-540-10741-X2

3-89319-566-11isbnroot_id

Seitentabelle book

DAD-Spezifikation

Vossenlastname

1seq_no

1root_id

Seitentabelle author_ln

Page 9: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-9Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Definition der Abbildung durch eine DAD Definition der Abbildung durch eine DAD mit dem XMLmit dem XML--CollectionCollection--AnsatzAnsatz

Zerlegung von XMLZerlegung von XML--Dokumenten Dokumenten

Abbildung von XML auf DatenbankAbbildung von XML auf Datenbank– dxxInsertXML() arbeitet auf XML-Kollektionen mit fester DAD– dxxShredXML() arbeitet auf XML-Kollektionen mit variabler DAD

Abbildung von Datenbank auf XMLAbbildung von Datenbank auf XML– dxxRetrieveXML() arbeitet auf XML-Kollektionen mit fester DAD– dxxGenXML() arbeitet auf XML-Kollektionen mit variabler DAD

Aufruf aller dieser Aufruf aller dieser Stored ProceduresStored Procedures nur aus einem nur aus einem Anwendungsprogramm möglich!!!Anwendungsprogramm möglich!!!

Aufruf aus dem Anwendungsprogramm ist nicht akzeptabel, daher hiAufruf aus dem Anwendungsprogramm ist nicht akzeptabel, daher hier er nicht weiter ausgeführt.nicht weiter ausgeführt.

Page 10: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-10Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Definition der Abbildung durch eine DAD Definition der Abbildung durch eine DAD mit dem XMLmit dem XML--CollectionCollection--AnsatzAnsatz

DADDAD--DTD stellt verschiedene XMLDTD stellt verschiedene XML--Elemente zur Verfügung, um die Elemente zur Verfügung, um die Abbildung zwischen Datenbank und XML festzulegenAbbildung zwischen Datenbank und XML festzulegen

– Element SQL_stmt: Angabe einer SQL-Anfrage– Element prolog: Angabe des Prologs zum XML-Dokument– Element element_node: Definition von Zielelementen

Attribut name: Tag des Zielelements– Element attribute_node: dito XML-Attribute

Attribut name: Name des Zielattributs– Element column: Bezug zur Spalte im Anfrageergebnis

Umgekehrte Abbildung von XML auf Datenbankinhalten ist auch möglUmgekehrte Abbildung von XML auf Datenbankinhalten ist auch möglich ich – Element RDB_node anstelle von SQL_stmt– Angabe von Tabellennamen und evtl. Join-Bedingungen

Page 11: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-11Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Beispiel für eine XMLBeispiel für eine XML--CollectionCollection--DADDAD

<?xml version="1.0"?><!DOCTYPE DAD SYSTEM "dad.dtd"><DAD><validation>NO</validation><Xcollection>

<SQL_stmt> SELECT title, publisher, isbn FROM book </SQL_stmt><prolog> ?xml version="1.0"? </prolog><element_node name="book">

<attribute_node name="title"/> <column name="title"/><attribute_node name="isbn"/> <column name="isbn"/><attribute_node name="publisher"/> <column name="publisher"/>

</element_node></Xcollection></DAD>

Page 12: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-12Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Indexierung Indexierung

IndexunterstützungIndexunterstützung– Wertindexe (B-Baum, Bitmap, etc.) auf den Seitentabellen– Volltextindex (mit Text Extender) auf den XML-Typen

Erweiterung des Volltextindex für IR auf XMLErweiterung des Volltextindex für IR auf XML– Mitführen der Pfadinformation im Index– Unterstützung für Pfadausdrücke– Beispiel:

SELECT x_SELECT x_dociddocidFROM FROM xmltablexmltableWHERE WHERE containscontains((dscrHandeldscrHandel,,

‘MODEL order SECTION(//‘MODEL order SECTION(//bookbook//summarysummary) ) "DatenbankDatenbank"‘) = 1‘) = 1

contains-Ausdruck enthält im zweiten

Parameter eine Query für den Text Extender

Pfadausdruck zur Einschränkung der Suche

Retrievalmodell

Page 13: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-13Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLXML--ExtenderExtender– XML-Erweiterung bietet Funktionen für Anfragen und Manipulationen– Anfragen: DB2XML.EXTRACT<Datentyp>(<Spalte>, <XPath-->)

Begrenzte Unterstützung des SQL/XMLBegrenzte Unterstützung des SQL/XML--StandardsStandards– XMLAGG– XMLELEMENT– XMLATTRIBUTE

SELECT RETURNEDVARCHARFROM xmltable AS x,TABLE(DB2XML.EXTRACTVARCHARS(x.doctext, '//firstname')) AS xmlresult;

SELECT VARCHAR(XML2CLOB(XMLELEMENT(name "publisher", publisher)))

FROM book

AnfragenAnfragen

Page 14: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-14Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

ManipulationManipulation

Manipulationen über spezielle Methoden der XMLManipulationen über spezielle Methoden der XML--Typen möglichTypen möglich

Syntax: DB2XML.UPDATE(<Spalte>, <Syntax: DB2XML.UPDATE(<Spalte>, <XPathXPath---->, <>, <NeuerInhaltNeuerInhalt>)>)

BeispielBeispiel

Mit dem XMLMit dem XML--ColumnColumn--Ansatz werden die Änderungen automatisch auf Ansatz werden die Änderungen automatisch auf den Seitentabellen nachgezogenden Seitentabellen nachgezogen

UPDATE xmltableSET doctext = DB2XML.UPDATE(doctext, '//firstname', 'Torsten')

Page 15: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-15Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung IBM DB2 XMLZusammenfassung IBM DB2 XML--UnterstützungUnterstützung

nur im nur im TextExtenderTextExtenderPfadindexPfadindex

SQLSQL--Methoden mit Methoden mit XPathXPath--DialektDialektManipulationenManipulationenmit mit TextExtenderTextExtenderVolltextsucheVolltextsucheSQLSQL--Methoden mit Methoden mit XPathXPath--DialektDialektAnfragenAnfragen

durch DADdurch DADAbbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

mit mit TextExtenderTextExtenderVolltextindexVolltextindexStandardStandard--DBSDBS--Indexe auf SeitentabellenIndexe auf SeitentabellenWertindexWertindex

IndexeIndexevorhandenvorhandenXMLXML--DatentypDatentyp

textbasiert oder benutzerdefinierttextbasiert oder benutzerdefiniert--strukturbasiertstrukturbasiertArt der SpeicherungArt der SpeicherungValidierungValidierung bei Import möglichbei Import möglichSchemabeschreibungSchemabeschreibungerweiterbar, objektrelationalerweiterbar, objektrelationalModellModellXMLXML--SpeicherungSpeicherung

Page 16: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-16Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Kritik des Ansatzes von DB2Kritik des Ansatzes von DB2

Schlechte Unterstützung von Standards Schlechte Unterstützung von Standards – DAD statt XML-Schema– Eigener XPath-Dialekt anstatt XPath 1.0– Keine volle Unterstützung von SQL/XML

Schlechte Integration der Tools mit dem Komplettsystem bzw. SQLSchlechte Integration der Tools mit dem Komplettsystem bzw. SQL– Umständliches Aktivieren von XML-Unterstützung für Datenbanken, Tabellen

Unnötige Koexistenz verschiedener, teilweise redundanter AnsätzeUnnötige Koexistenz verschiedener, teilweise redundanter Ansätze– Beispiel: XML-Unterstützung durch XML Extender vs. SQL/XML-Funktionalität

Keine Unterstützung modellbasierter AbbildungenKeine Unterstützung modellbasierter Abbildungen

Vieles befindet sich offensichtlich noch im BetaVieles befindet sich offensichtlich noch im Beta--Stadium, auch wenn es Stadium, auch wenn es offiziell schon lange offiziell schon lange releasedreleased ist!ist!

Page 17: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-17Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Microsoft SQL Server 2000: ArchitekturMicrosoft SQL Server 2000: ArchitekturAnwendung

MS SQL Server 2000

SQLOLEDB

XML-Dokumente

Internet Information Server (IIS)

Datenbank

ADOMiddleware

Page 18: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-18Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Speicherstruktur: Speicherstruktur: Abbildung von XML auf DatenbankenAbbildung von XML auf Datenbanken

Drei Varianten zur Speicherung von XMLDrei Varianten zur Speicherung von XML--DokumentenDokumenten

Variante 1: Modellbasierte Speicherung nach dem EDGEVariante 1: Modellbasierte Speicherung nach dem EDGE--AnsatzAnsatz– SQL-Erweiterung um einen XML-Parser, der eine Ausgabe nach dem EDGE-

Format generiert

Variante 2: Strukturbasierte Speicherung über STOREDVariante 2: Strukturbasierte Speicherung über STORED--QueriesQueries– SQL-Erweiterung um einen XML-Parser, der STORED-Queries verarbeitet

Variante 3: XMLVariante 3: XML--Dokumente können auch als Dokumente können auch als CLOBsCLOBs gespeichert werden gespeichert werden ––textbasierter Ansatztextbasierter Ansatz

Speicherung der XMLSpeicherung der XML--Inhalte (EDGE oder strukturbasierte Daten) über Inhalte (EDGE oder strukturbasierte Daten) über INSERTINSERT--SQLSQL--Befehle in der DatenbankBefehle in der Datenbank

Page 19: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-19Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Modellbasierte Speicherung mit EDGE (1)Modellbasierte Speicherung mit EDGE (1)

Aufruf von OPENXML ohne WITHAufruf von OPENXML ohne WITH--Klausel liefert EDGEKlausel liefert EDGE--TabelleTabelle

Inhalt des KnotensInhalt des KnotensntextntexttexttextID des Vorgängerknotens (in Dokumentordnung)ID des Vorgängerknotens (in Dokumentordnung)bigintbigintprevprevDatentyp (abgeleitet aus DTD oder XMLDatentyp (abgeleitet aus DTD oder XML--Schema)Schema)nvarcharnvarchardatatypedatatypeURI des XMLURI des XML--NamensraumsNamensraumsnvarcharnvarcharnamespaceurinamespaceuriPräfix des XMLPräfix des XML--NamensraumsNamensraumsnvarcharnvarcharprefixprefixTagTagnvarcharnvarcharlocalnamelocalnameUnterscheidet Elemente, Attribute, KommentareUnterscheidet Elemente, Attribute, KommentareintintnodetypenodetypeID des VaterknotensID des VaterknotensbigintbigintparentidparentidEineindeutige KnotenEineindeutige Knoten--IDIDbigintbigintididFunktionFunktionDatentypDatentypSpalteSpalte

Page 20: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-20Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Modellbasierte Speicherung mit EDGE (2)Modellbasierte Speicherung mit EDGE (2)

EXEC sp_EXEC sp_xmlxml__preparedocumentpreparedocument @@hdochdoc OUTPUT, @OUTPUT, @xmldoctextxmldoctextINSERT INTO EDGEINSERT INTO EDGESELECT *SELECT *FROMFROM OpenXMLOpenXML (@(@hdochdoc, '', 0) , '', 0) EXEC sp_EXEC sp_xmlxml__removedocumentremovedocument @@hdochdoc

EDGE-Tabelle

NULL

NULLdatatype

NULL

NULLprev

3

1nodetype

#text

booklocalname

NULL

NULLprefix

NULL

NULLnamespaceuri

17...

0id

6

NULLparentid

'' Vossen ''

NULLtext

Page 21: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-21Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Strukturbasierte Speicherung mit STOREDStrukturbasierte Speicherung mit STORED--QueriesQueries

SQLSQL--Erweiterung mit OPENXMLErweiterung mit OPENXML

OPENXML transformiert XMLOPENXML transformiert XML--Inhalte zu Datenbanktabellen (Inhalte zu Datenbanktabellen (ShreddingShredding))

OPENXML ermöglicht es damit auch, STOREDOPENXML ermöglicht es damit auch, STORED--QueriesQueries zu implementierenzu implementieren

Beispiel fürBeispiel für diedie Umsetzung einerUmsetzung einer STOREDSTORED--Query:Query:

EXEC sp_EXEC sp_xmlxml__preparedocumentpreparedocument @@hdochdoc OUTPUT, @OUTPUT, @xmldoctextxmldoctextINSERT INTO bookINSERT INTO bookSELECT *SELECT *FROMFROM OpenXMLOpenXML (@(@hdochdoc, '//book/', 0) WITH (, '//book/', 0) WITH (

title title NVARCHAR(3000) NVARCHAR(3000) ‘./title',‘./title',publisher publisher NVARCHAR(200) NVARCHAR(200) ‘./publisher‘,‘./publisher‘,isbnisbn NVARCHAR(15) NVARCHAR(15) ‘./‘./isbnisbn‘‘

))EXEC sp_EXEC sp_xmlxml__removedocumentremovedocument @@hdochdoc

Page 22: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-22Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Strukturbasierte Speicherung: Beispiel Strukturbasierte Speicherung: Beispiel

Ergebnistabelle erzeugen:Ergebnistabelle erzeugen:

Nach STOREDNach STORED--Query von der vorigen Seite ergibt sich der Tabelleninhalt:

CREATE TABLE (

Query von der vorigen Seite ergibt sich der Tabelleninhalt:

Thomson

Springer

Addison Wesleypublisher

Objekt-datenbanken

Datenbank-Handbuch

Daten-modelle

title

3-8266-0258-7

3-540-10741-X

3-89319-566-1isbn

CREATE TABLE (publisher publisher NVARCHAR(200) ,NVARCHAR(200) ,title title NVARCHAR(3000),NVARCHAR(3000),isbnisbn NVARCHAR(15)NVARCHAR(15)

))

Page 23: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-23Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Speicherstruktur: Speicherstruktur: Abbildung von Datenbanken auf XMLAbbildung von Datenbanken auf XML

Variante 1: Standardabbildung mit SQL SELECT und FOR XMLVariante 1: Standardabbildung mit SQL SELECT und FOR XML--KlauselKlausel– FOR XML RAW: Umsetzung in ROW-XML-Elemente und XML-Attribute– FOR XML AUTO:

Semantisch reiche XML-Element-Namen Fremdschlüssel-Beziehungen werden in Hierarchien umgesetzt

– FOR XML EXPLICIT: Nutzer steuert XML-Aufbau durch Metadaten (EDGE)

Variante 2: Benutzerdefinierte XMLVariante 2: Benutzerdefinierte XML--SichtSicht– Verwendung eines (vorhandenen) XML-Schemas– Annotation des Schemas mit Informationen über Tabellen und Spalten– Zugriff der Anwendung auf die XML-Sicht über:

IIS-FunktionalitätADO (ActiveX Data Objects) – Middleware zum DB-Zugriff

Page 24: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-24Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Variante 1: FOR XMLVariante 1: FOR XML--KlauselKlausel

SELECT title, SELECT title, publisherpublisher, , isbnisbn, , lastnamelastnameFROM FROM bookbook, , authorauthorWHERE WHERE bookbook..idid = = authorauthor..bookidbookidFOR XML AUTO, ELEMENTFOR XML AUTO, ELEMENT

XML-Elemente statt Attribute verwenden

<book><title> Datenmodelle </title><author>

<lastname> Vossen </lastname></author><isbn>3-89319-566-1 </isbn><publisher> Addison-Wesley </publisher>

</book>...

XML_XXXX: NTEXT (CLOB)

Page 25: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-25Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Variante 2: Benutzerdefinierte XMLVariante 2: Benutzerdefinierte XML--SichtenSichten

Annotiertes XMLAnnotiertes XML--SchemaSchema– Zusätzlicher Namensraum:

xmlns:sql="urn:schemas-microsoft-com:mapping-schema"– Konform zum XML-Schema-Standard des W3C– Annotation sql:relation: Bezug zwischen XML und einer Tabelle– Annotation sql:field: Bezug zwischen XML und einer Tabellenspalte– Annotation sql:relationship: Schlüssel-Fremdschlüssel-Beziehung in der DB

Zugriff auf die XMLZugriff auf die XML--Sicht über Sicht über XPathXPath ist möglichist möglich– aus dem Browser über IIS– aus Applikationen via ActiveX Data Object (ADO) – Middleware zum DB-Zugriff– Nicht alle XPath-Konstrukte können abgedeckt werden– XPath wird in äquivalentes SQL auf der Datenbank übersetzt

Page 26: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-26Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Benutzerdefinierte XMLBenutzerdefinierte XML--Sicht: BeispielSicht: Beispiel

<<xsdxsd::schema xmlnsschema xmlns::xsdxsd="http://="http://wwwwww.w3..w3.orgorg/2001//2001/XMLSchemaXMLSchema" " xmlnsxmlns::sqlsql="="urnurn::schemasschemas--microsoftmicrosoft--comcom::mappingmapping--schemaschema"> ">

<<xsdxsd::element nameelement name= "= "BookBook" " sqlsql::relationrelation= "= "bookbook"" typetype= "= "BookTypeBookType"/> "/> <<xsdxsd::complexType namecomplexType name= "= "BookTypeBookType" > " >

<<xsdxsd::sequencesequence> > <<xsdxsd::element nameelement name= "Title" = "Title" sqlsql::fieldfield= "title"/>= "title"/><<xsdxsd::element nameelement name= "ISBN" = "ISBN" sqlsql::fieldfield= "= "isbnisbn"/>"/><<xsdxsd::element nameelement name= "Publisher" = "Publisher" sqlsql::fieldfield= "= "publisherpublisher"/>"/>

</</xsdxsd::sequencesequence> > </</xsdxsd::complexTypecomplexType> > </</xsdxsd::schemaschema> >

Definition der XML-Struktur

Definition der Tabellenspalten

Page 27: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-27Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Benutzerdefinierte XMLBenutzerdefinierte XML--Sicht: BeispielSicht: Beispiel

Thomson

Springer

Addison Wesleypublisher

Objekt-datenbanken

Datenbank-Handbuch

Daten-modelle

title

3-8266-0258-7

3-540-10741-X

3-89319-566-1isbn

<Book><Title> Datenmodelle </Title><ISBN> 3-89319-566-1 </ISBN><Publisher> Addision Wesley</Publisher>

</Book>...<Book>

<Title> Objektdatenbanken </Title><ISBN>3-8266-00258-7 </ISBN><Publisher> Thomson </Publisher>

</Book>

Sicht-Definition

Sichten können als XML-Dokumenteüber den IIS abgerufen werden, um sie dann weiterzuverarbeiten

Page 28: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-28Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

ManipulationenManipulationen

SQL Server 2000 bietet keine Funktion zur Manipulation von XMLSQL Server 2000 bietet keine Funktion zur Manipulation von XML--Dokumenten, die als CLOB gespeichert sindDokumenten, die als CLOB gespeichert sind

Dadurch deutliche Einschränkung des textbasierten AnsatzesDadurch deutliche Einschränkung des textbasierten Ansatzes

Manipulationen bei strukturbasierten Abbildungen sind möglich übManipulationen bei strukturbasierten Abbildungen sind möglich über er sogenannte Updategramssogenannte Updategrams

– Aufbauend auf annotierte XML-Schemas– Formulierung der Änderungen in einem XML-Dokument:– Neuer Namensraum:

xmlns:updg="urn:schemas-microsoft-com:xml-updategram"Element before: Definition eines vorigen (abzuändernden) ZustandesElement after: Definition des neuen Zustandes

– Unterschiedliche Änderungsoperationen durch verschiedene ElementinhalteEinfügen : before-Element wird leer gelassenLöschen: after-Element wird leer gelassenUpdate: beide Elemente haben nicht-leeren Inhalt

Automatische Durchführung der erforderlichen DatenbankoperationeAutomatische Durchführung der erforderlichen Datenbankoperationenn

Page 29: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-29Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Manipulationen: Beispiel für UpdategramsManipulationen: Beispiel für Updategrams

Datenbestand mit XMLDatenbestand mit XML--Sicht wie im vorigen BeispielSicht wie im vorigen Beispiel

Änderungsoperation: Update der VerlagsinformationÄnderungsoperation: Update der Verlagsinformation<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> <updg:sync >

<updg:before> <Book>

<Title> Objektdatenbanken </Title><ISBN>3-8266-00258-7 </ISBN><Publisher> Thomson </Publisher>

</Book></updg:before> <updg:after>

<Book><Title> Objektdatenbanken </Title><ISBN>3-8266-00258-7 </ISBN><Publisher> International Thomson Publishing </Publisher>

<Book></updg:after>

</updg:sync> </ROOT>

Page 30: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-30Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung SQL Server 2000 Zusammenfassung SQL Server 2000 XMLXML--UnterstützungUnterstützung

--PfadindexPfadindex

mit Updategramsmit UpdategramsManipulationenManipulationenSQLSQL--Erweiterungen, Erweiterungen, XPathXPath--DialektDialektAnfragenAnfragen

automatisch: FOR XMLautomatisch: FOR XML--KlauselKlauselbenutzerdefiniert: XSDbenutzerdefiniert: XSD--AnnotationenAnnotationen

Abbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

keine XMLkeine XML--spezifischen Funktionenspezifischen FunktionenVolltextindexVolltextindexStandardStandard--DBSDBS--IndexeIndexeWertindexWertindexIndexeIndexe--XMLXML--DatentypDatentyp

textbasiert: CLOBtextbasiert: CLOB--SpalteSpaltemodellbasiert: mit OPENXMLmodellbasiert: mit OPENXMLbenutzerdefiniert strukturbasiert: benutzerdefiniert strukturbasiert: mit OPENXML mit OPENXML –– STORED STORED QueriesQueries

Art der SpeicherungArt der Speicherunginlineinline DTD oder XMLDTD oder XML--SchemaSchemaSchemabeschreibungSchemabeschreibungrelationalrelationalModellModell

XMLXML--SpeicherungSpeicherung

Page 31: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-31Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Kritik des Ansatzes von SQL Server 2000Kritik des Ansatzes von SQL Server 2000

Zu eingeschränkte Unterstützung von XML im DBSZu eingeschränkte Unterstützung von XML im DBS--KernKern– kein XML-Datentyp vorhanden– keine Unterstützung für Updates durch XML-Prozessor im DBS– Unterstützung für SQL/XML fehlt komplett

Viele Möglichkeiten, XML auf DBViele Möglichkeiten, XML auf DB--Strukturen abzubildenStrukturen abzubilden– Unterstützung von STORED-Queries positiv

Benötigte Infrastruktur zu komplexBenötigte Infrastruktur zu komplex– Internet Information Server ist hier eigentlich unnötig

Positiv: Annotation von StandardPositiv: Annotation von Standard--XMLXML--Schemas für die Schemas für die SichtenbildungSichtenbildung

Page 32: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-32Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Oracle9i: Architektur Oracle9i: Architektur Anwendung

Datenbank

XML-Dokumente

Oracle9iOracle verfolgt den Oracle verfolgt den SQL/XMLSQL/XML--AnsatzAnsatz

Page 33: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-33Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Oracle9i: Oracle9i: Detailliertere ArchitekturübersichtDetailliertere Architekturübersicht

Page 34: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-34Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Speicherungsstruktur: Speicherungsstruktur: Abbildung von XML auf DatenbankenAbbildung von XML auf Datenbanken

Varianten zur Abbildung von XML auf DatenbankenVarianten zur Abbildung von XML auf Datenbanken– XML-Column-Ansatz: Spalte basiert auf XML-Datentyp– XML-Table-Ansatz: Tabelle basiert auf XML-Datentyp

Ausnutzung der objektrelationalen Erweiterung von OracleAusnutzung der objektrelationalen Erweiterung von Oracle– XMLTYPE als vordefinierter Objekttyp mit SQL/XML-Funktionen als Methoden – Intermedia-Text-Paket mit Volltextfunktionalität– DBMS_XMLDOM-Paket mit DOM-Methoden

SpeicherungsansätzeSpeicherungsansätze– textbasiert (unstrukturierte Speicherung als CLOB)– strukturbasiert (objektrelationale Speicherung setzt XML-Schema voraus)– hybrid (semistrukturiert)

Page 35: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-35Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Definition einer Tabelle zur Aufnahme von XMLDefinition einer Tabelle zur Aufnahme von XML--DokumentenDokumenten

Einfügen von DokumentenEinfügen von Dokumenten

CREATE TABLE Berichte (

ID INTEGER, Inhalt XMLTYPE

) ;

INSERT INTO BerichteVALUES (123, XMLTYPE('<Bericht> ... <Autor>Jim Beam</Autor>

<Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum>

</Bericht>'));

XMLXML--ColumnColumn--AnsatzAnsatz

Page 36: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-36Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Definition einer Tabelle zur Aufnahme von XMLDefinition einer Tabelle zur Aufnahme von XML--DokumentenDokumenten

Einfügen von DokumentenEinfügen von Dokumenten

CREATE TABLE XMLBerichte OF XMLTYPE ;

INSERT INTO XMLBerichte VALUES (XMLTYPE('<Bericht> ... <Autor>Jim Beam</Autor>

<Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum>

</Bericht>'));

XMLXML--TableTable--AnsatzAnsatz

Page 37: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-37Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Benutzerdefinierte Funktion Benutzerdefinierte Funktion getDocumentgetDocument(...)(...)zum Einlesen von XMLzum Einlesen von XML--Dokumten Dokumten als als CLOBsCLOBs

CREATE DIRECTORY xmldir AS 'c:\xmldir';GRANT READ ON DIRECTORY xmldir TO PUBLIC WITH GRANT OPTION;

CREATE FUNCTION getDocument(filename VARCHAR2) RETURN CLOBAUTHID CURRENT_USER IS

xbfile BFILE;xclob CLOB;

BEGINxbfile := BFILENAME('xmldir', filename);DBMS_LOB.OPEN(xbfile);DBMS_LOB.CREATETEMPORARY(xclob, TRUE, DBMS_LOB.session);DBMS_LOB.LOADFROMFILE(xclob, xbfile, DBMS_LOB.getLength(xbfile));DBMS_LOB.CLOSE(xbfile);

RETURN xclob;END;/

INSERT INTO xmltable (doctext) VALUES (XMLTYPE(getDocument('Berichte.xml')));

Page 38: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-38Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLTYPEXMLTYPE--EigenschaftenEigenschaften

CREATE TABLE <Tabellenname> (<Spaltenname> XMLTYPE [<XML-Property>]

);

CREATE TABLE <Tabellenname> OF XMLTYPE [<XML-Property>]

<XML-Property> :=[XMLTYPE [COLUMN] <Spaltenname> [STORE AS {OBJECT RELATIONAL | CLOB (<LOB-Parameter>)}][XMLSCHEMA <url> ELEMENT [<url>#]<Element>]

Default: CLOB

CREATE TABLE XMLBerichte OF XMLTYPEXMLSCHEMA "http://www.dbs.ethz.ch/Berichte.xsd" ELEMENT "Bericht";

ist äquivalent zu

CREATE TABLE XMLBerichte OF XMLTYPEELEMENT "http://www.dbs.ethz.ch/Berichte.xsd#Bericht";

textbasiertetextbasierteSpeicherungSpeicherung

strukturbasiertestrukturbasierteSpeicherungSpeicherung(erfordert Angabe(erfordert Angabeeines passendeneines passendenXMLXML--Schema)Schema)

Page 39: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-39Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Methoden des XMLMethoden des XML--Datentyps XMLTYPE (1)Datentyps XMLTYPE (1)

XMLTYPE(<Wertausdruck>[,<SchemaXMLTYPE(<Wertausdruck>[,<Schema--URL>[, <URL>[, <ValidatedValidated>]] >]] [,<[,<WellformedWellformed>]) >]) ist der ist der KonstruktorKonstruktor

– Wertausdruck kann eine Zeichenkette oder eine Instanz eines benutzerdefinierten Typs sein

getClobValgetClobVal() () liefert XMLliefert XML--Wert als CLOBWert als CLOB

getStringValgetStringVal() () liefert XMLliefert XML--Wert als ZeichenketteWert als Zeichenkette

getNumValgetNumVal() () ist nur anwendbar auf einem XMList nur anwendbar auf einem XML--Wert, der einen Wert, der einen Textknoten darstellt, dessen Zeichenkette einer Nummer entsprichTextknoten darstellt, dessen Zeichenkette einer Nummer entsprichtt

isFragmentisFragment() () liefert 1, wenn Instanz mehr als ein Wurzelelement hatliefert 1, wenn Instanz mehr als ein Wurzelelement hat

existsNodeexistsNode(<(<XPathXPath--Ausdruck>[, <Namensraum>]) Ausdruck>[, <Namensraum>]) liefert 1 oder 0, je nach liefert 1 oder 0, je nach dem, ob der dem, ob der XPathXPath--Ausdruck einen Knoten liefert oder nichtAusdruck einen Knoten liefert oder nicht

extractextract(<(<XPathXPath--Ausdruck>[, <Namensraum>]) Ausdruck>[, <Namensraum>]) extrahiert einen Teil des extrahiert einen Teil des XMLXML--Wertes entsprechend eines Wertes entsprechend eines XPathXPath--AusdruckesAusdruckes

Page 40: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-40Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Methoden des XMLMethoden des XML--Datentyps XMLTYPE (2)Datentyps XMLTYPE (2)

transformtransform(<XML(<XML--Wertausdruck>) Wertausdruck>) transformiert einen XMLtransformiert einen XML--Wert gemäss Wert gemäss einem anderen XMLeinem anderen XML--Wert, der ein Wert, der ein StylesheetStylesheet repräsentiertrepräsentiert

toObjecttoObject() () konvertiert einen XMLkonvertiert einen XML--Wert in einen ObjektwertWert in einen Objektwert

isSchemaBasedisSchemaBased() () liefert 1, wenn der XMLliefert 1, wenn der XML--Wert aus einen vorgegebenen Wert aus einen vorgegebenen Schema basiertSchema basiert

getSchemaURLgetSchemaURL() () liefert die URL des Schemasliefert die URL des Schemas

getRootElementgetRootElement() () liefert das Wurzelelement (bei XMLliefert das Wurzelelement (bei XML--Fragmenten Null)Fragmenten Null)

createSchemaBasedXMLcreateSchemaBasedXML(<Schema(<Schema--URK>) URK>) fügt dem XMLfügt dem XML--Wert ein Schema Wert ein Schema hinzuhinzu

createNonSchemaBasedXMLcreateNonSchemaBasedXML() () hebt die Assoziation zu einem Schema auf hebt die Assoziation zu einem Schema auf (falls eine vorhanden war)(falls eine vorhanden war)

Page 41: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-41Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Indexierung Indexierung

IndexunterstützungIndexunterstützung– Wertindexe – Volltextindex

– Pfadindex

– Funktionaler Index

Anfrage, die den Anfrage, die den funktionalen Index funktionalen Index nutzt:

CREATE INDEX xmlfulltextidx ON Berichte(Inhalt) INDEXTYPE IS CTXSYS.CONTEXT;

CREATE INDEX xmlpfadidx ON Berichte(Inhalt) INDEXTYPE IS CTXSYS.CTXXPATH;

CREATE INDEX xmlfunktionalidx ON Berichte(Inhalt.EXTRACT('//Autor/text()').getStringVal());

nutzt:

SELECT IDFROM BerichteWHERE EXTRACT(Inhalt, '//Autor/text()').getStringVal()

= 'Jim Beam';

Page 42: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-42Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

AnfragenAnfragen

Unterstützung des SQL/XMLUnterstützung des SQL/XML--StandardsStandards– XMLAGG– XMLELEMENT– XMLATTRIBUTE– XMLFOREST

Plus weitere Funktionen wie Plus weitere Funktionen wie – XMLSEQUENCE– XMLCOLATTVAL– EXTRACT– EXISTSNODE etc.

Volltextsuche durch Einbindung des Volltextsuche durch Einbindung des IntermediaIntermedia--TextText--Pakets Pakets

SELECT SCORE(1), doctextFROM xmltableWHERE CONTAINS(doctext, 'Jim') > 0ORDER BY SCORE(1);

Page 43: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-43Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLXML--FunktionenFunktionen

basieren auf den XMLTYPEbasieren auf den XMLTYPE--MethodenMethoden

Auswahl von OracleAuswahl von Oracle--XMLXML--FunktionenFunktionen– XMLTYPE erzeugt einen XML-Wert aus einem CLOB – EXTRACT extrahiert Knoten mittels eines XPath-Ausdruckes– EXTRACTVALUE extrahiert einen Knoten mittels eines XPath-Ausdruckes– EXISTSNODE überprüft, ob ein bestimmter Knoten existiert– XMLELEMENT erzeugt ein XML-Element aus einer Werteliste– XMLATTRIBUTES erzeugt XML-Attribute– XMLCOLATTVAL liefert einen Wald von XML-Elementen mit Tag <column>– XMLFOREST erzeugt einen Wald von XML-Elementen– XMLCONCAT konkateniert mehrere XML-Elemente zu einem Wald– XMLAGG aggregriert die XML-Elemente einer Gruppe– XMLUPDATE manipuliert einen XMLWert– …

Page 44: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-44Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLTYPE (1)XMLTYPE (1)

erzeugt einen XMLerzeugt einen XML--Wert Wert

Beispiel:Beispiel:

XMLTYPE(<Zeichenkettenausdruck> )

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLTYPE('<Mitarbeiter Name="' || Name || '"> <Gehalt>' || 12 * Gehalt || '</Gehalt> </Mitarbeiter>') AS Angestellte

FROM Mitarbeiter;

<Mitarbeiter Name="Joe"><Gehalt>24000</Gehalt>

</Mitarbeiter>

<Mitarbeiter Name="Jim"><Gehalt>42000</Gehalt>

</Mitarbeiter>

Angestellte

Simulation von XMLGEN partiell Simulation von XMLGEN partiell möglich (beschränkt auf möglich (beschränkt auf XPathXPath--Ausdrücke; kein Ausdrücke; kein XQueryXQuery)! Vergleiche )! Vergleiche mit dem entsprechenden Beispiel aus mit dem entsprechenden Beispiel aus Kapitel 7 (SQL/XML)Kapitel 7 (SQL/XML)

Page 45: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-45Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLTYPE (2)XMLTYPE (2)

872 <Autoren>JackJim Beam</Autoren>234 <Autoren>Johnny Walker</Autoren>123 <Autoren>Jim Beam</Autoren>ID Autorennamen

872 <Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor> <Autor>Jim Beam</Autor> <Datum>21.11.2002</Datum> </Bericht>

234 <Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum> <Titel>Whisky, Walking and Talking</Titel> ... </Bericht>

123 <Bericht> ... <Autor>Jim Beam</Autor> <Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>

IDBerichte Inhalt

SELECT ID, XMLTYPE('<Autoren>' || EXTRACT(Inhalt, '//Autor/text()').getClobVal() || '</Autoren>') AS Autorennamen

FROM Berichte;

Page 46: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-46Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

EXTRACTVALUEEXTRACTVALUE

extrahiert einen durch eine extrahiert einen durch eine XPathXPath--Anfrage definierten Ausschnitt des XMLAnfrage definierten Ausschnitt des XML--Wert, Wert, der einem einzelnen Knotenwert entsprichtder einem einzelnen Knotenwert entspricht

Beispiel:Beispiel:

EXTRACTVALUE(<XML-Wertausdruck>, <XPath-Ausdruck>[,<Wertausdruck>])

234 <Title>Whisky, Walking and Talking</Title>

872 <Title>Great Single Malts</Title>

123 <Titel>Beam Dir einen Whisky</Titel> ID Berichttitel

SELECT ID, XMLTYPE('<Titel>' || EXTRACTVALUE(Inhalt, '//Titel') || '</Titel>') AS BerichttitelFROM Berichte;

Page 47: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-47Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

EXTRACTEXTRACT

extrahiert einen durch eine extrahiert einen durch eine XPathXPath--Anfrage definierten Ausschnitt des XMLAnfrage definierten Ausschnitt des XML--WertesWertes

Beispiel:Beispiel:

EXTRACT(<XML-Wertausdruck>, <XPath-Ausdruck>[, <Namensraum>])

234 <Title>Whisky, Walking and Talking</Title>

872 <Title>Great Single Malts</Title>

123 <Titel>Beam Dir einen Whisky</Titel> ID Berichttitel

SELECT ID, EXTRACT(Inhalt, '//Titel') AS BerichttitelFROM Berichte;

Page 48: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-48Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

EXISTSNODEEXISTSNODE

ergibt 1 (ergibt 1 (TrueTrue), wenn die Anfrage auf dem XML), wenn die Anfrage auf dem XML--Wert ein nichtWert ein nicht--leeres Ergebnis leeres Ergebnis liefertliefert

Beispiel:Beispiel:

EXISTSNODE(<XML-Wertausdruck>, <XPath-Ausdruck> [, <Namensraum>])

SELECT IDFROM BerichteWHERE EXISTSNODE(Inhalt, '//Autor[text()="Jack"]') = 1; 872

ID

872 <Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor> <Autor>Jim Beam</Autor> <Datum>21.11.2002</Datum> </Bericht>

234 <Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum> <Titel>Whisky, Walking and Talking</Titel> ... </Bericht>

123 <Bericht> ... <Autor>Jim Beam</Autor> <Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>

IDBerichte Inhalt

Page 49: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-49Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLELEMENTXMLELEMENT

erzeugt ein XMLerzeugt ein XML--ElementElement

Beispiel:Beispiel:

XMLELEMENT(NAME <Elementname>[, XMLATTRIBUTES(<XML-Attributliste>)] [, <Wertausdrucksliste>])

<XML-Attribut> := <Wertausdruck> [AS <Attributname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLELEMENT(NAME "Mitarbeiter", XMLATTRIBUTES(Gehalt), Name) AS Element

FROM Mitarbeiter;

<Mitarbeiter GEHALT="2000">Joe</Mitarbeiter>

<Mitarbeiter GEHALT="3500">Jim</Mitarbeiter>

Element

Page 50: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-50Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLCOLATTVALXMLCOLATTVAL

erzeugt XMLerzeugt XML--Elemente aus SQLElemente aus SQL--WertausdrückenWertausdrücken

Beispiel:Beispiel:

XMLCOLATTVAL(<XML-Spaltenwerteliste>)

<XML-Spaltenwerte>:=<Wertausdruck> [AS <Elementname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLCOLATTVAL(Name, 12*Gehalt AS Gehalt)

AS MitarbeitergehaltFROM Mitarbeiter;

<column name="NAME">Joe</column><column name="GEHALT>24000</column>

<column name="NAME">Jim</column><column name="GEHALT>4200</column>

Mitarbeitergehalt

Page 51: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-51Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLFORESTXMLFOREST

erzeugt einen Wald von XMLerzeugt einen Wald von XML--Elementen mit optionalen AttributenElementen mit optionalen Attributen

Beispiel:Beispiel:

XMLFOREST(<XML-Forest-Elementliste>)

<XML-Forest-Element>:=<Wertausdruck> [AS <Elementname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLFOREST(Name, XMLELEMENT(NAME "Euro", 12*Gehalt)

AS Einkommen) AS MitarbeitergehaltFROM Mitarbeiter;

<NAME>Joe</NAME><Einkommen> <Euro>24000</Euro> </Einkommen>

<NAME>Jim</NAME>< Einkommen> <Euro>42000</Euro> </Einkommen>

Mitarbeitergehalt

Page 52: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-52Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLCONCATXMLCONCAT

konkateniertkonkateniert XMLXML--Elemente zu einem WaldElemente zu einem Wald

Beispiel:Beispiel:

XMLCONCAT(<XML-Wertausdrucksliste>)

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLCONCAT(XMLELEMENT(NAME "Name", Name), XMLELEMENT(NAME "Euro", 12*Gehalt))

AS MitarbeitergehaltFROM Mitarbeiter;

<Name>Joe</Name><Euro>24000</Euro>

<Name>Jim</Name><Euro>42000</Euro>

Mitarbeitergehalt

Page 53: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-53Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLAGGXMLAGG

aggregiertaggregiert die XMLdie XML--Elemente einer GruppeElemente einer Gruppe

Beispiel:Beispiel:

XMLAGG(<XML-Wertausdruck>[ORDER BY, <Sortierausdrucksliste>] )

SELECT Name, XMLAGG(XMLELEMENT(NAME "Gehalt", Gehalt))AS Einkommen

FROM MitarbeiterGROUP BY Name;

Joe

Jim

2000

3500

Name GehaltMitarbeiter

Jim 5000

<Gehalt>2000</Gehalt>

<Gehalt>3500</Gehalt><Gehalt>5000</Gehalt>

Joe

Jim

Name Einkommen

Page 54: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-54Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLSEQUENCEXMLSEQUENCE

erzeugt aus XMLerzeugt aus XML--Elementen ein Array von XMLElementen ein Array von XML--WertenWerten

Beispiel:Beispiel:

XMLSEQUENCE(<XML-Wertausdruck>)

234 XMLSEQUENCETYPE(XMLTYPE(<Autor>Johnny Walker</Autor>))

872 XMLSEQUENCETYPE(XMLTYPE(<Autor>Jack</Autor>),XMLTYPE(<Autor>Jim Beam</Autor>))

123 XMLSEQUENCETYPE(XMLTYPE(<Autor>Jim Beam</Autor>))ID Autoren

SELECT ID, XMLSEQUENCE(EXTRACT(Inhalt, '//Autor')) AS AutorenFROM Berichte;

Page 55: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-55Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Manipulation Manipulation —— UPDATEXMLUPDATEXML

872 <Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor> <Autor>Glenn</Autor> <Datum>21.11.2002</Datum> </Bericht>

234 <Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum> <Titel>Whisky, Walking and Talking</Titel> ... </Bericht>

123 <Bericht> ... <Autor>Glenn</Autor> <Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>

IDBerichte Inhalt

manipuliert einen durch eine manipuliert einen durch eine XPathXPath--Anfrage definierten Ausschnitt des XMLAnfrage definierten Ausschnitt des XML--WertesWertes

Beispiel:Beispiel:

UPDATEXML(<XML-Wertausdruck>, <Ersetzungsliste>[,<Namensraum>])

<Ersetzung> := <XPath-Ausdruck>,<Wert-Ausdruck>

UPDATE BerichteSET Inhalt = UPDATEXML(Inhalt, '//Autor[text()="Jim Beam"]/text()', 'Glenn');

Page 56: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-56Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

XMLXML--SichtenSichten

ermöglichen XMLermöglichen XML--basierte Sicht auf SQLbasierte Sicht auf SQL-- bzw. XMLbzw. XML--WerteWerte

basieren auf dem Prinzip der Objektsichtenbasieren auf dem Prinzip der Objektsichten– der Objekttyp ist hier XMLTYPE

BeispielBeispiel::

CREATE VIEW BerichteSicht OF XMLTYPEWITH OBJECT ID DEFAULTAS SELECT VALUE(x)

FROM XMLBerichte xWHERE EXTRACT(VALUE(x), '//Autor/text()').getStringVal() = 'Jack';

Page 57: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-57Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Export von Export von Datenbankinhalten mitDatenbankinhalten mit XMLXML--SyntaxSyntax

Standardabbildung Standardabbildung von SQL von SQL nach nach XMLXML– Spalten ergeben Elemente der ersten Ebene (top level) – Einfache Typen (mit skalaren Werten) als Elemente mit PCDATA– Strukturierte Typen und ihre Attribute auf Elemente mit Subelementen für die

Attribute abgebildet– Komplexe Attribute als hierarchisch geschachtelte Elemente – Aus Kollektionstypen werden Listen von Elementen– Objektreferenzen und referenzielle Integritätsbedingungen werden auf

ID/IDREF innerhalb eines Dokuments abgebildet– Tabelleninhalt wird auf ROWSET-Elemente abgebildet

Benutzerdefinierte Benutzerdefinierte Transformation von SQL Transformation von SQL nachnach XML XML mitmit XSLT XSLT möglichmöglich

<

</

ROWSET> <ROW num="1"> … </ROW> … <ROW num="n"> … </ROW>ROWSET>

Page 58: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-58Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung OracleZusammenfassung Oracle--XMLXML--UnterstützungUnterstützung

PfadindexPfadindex

SQLSQL--Methoden mit Methoden mit XPath XPath 1.01.0ManipulationenManipulationenmit dem Intermediamit dem Intermedia--TextText--ErweiterungspaketErweiterungspaketVolltextsucheVolltextsucheSQLSQL--Methoden mit Methoden mit XPath XPath 1.01.0AnfragenAnfragen

durch XMLdurch XML--Funktionen, Schemageneratoren, Funktionen, Schemageneratoren, XMLXML--SichtenSichten

Abbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

VolltextindexVolltextindexWertindexWertindex

IndexeIndexevorhandenvorhandenXMLXML--DatentypDatentyp

texttext-- oder strukturbasiertoder strukturbasiertArt der SpeicherungArt der SpeicherungValidierungValidierung möglichmöglichSchemabeschreibungSchemabeschreibungerweiterbar, objektrelationalerweiterbar, objektrelationalModellModellXMLXML--SpeicherungSpeicherung

Page 59: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-59Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Kritik des Ansatzes von OracleKritik des Ansatzes von Oracle

Gute Unterstützung von Standards Gute Unterstützung von Standards – XPath 1.0– XML-Schema – SQL/XML

Besonderheiten:Besonderheiten:– XML-Sichten– Tools für Export und Import von XML-Schemata– XSLT-Prozessor, XML-Prozessoren (DOM, SAX),– XML-Schema Validator

Problem: zu viele parallele, redundante Ansätze Problem: zu viele parallele, redundante Ansätze – Konsolidierung erforderlich!– Hier nicht weiter betrachtet!

Page 60: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-60Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

ExcelonExcelon -- ArchitekturArchitektur

Page 61: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-61Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung Zusammenfassung ExcelonExcelon

PfadindexPfadindex

XUpdate XUpdate (SQL(SQL--ähnlich mit ähnlich mit XPath XPath 1.0)1.0)ManipulationenManipulationenVolltextsucheVolltextsuche

XQL, XQL, XPathXPath 1.0 + Teile von 1.0 + Teile von XQuery XQuery 1.01.0AnfragenAnfragen

nativnativAbbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

VolltextindexVolltextindexWertindexWertindex

IndexeIndexe——XMLXML--DatentypDatentyp

modellbasiertmodellbasiertArt der SpeicherungArt der SpeicherungValidierungValidierung möglichmöglichSchemabeschreibungSchemabeschreibungobjektorientiert (DOM)objektorientiert (DOM)ModellModellXMLXML--SpeicherungSpeicherung

Page 62: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-62Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

TaminoTamino -- Architektur (1)Architektur (1)

Page 63: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-63Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

TaminoTamino -- Architektur (2)Architektur (2)

XML Parser:XML Parser:Wohlgeformtheit & Wohlgeformtheit & KorrektheitKorrektheit

Object ProcessorObject Processor::Speichert XML und SQL Speichert XML und SQL DatenDaten

Query Interpreter:Query Interpreter:XX--Query (Query (XPathXPath--ähnlich) ähnlich) Interpretation gemäß Interpretation gemäß Data Data MapMap

Objekt Composer:Objekt Composer:Generiert XML Dokumente Generiert XML Dokumente aus Anfragenaus Anfragen

UtilitiesUtilities::Beschleunigung beim LadenBeschleunigung beim Laden

Page 64: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-64Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung Zusammenfassung TaminoTamino

PfadindexPfadindex

??ManipulationenManipulationenVolltextsucheVolltextsuche

XQL, XQL, XPathXPath 1.0 mit Erweiterungen1.0 mit ErweiterungenAnfragenAnfragen

nativnativAbbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

VolltextindexVolltextindexWertindexWertindex

IndexeIndexe——XMLXML--DatentypDatentyp

modellbasiertmodellbasiertArt der SpeicherungArt der SpeicherungValidierungValidierung möglichmöglichSchemabeschreibungSchemabeschreibungnativnativModellModellXMLXML--SpeicherungSpeicherung

Page 65: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-65Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Poet Poet -- ArchitekturArchitektur

Page 66: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-66Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung PoetZusammenfassung Poet

PfadindexPfadindex

OQLOQLManipulationenManipulationen——VolltextsucheVolltextsucheOQLOQLAnfragenAnfragen

über Javaüber Java--MethodenMethodenAbbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

——VolltextindexVolltextindexWertindexWertindex

IndexeIndexe——XMLXML--DatentypDatentyp

modellbasiert, strukturiertmodellbasiert, strukturiertArt der SpeicherungArt der Speicherungfür strukturierte Speicherung erforderlichfür strukturierte Speicherung erforderlichSchemabeschreibungSchemabeschreibungobjektorientiertobjektorientiertModellModellXMLXML--SpeicherungSpeicherung

Page 67: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-67Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

InfonyteInfonyte--DB DB -- ArchitekturArchitektur

Page 68: XML und Datenbankenwebarchiv.ethz.ch/dbs/education/xml/WS_02/folien/11...: Architektur Anwendung DB2 XML Extender XML-Dokumente DAD – Document Access Definition Datei-system Datei-system

11-68Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)

Zusammenfassung Zusammenfassung InfonyteInfonyte--DBDB

PfadindexPfadindex

über DOMüber DOM--MethodenMethodenManipulationenManipulationen——VolltextsucheVolltextsucheXPathXPath 1.0 + Teile von 1.0 + Teile von XQueryXQuery 1.01.0AnfragenAnfragen

nativnativAbbildungen von DB auf XMLAbbildungen von DB auf XML

Anfragen und ManipulationAnfragen und Manipulation

VolltextindexVolltextindexWertindexWertindex

IndexeIndexeXMLXML--DatentypDatentyp

modellbasiertmodellbasiertArt der SpeicherungArt der SpeicherungValidierungValidierung möglichmöglichSchemabeschreibungSchemabeschreibungnativ (DOM)nativ (DOM)ModellModellXMLXML--SpeicherungSpeicherung