XML Speicherung in der Oracle Datenbank CLOB, Objektrelational oder Binary XML, das ist die Frage

Ähnliche Dokumente
Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

XML in der Oracle Datenbank

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

Oracle XML DB: XML Schema Handling für Entwickler und Administratoren

XML in der Oracle Datenbank "relational and beyond"

XML - Extensible Markup Language. Agenda - Oracle XML DB

Relational and Beyond : Oracle9i, die native XML Datenbank

XML in Oracle 12c. Wolfgang Nast

7. XML-Datenbanksysteme und SQL/XML

Ulrike Schwinn Dipl.-Math. Oracle Deutschland GmbH. Kultur und Informatik - Datenverwaltung 04.Juli 2007

<Insert Picture Here> XML und die Oracle Datenbank

<Insert Picture Here> XML DB Vorlesung Ulrike Schwinn Teil 3

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

<Insert Picture Here> XML DB Vorlesung Ulrike Schwinn Teil 2

Projektseminar "Texttechnologische Informationsmodellierung"

Dipl. Wirtsch.-Ing. Lars Geldner Nürnberg,

XML-Dokumente und die Oracle-Datenbank

5. Programmierschnittstellen für XML

XML in Oracle. Workshop. Ing. Markus Gamperl

7. XML-Datenbanksysteme und SQL/XML

5. Programmierschnittstellen für XML

XML-Abfragen der neuen Art: XQuery

XML, QPATH, XQUERY: NEUE KONZEPTE FÜR DATENBANKEN. Prüfungsvorbereitung

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS noch einmal. XQuery... Andreas Schmidt Oracle XQuery 1/12

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Seminar XML und Datenbanken Andreas Krug. XML -Unterstützung durch IBM DB2

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

Eclipse und EclipseLink

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15

Datenmodellierung im Zeitalter agiler Softwareentwicklung

Carsten Czarski, Nina Neuwirth Oracle Deutschland. Volltextsuche in XML-Dokumenten mit Oracle

XML in der Oracle Datenbank relational and beyond

Transit-Abkommen Mit Views XML relational speichern

Integration der IBM DB2 UDB 9.5 (Viper) als Messagestore in das Demaq-Ausführungssystem

DBMS für spezielle Anwendungen XML als Mittel der Datenbank-Interoperabilität

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

XML-Schnittstellen zum Import und Export von Daten für eine Oracle DB Ein Erfahrungsbericht DOAG 2006

ORACLE und IBM DB2 Datentypen

Bäume in RDBMS. Enthalten beide: Nested-Set Model of Trees

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

XML und Datenbanken. Tobias Lohmann Michael Mussil Mark Wiesemann. 4. Februar 2003

Bewährt und vielfach im Einsatz: Oracle XML DB

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

SQL (Structured Query Language) Schemata Datentypen

Nonstandard Datenbanken

Advanced Queues und XML-DB Integration von Oracle in einer SOA mit Hilfe von asynchroner Kommunikation und XML-Verarbeitung

<Trainingsinhalt> XML und Datenbanken

How To: Oracle XML DB

Daten, Datenbanken, Datenbankmanagmentsysteme

Validating XML Parser. Application. XML-Datei XML-Datei XML-Datei XML-Datei XML-Datei. XML-Schema oder DTD

Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren

Oracle 10g Einführung

Datenbankbasierte Lösungen

Persistenz. Ralf Gitzel

XML in kommerziellen Datenbanksystemen. Vortrag im Rahmen des Seminares: XML Datenbanken Cordula Bauer

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Geschäftsprozessmodellierung Einführung, Analyse und Simulation

Konzeptionelle Modellierung von XML-Dokumenttypen

SQL structured query language

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

XQuery Implementation in a Relational Database System

Hans Buschmann. InnoData GmbH

XML-Handling in SQL Server 2000

Java und XML 2. Java und XML

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Dokumentautomation mit XML am Beispiel einer Banddiskografie

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015 SQLX. Christian Senger/Andreas Schmidt Oracle und XML (SQLX) 1/14

Dynamische Generierung von XML

Dokumentation zur Anlage eines JDBC Senders

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS 2016 SQLX. Andreas Schmidt Oracle und XML (SQLX) 1/15

<einfachesxml> Tilo Henke Senior Berater Oracle Berlin. DOAG Regionaltreffen Berlin Brandenburg

quick documentation Inhalt Datenmodellierung

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Zukunft der Oracle Applikationsentwicklung: ADF & XDB

Development auf der Plattform SAP HANA

Erzeugung und Veränderung von Tabellen

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Oracle, PL/SQL und XML

