XML in der Oracle Datenbank Oracle XML DB Eine kurze Einführung Gruppe A Michaela Geierhos Galina Hinova Maximilian Schöfmann AGENDA ● Warum XML in einer Datenbank? ● Was bietet die Oracle XML DB? ● Unterschiedliche Speichermöglichkeiten ● Ein Beispiel ● Die Oracle XML DB Architektur ● Zugriffe auf die Datenbank ● Integrationsszenarien ● Tools für die Arbeit mit einer XML DB 11.01.2006 XML in Oracle 2 Warum XML in einer Datenbank? ● ● ● ● ● Weiterverarbeitung von relationalen Daten in XML Performantes Einfügen, Verändern und Bereitstellen von XML Dokumenten Suche innerhalb eines XML Dokuments oder einer Anzahl von XML Dokumenten Zugriff über Standardprotokolle wie FTP, WebDAV und HTTP Verwendung von Technologien wie Java, SQL, XPATH und XSLT ● Zusätzliche Validierung (durch Trigger und Contstraints) ● Einfache Handhabung und Verwaltung in einem Server 11.01.2006 XML in Oracle 3 Was bietet die Oracle XML DB? ● SQL-Methoden für XML, sowie XML/SQL-Dualität ● Support für offene Standards (u.a. ANSI: SQLX) – W3C: DOM, XML Schema, XSLT, XQuery – IETF: WebDAV – HTTP, FTP, JNDI, Web Services ● Integriertes XML Repository in das RDBMS ● XML Schema Integrität und RDBMS Integritätsregeln für XML Daten ● XML Views über relationale Daten und umgekehrt ● XML spezifische Performance, Skalierbarkeit und Sicherheit ● Leichte Darstellbarkeit durch Transformation im Server ● Bereitstellung geeigneter Tools für die Arbeit mit XML in der DB 11.01.2006 XML in Oracle 4 11.01.2006 XML in Oracle 5 XMLType Storage ● ● ● ● Ist ein XML Schema der Oracle XML DB bekannt, werden alle XML Elemente für XMLType Tabellen, Tabellen mit XMLType Spalten und XML Type Sichten auf die entsprechenden DB Tabellen verwiesen, auf welche im XML Repository zugegriffen werden kann. Daten in XMLType Tabellen und Tabellen mit XMLType Spalten können in s.g. CLOBs (Character Large Objects) oder weiterhin als normales XML gespeichert werden (Native Speicherung). Daten in XMLType Views können in lokalen Tabellen oder remote Tabellen gespeichert und später über DBLinks referenziert werden. XML Type Tabellen und Sichten können u.a. mittels B*-Bäumen indiziert werden. 11.01.2006 XML in Oracle 6 Unterschiedliche Speichermöglichkeiten Die Speicherart richtet sich nach den Anforderungen der Anwendung: 11.01.2006 XML in Oracle – Konkurrierender Zugriff – Vokabularänderung – Lade-Performance – Abfrage-Performance – Redundanzen – XML Schema Support 7 Unterschiedliche Speichermöglichkeiten (I) 11.01.2006 ● Sperre auf Elementebene ● Multi-User-Zugriff ● Relationale Indizierung ● Performance ● Nur SQL ● XML Information ● XML Validierung ● Relationale Abbildung XML in Oracle 8 Unterschiedliche Speichermöglichkeiten (II) ● Flexible Speicherung ● Performance ● Nur Text-Index ● 11.01.2006 Sperre auf Dokumentenebene ● Redundanz ● XML Validierung XML in Oracle 9 Unterschiedliche Speichermöglichkeiten (III) ● Standard konformer Zugriff ● Flexibilität ● XML-Indizierung ● Performance ● XML Validierung ● 11.01.2006 XML in Oracle Sperre auf Dokumentenebene 10 Unterschiedliche Speichermöglichkeiten (IV) ● Sperre auf Elementebene ● W3C und SQL Standards ● XML-Indizierung ● XML-Validierung ● 11.01.2006 Intelligentes DOMHandling ● Performance ● Flexibilität XML in Oracle 11 Ein Beispiel 11.01.2006 XML in Oracle 12 Beispiel: XML Schema 11.01.2006 XML in Oracle 13 XML DB Schema Attribute 11.01.2006 XML in Oracle 14 11.01.2006 XML in Oracle 15 Abbildung auf Objekte 11.01.2006 XML in Oracle 16 Was passiert im Hintergrund? 11.01.2006 XML in Oracle 17 Beispiel: Native Speicherung SQL> Create table PURCHASE_ORDER_TABLE 2 (PO_NUMBER number(16), PURCHASE_ORDER xmltype) 3 ) 4 / Table created. SQL> INSERT into PURCHASE_ORDER_TABLE values (1234, XMLTYPE( 2 ‘<PurchseOrder> 3 <Reference>Khabbazian-20030306123456</Reference> 4 <Actions/> 5 <Reject/> 6 <Requestor>Ali Khabbazian</Requestor> ....... 18 </Purchase>‘) 19 / 1 row created. SQL> 11.01.2006 XML in Oracle 18 Die Oracle DB Architektur 11.01.2006 XML in Oracle 19 Zugriffe auf die Datenbank ● HTTP-Zugriff auf Daten im XML Repository – Auf Relationale und XML Tabellen – Suche durch Xpath-Ausdrücke – Stylesheet-Transformationen in der DB ● WebDAV-Zugriff auf Daten im XML Repository ● FTP-Zugriff (durch FTP-Server) ● Zugriffe mittels SQL durch die Oracle Net Services, sowie JDBC oder Web Services. 11.01.2006 XML in Oracle 20 Oracle XML DB Repository 11.01.2006 XML in Oracle 21 Integration: Relationale Views 11.01.2006 XML in Oracle 22 Beispiel für eine Relationale View 11.01.2006 XML in Oracle 23 Integration: XML-Views 11.01.2006 XML in Oracle 24 XML Generierung aus der DB 11.01.2006 XML in Oracle 25 XML Developer‘s Kit (XDK) ● ● ● Beinhaltet wichtige Komponenten zum Lesen, Manipulieren, Transformieren und Darstellen von XMLDokumenten. Dient zum einfachen Erstellen Web-basierter Datenbankapplikationen. Der XDK ist verfügbar für – Java – JavaBeans – C – C++ – PL/SQL 11.01.2006 XML in Oracle 26 XML SQL Utility - XSU ● ● Das Werkzeug zur Umwandlung der relationalen Daten ins XML-Format und der XML-Daten in die relationale Form Das Werkzeug zum stückweisen (piecewise) Update von XML-Dokumenten. ● XSU-Funktionalitäten sind erreichbar über – Java API – Java Befehl – PL/SQL API 11.01.2006 XML in Oracle 27 Piecewise Update 11.01.2006 XML in Oracle 28 Oracle XML DB: Zusammenfassung 11.01.2006 XML in Oracle 29 Referenzen ● ● XML Database Developer’s Guide (Kap. 1-3) Ulrike Schwinn: XML in der Oracle Datenbank „rational and beyond“ [Folien] http://doesen0.informatik.uni-leipzig.de/proceedings/slides/btw2003_ind_schwinn.pdf [Paper] http://doesen0.informatik.uni-leipzig.de/proceedings/paper/IP6.pdf ● Ali Khabbazian: Oralce 9i XML Datenbank [Folien] http://www.doag.org/pub/docs/regio/hannover/2003-03/Oracle_9i_XML_Datenbank.ppt ● Carsten Czarski: Java, XML und Oracle Database 10g – What's new? [Paper] http://www.doag.org/pub/docs/regio/bremen/2004-02/JavaXMLWhatsNew.pdf 11.01.2006 XML in Oracle 30