bitflux CMS ein crossmedia-fähiges opensource System ein Vortrag von Marcel Linnenfelser

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Oracle: Abstrakte Datentypen:

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Kap. 5.3: SAP-Datenmodell, Metadatenverwaltung

Oracle SQL Developer Data Modeling

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Verwaltung von OBI Metadaten: XML-Integration - die Lösung aller Probleme?

Relationales Datenbanksystem Oracle

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Neue Features Oracle Database 12.2 Wann denn endlich?

Transkript:

XML Speicherung in der Oracle Datenbank CLOB, Objektrelational oder Binary XML, das ist die Frage Michael Pergande, PROMATIS software GmbH Mannheim, 8. November 2012 1

Agenda XML Allgemein Oracle XML DB Projektkontext und Hintergrund Speicherformen von XMLType Transformation von CLOB zu Objektrelational Zusätzliche Problemstellungen Zusammenfassung 2 2012 PROMATIS software GmbH

XML Allgemein Was macht es so interessant? Universelles Austauschformat Herstellerunabhängig (W3C Standards) Trennung zwischen Inhalt, Struktur und Layout ( XSL/XSLT Extensible Stylesheet Language) Strukturdefinitionen (XSD- XML Schema Definition, DTD Document Type Definition) Abbildung hierarchischer, verschachtelter, rekursiver Strukturen Transport strukturierter und unstrukturierter Informationen XML Dokument XSD XSL/XSLT Inhalt Struktur Layout (Stylesheets) Erschließung der Semantik Strukturdefinitionen können konsumiert werden 3 2012 PROMATIS software GmbH

XML Allgemein Anforderungen an eine XML Datenbank Verarbeitung und Generierung von XML-Dokumenten Umsetzung der W3C-Standards, insbesondere Fähigkeit zur Navigation über alle XML-Strukturen ( Xpath, Xquery) Zugriff auf spezifische Informationsinhalte Unterstützung von Programmierschnittstellen Bspw. DOM- Document Object Model, SAX Simple API for XML Integration in bestehende Systemumgebungen Unterstützung bei Performance-, Skalierbarkeits- und Sicherheitsaspekten 4 2012 PROMATIS software GmbH

Oracle XML DB Funktionsumfang SQL-Methoden für XML, sowie XML-/ SQL-Dualität Support für offene Standards: 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 Dateien XML Views über relationale Daten und umgekehrt XML spezifische Performance, Skalierbarkeit und Sicherheit Bereitstellung geeigneter Tools für die Arbeit mit XML in der DB 5 2012 PROMATIS software GmbH

Oracle XML DB Architektur 6 2012 PROMATIS software GmbH

Oracle XML DB Vorteile Steuerung durch das DBMS Vereinfachung bei objektrelationalen Abbildungen (OR-Mapping) Eigenes Repository mit objektrelationaler Speicherung Wahlmöglichkeiten zwischen strukturierter und unstrukturierter Ablage Nativer SQL-Zugriff, API-Unterstützung Einsetzbarkeit relationaler Konstrukte (Tabellen, Views, Indizes) Abbildbarkeit von XML-Eigenschaften auf relationalen DB-Konstrukten und umgekehrt 7 2012 PROMATIS software GmbH

Projektkontext und Hintergrund Horus Business Modeler Profi-Tool für Modellierung und Simulation von Geschäftsprozessen. Nur 4 verschiedene Modellierungssprachen: Petri-Netze (XML-Netze), Organigramme, Semantisch-hierarchische Strukturen und ein Objekt/Relationship-Modell Basis bildet ein Oracle -basiertes Repository, in dem die Modelle in strukturierter Form abgelegt werden. 8 2012 PROMATIS software GmbH

Projektkontext und Hintergrund HORUS Repository 9 2012 PROMATIS software GmbH

Projektkontext und Hintergrund Beispiel-XML Horus Modelldaten als XML-File Metadaten eines Objektmodells inklusive Informationen über Entitäten, Attributen 10 2012 PROMATIS software GmbH

Speicherformen von XMLType CLOB Unstrukturiert Innerhalb der DB wird ein verstecktes CLOB angelegt XML wird als Ganzes darin gespeichert Bei fehlender Angabe der Storage-Clause beim Anlegen der Tabelle wird textbasierte Speicherung angenommen XML Daten: workspace.xml Exakte Physische Repräsentation innerhalb der DB Create XML Type Tables 11 2012 PROMATIS software GmbH

Speicherformen von XMLType Objektrelational Berücksichtigung der Struktur der XML-Dokumente Nur möglich mit entsprechender Schemaregistrierung Bekanntmachung XML-Schema mit Datenbank Funktion registerschema des Packages DBMS_XMLSCHEMA Entsprechende objektrelationale Tabellen und Views werden anhand XML- Schema erzeugt XML Schema Definition: workspace.xsd Schemaregistrierung XML Daten: workspace.xml Create XML Type Tables Mapping XML Elemente 12 2012 PROMATIS software GmbH

Speicherformen von XMLType Binary XML Neu seit Oracle Version 11g XML-Dokumente werden in speziell entwickeltem Binär-Format abgespeichert Flexibler Schema-Support XML-Dokumente, die mehreren Schemata genügen können Speicherung in gleicher Spalte XML Schema Definition: workspace.xsd XML Daten: workspace.xml Binäres Mapping XML-Schema Create XML Type Tables Binäres Abspeichern 13 2012 PROMATIS software GmbH

Speicherungsformen in XML DB Der Vergleich: DB-Operationen Anlegen der Tabelle: -- Tabelle für die textbasierte Speicherung create table xml_text of xmltype xmltype store as clob; -- Tabelle für die objektrelationale Speicherung create table xml_or of xmltype xmltype store as object relational xmlschema "http://www.horus.biz/xml-schemas/horus_workspace.xsd" element "test-xml ; -- Tabelle für die Speicherung als BINARY XML create table xml_binary of xmltype xmltype store as binary xml allow nonschema; 14 2012 PROMATIS software GmbH

Speicherformen von XMLType: interne Speicherung CLOB select e.xmldata from xml_text e where rownum = 1; XMLDATA -------------------------------------------------------------------------------- <test-xml><datum>2008-08-18</datum><name>kunde #731</name><gekaufte-stuecke><stu eck><id>10383</id><name>stueck #10482</name></stueck><stueck><id>10808</id><name Objektrelational select e.xmldata from xml_or e where rownum = 1; XMLDATA -------------------------------------------------------------------------------- (SYS_XDBPD$, datum, name, gekaufte-stuecke(sys_xdbpd$, stueck(sys_xdbpd$, testxml1690_t(xdb$raw_list_t('13070000000102'), '10.01.08', 'Kunde #4172', geka uftestuecke1691_t(xdb$raw_list_t('1301000080800a'), Binary XML select e.xmldata from xml_binary e where rownum = 1; XMLDATA -------------------------------------------------------------------------------- 9F01039E000000C83EC4C0092441323031332D30332D3239C00A2B384B756E6465202331393335C80 15 2012 PROMATIS software GmbH

Speicherformen von XMLType Vor- und Nachteile Kein Datenverlust, Original-XML wird Byte für Byte bereitgestellt Wann nehme ich ich was? Speicherung Schema-basierter oder nicht Schema-Basierter Dokumente CLOB Binary XML XML- OR Flexibel in der Struktur des XML: kann in XMLType Spalte oder Tabelle gespeichert werden schnelles Einfügen des gesamten Dokuments partielles Update erfordert Zurückschreiben des gesamten Dokuments langsam für Abfragen ins XML-Dokument hinein hoher Speicherplatzverbrauch 16 2012 PROMATIS software GmbH

Speicherformen von XMLType Vor- und Nachteile Speicherung Schema-basierter oder nicht Schema-Basierter Dokumente Flexibel in der Struktur des XML schnelles Abfragen auf einzelne Elemente im Dokument CLOB Wann nehme ich ich was? Binary XML XML- OR geringe Verarbeitungszeit bei Einfügeoperationen geringer Speicherplatzbedarf Datenverlust möglich, durch DOM-Objekte (Formatierungen, White Spaces, ) 17 2012 PROMATIS software GmbH

Speicherformen von XMLType Vor- und Nachteile Relationale Abfragegeschwindigkeit durch Query Rewrite Updates auf relationale Tabellen sehr schnell Geringer Speicherplatzbedarf CLOB Wann nehme ich ich was? Binary XML XML-OR Eingeschränkte Datenflexibilität: nur XML-Schema konforme Daten können gespeichert werden Insert-Operationen performancekritisch da XML auf Objekte gemappt werden muss Datenverlust möglich, durch DOM-Objekte (Formatierungen, White Spaces, ) 18 2012 PROMATIS software GmbH

Speicherform von XMLType Wann nehme ich was? Speicherform abhängig von Operationen abhängig, die auf XML- Dokumenten durchgeführt werden CLOB Bei Wiederherstellung des XML aus DB (inkl. Whitespaces) Bei häufig ändernder Struktur der XML-Dokumente Objektrelational Bei häufigen Zugriffen auf einzelne Teile des XML Relationale Performance bei Abfragen/Updates (Query Rewrite) CLOB Wann nehme ich ich was? Binary XML XML-OR Binary XML Bei vielen Inserts und häufigen Abfragen auf Teile der XML-Dokumente Geringer Netzwerkoverhead bei Übertragung Bei vielen Abfragen auf Teile der XML-Dokumente, die keinem einheitlichen XML- Schema genügen müssen 19 2012 PROMATIS software GmbH

Transformation von CLOB zu Objektrelational (1 von 2) XML-Schema registrieren begin dbms_xmlschema.registerschema(local => true, gentypes => true, gentables => false, schemaurl => 'http://www.horus.biz/xml-schemas/horus_workspace.xsd', schemadoc => '<?xml version="1.0" encoding="utf-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:xdb="http://xmlns.oracle.com/xdb" xdb:storevarrayastable="true"> <xs:element name="project" type="project"/> <xs:sequence> <xs:element name="key" minoccurs="0" type="xs:string"/> <xs:element name="value" minoccurs="0" type="xs:string xdb: SQLType="CLOB"/> Schemabezogene Tabelle anlegen CREATE TABLE HORUS_WORKSPACES2 (ID Number(32) NOT NULL, WRK_XML XMLTYPE, ) TABLESPACE HORUS_DATA XMLTYPE COLUMN WRK_XML store as object relational xmlschema "http://www.horus.biz/xml-schemas/horus_workspace.xsd" element "project" varray WRK_XML.XMLDATA."properties"."entry" store as table horus_workspace2_entries; 20 2012 PROMATIS software GmbH

Transformation von CLOB zu Objektrelational (2 von 2) SQL-Abfragen auf Basis der XML-Schemabezogenen Tabelle -- relationales Aufbereiten der textbasiert abgelegten XML-Dokumente SELECT hws.id, extractvalue(hws.wrk_xml, '/project/name') ws_name, extractvalue(hws.wrk_xml, '/project/properties/entry) ws_base_path, FROM horus_workspaces hws; Query Rewrite zur Laufzeit -- SQL der Datenbank zur Laufzeit SELECT SYS_OP_ATG( [...] ) " ID", "SYS_ALIAS_1"."SYS_NC00009$" "WS_NAME", "SYS_ALIAS_1"."SYS_NC00008$" "WS_BASE_PATH", FROM HORUS_PROXY"."HORUS_WORKSPACES" "SYS_ALIAS_1", TABLE( [...] ) 21 2012 PROMATIS software GmbH

Zusätzliche Problemstellungen Erstellung von XSD-Schemata bei umfangreichen Objektmodellen sehr komplex JDBC XMLType und ORA-01461: HORUS Business Modeler nutzt 11gR1 jdbc Treiber um Insert/Update/Select auf XMLType Tabelle durchzuführen ORA-01461-Fehler bei Variablen die größer als 4000 Zeichen sind Grund: interne Typkonvertierung und Nutzung von raw/varchar2 anstatt blob/clob Workaround: datenbankseitige Erstellung View und zwei Instead-of-Trigger 11gR1 jdbc-treiber Zeilenumbrüche innerhalb XML-Attribute werden durch SQL-Anweisung extract() abgeschnitten: Betrifft Erstellung der Prozesshandbücher Anstelle von Zeilenumbrüchen werden Leerzeichen dargestellt Development arbeitet an aktuellem Patch (teilweise als One-Off Patch verfügbar) 22 2012 PROMATIS software GmbH

Zusammenfassung Fließender Übergang von hierarchischen Dokumentstrukturen zu DB- Strukturen (SQL/XML Dualität) Wahl der Speicherungsform nach Projekthintergrund und Anforderung Umstellung von unstrukturierter Speicherung (CLOB) auf objektrelational für einfache XML-Schema geeignet Performance-Tuning mit Datenbankinternen Mitteln (z.b. Query Rewrite) Performance-Test mit 5000 XML-Dokumenten Unstrukturierte Speicherung Objektrelationale Speicherung Binary XML Insert 00:00:13.25 00:00:43.56 00:00:02.07 Select auf Teile des XML-Dokuments 00:00:05.43 00:00:00.17 00:00:00.67 Neue Speicherungsform Binary XML als ernsthafte Alternative zu Objektrelational 23 2012 PROMATIS software GmbH

Michael Pergande Division Manager Enterprise Collaboration Products PROMATIS software GmbH Pforzheimer Str. 160 76275 Ettlingen Tel. +49 7243 2179 0 Fax +49 7243 2179 99 E-Mail: Web: michael.pergande@promatis.de www.promatis.de 24 2012 PROMATIS software GmbH