1.32k likes | 1.46k Views
Oracle XML Datenbank. Ralf Mueller Server Technologies Oracle Corporation. Agenda. XML in der Datenbank Speicherformen für XML-Dokumente, Datenbankansätze, Oracle XML Technologie, Architektur der Oracle XML-Datenbank, Installation + Konfiguration
E N D
Oracle XML Datenbank Ralf Mueller Server TechnologiesOracle Corporation
Agenda XML in der DatenbankSpeicherformen für XML-Dokumente, Datenbankansätze, Oracle XML Technologie, Architektur der Oracle XML-Datenbank, Installation + Konfiguration XML-SpeicherstrukturenFestlegung der Speicherungsform, XML Schema, Registrierung, objektrelationale Strukturen Umgang mit XML-DokumentenSpeichern und Abrufen von XML-Dokumenten; Verbindung mit SQL; Protokollzugriff XML in der Praxis – Szenarien und ImplementierungImplementierung der Szenarien mit der XML-Datenbank, Zusammenspiel mit Oracle-Technologie
Warum XML in der Datenbank ...... und nicht im Dateisystem? • relationale Daten bereits vorhanden • Kombination mit XML Dokumenten • Ausgabe als XML-Dokument • Erweiterung des XML-Datenmodells • Zusätzliche Datenbankvalidierung • Transaktionskonzept • Datennahe Sicherheitskonzepte • Datennahe Logik • ...
XML Standards • XML – W3C • DOM – W3C • XPath – W3C • XML Schema – W3C • XSL and XSLT – W3C • WebDAV - IETF • SQL/XML – ANSI/ISO
Wie speichert man XML-Dokumente in Datenbanken ...?
Herausforderungen Abruf als XML • Beispiele: • heterogene Systeme • XML Schnittstellen • Versorgung des Workflow • Abruf per HTTP oder FTP relationale Datenbestände
Herausforderungen • Beispiele: • XML als Austauschformat im e-Business • Sammlung und Aggregation im DWH • DWH-Versorgung aus heterogenen Systemen Abruf mit SQL XML-Dokumente Überführung in DWH oder andere Anwendung
Beispiele: • XML Dokumente nativ speichern (jur. Gründe) • Validitätsprüfung gegen Stammdaten in einer relationalen Datenbank • Validierung im laufenden Workflow Herausforderungen Integritäts-bedingungen relationale Datenbestände XML Datenbestände
HerausforderungenReferentielle Integrität in XML • XML-Datenmodell • referentielle Integrität • ID • IDREF • IDREFS • Dokumentbezogen
HerausforderungenReferentielle Integrität in XML • XML-Datenmodell • referentielle Integrität • ID • IDREF • IDREFS • Dokumentbezogen • Das Dokument kann ohne weiteres nicht verlassen werden
1. Lösungsansatz • relationale Speicherung • Zwei-Tabellen-Modell ID TYPE VALUE ID PARENT_ID 1 ELE Order 2 ELE Kunde 3 ELE Name 4 TEX Mustermann 5 ATT id 6 TEXT 4711 1 NULL 2 1 3 2 4 3 5 1 6 5
1. Lösungsansatz • Semantik aus Tabellen nicht nachvollziehbar • Schwierige Integration • z.B. Stammdatentabellen • Tuning schwierig • Indizierung schwierig • Volltextsuche schwierig • Komplexe JOIN-Operationen
2. Lösungsansatz • relationale Speicherung • Fachliches Datenmodell KUNDEN ID NAME DEPOT ID WERTPAPIER 1 Muster 4711 2 Meier 4712 3 Schmitt 4713 1 VW AG 2 Oracle Corp. 3 Sun Microsys.
2. Lösungsansatz • Semantik nachvollziehbar • einfache Integration mit anderen Tabellen • Tuning für bestimmte Abfragen möglich • Volltextsuche schwierig • Komplexe Logik (Dokumentzerlegung) • Informationsverluste gute Eignung, wenn XML als reines Transportformat dient und die relationale Tabellenform im Vordergrund steht.
3. Lösungsansatz • Reine XML-Datenbank • "native" XML-Speicherung • für XML Strukturen optimiert • gute XML Schnittstellen • gute XML-Indizierung • Integration mit relationalen Daten schwierig • Locking-Verhalten • Referentielle Integrität
Native XML-Speicherung • XML:DB Initiative • Definition • Unterstützt das XML-Datenmodell • Elemente, Attribute, PCDATA, Kommentare, ... • Garantiert 1:1-Wiederherstellung des XML-Dokumentes • Unterstützt standardkonforme Abfragesprachen • Ist unabhängig von physikalischer Speicherung!
Oracle XML DB: Architektur User XDB: XML DB Repository HTTP XML Schema FTP User SCOTT: XML Dokumente SQL*NET Oracle Shared Server
Installation der XML DB • Softwareinstallation • Keine Besonderheiten, automatisch bei der DB-Konfiguration, zusätzliches Schema XDB, FTP und HTTP-Portkonfiguration • Datenbankerstellung
Installation der XML DB • Voraussetzungen: • R2 Standard oder Enterprise Edition • Oracle Java VM • Shared Server um Protokolle zu nutzen • Manuelle Installation in eine bestehende Datenbank • $ORACLE_HOME/rdbms/admin/catqm.sql[XDB-Passwort] [XDB-TS] [TEMP-TS] • $ORACLE_HOME/rdbms/admin/catxdbj.sql • Deaktivieren der XML DB • $ORACLE_HOME/rdbms/admin/catnoqm.sql • Datenbank neu starten
TCP/IP Port für FTP und HTTP • Manuelle Änderung der Ports über Skripts • $ORACLE_HOME/rdbms/admin/catxdbdbca.sql[ftp-port] [http-port] • Protokollserver abschalten • Jeweiligen Port auf "0" setzen
Table Name Property 1 Property N Property N ACL XML DB Repository xdb$resource Resource_view FTP HTTP XML Tabellen im User Schema B Tree Index Text Index Hierarchical Index
Das Repository RESOURCE_VIEW PATH_VIEW SQL> desc path_view Name Null? Type ----------------------------------------- -------- -------------------------- PATH VARCHAR2(1024) RES SYS.XMLTYPE LINK SYS.XMLTYPE SQL> desc resource_view Name Null? Type ----------------------------------------- -------- ------------------------- RES SYS.XMLTYPE ANY_PATH VARCHAR2(4000)
Folder anlegen • PL/SQL • per FTP oder im WebDAV-Client declare result boolean; begin result := dbms_xdb.createFolder('/public/<Ein Name>'); end; COMMIT;
Unterschiedliche Speicherarten • Die Speicherart richtetsich nach den • Anforderungen der • Anwendung: • Konkurrierender Zugriff • Vokabularänderung • Ladeperformance • Abfrage-Performance • Redundanzen • XML Schema Support Clob Nativ als Dokument Relational Nativ Objektrelational
Unterschiedliche Speicherarten • Die Speicherart richtetsich nach den • Anforderungen der • Anwendung: • Konkurrierender Zugriff • Vokabularänderung • Ladeperformance • Abfrage-Performance • Redundanzen • XML Schema Support Clob Nativ als Dokument Relational Nativ Objektrelational
Dokumentorientiertes XML • Dokument im Vordergrund • Dokument-Transformationen • Dokument als kleinste Einheit • Lesen und Schreiben als Ganzes • Dokumentteile nur selten • Skalare Daten nur selten • Häufig Volltextsuche • XML als medienneutrales Speicherformat
Datenorientiertes XML • Daten im Vordergrund • Dokumentkontext nicht unbedingt wichtig • Häufig strukturierte Suche • größer-als und kleiner-als Abfragen • XML als Austauschformat • Standardisierung der Werkzeuge • Integration in die IT-Landschaft
Mischformen • Beide Konzepte in einem Dokument • Beispiele: • Zeitungsartikel mit strukturierten Zusatzinformationen • Autor, Zeitung, Erscheinungsdatum • ... • Kreditanträge • Strukturierte Kunden- und Kreditdaten • Unstrukturierte Begründungen
Technologie-StackXML-Dokumentspeicherung OS-Blöcke System Calls
Technologie-StackXML-Dokumentspeicherung relationaleTabellen(Oracle 1.0) SQL OS-Blöcke System Calls
Technologie-StackXML-Dokumentspeicherung ObjektrelationaleDatenbank(Oracle 8.0) SQL – Objektrelationale Syntax (SQL99) relationaleTabellen SQL OS-Blöcke System Calls
Technologie-StackXML-Dokumentspeicherung XML-NavigationXPath XML DB (Oracle 9.2) ObjektrelationaleDatenbank SQL – Objektrelationale Syntax (SQL99) relationaleTabellen SQL OS-Blöcke System Calls
Technologie-Stackrein dokumentorientiertes XML XML-NavigationXPath XML DB CLOB-Datentyp relationaleTabellen SQL OS-Blöcke System Calls
Beispiel: BörsennachrichtenÜberlegungen ... • Strukturierte Informationen • (WKN, Reuters-Code, Quelle, Kontakte, Datum) • Zugriff auf Elemente im Vordergrund • Kombination mit bspw. Kursdatenbank • Strukturierte Speicherung • Unstrukturierte Informationen • Zugriff auf den vollständigen Text im Vordergrund • Volltextsuche • Unstrukturierte Speicherung
Beispiel BörsennachrichtRegistrierung des XML Schemas • 1. Ansatz: • W3C XML Schema wird unverändert in Oracle registriert • Oracle Enterprise Manager
Beispiel BörsennachrichtRegistrierung des XML Schemas • Schema-URL zur Identifizierung des XML Schemas in der Datenbank • URL sinnvoll • jeder String möglich
Beispiel BörsennachrichtErgebnisse: • Feingranulares Mapping • Abbildung nach Objektmodell • darüberhinaus „BODY“-Element • SQL-Datentypen • Systemgenerierte SQL-Namen • Case-Sensitiv • Sequence-Element für Eindeutigkeit über Namespaces hinweg • Neue Namen bei neuer Schema-Registrierung • Tabellen für XML-Dokumente bereits angelegt
"annotated" XML Schema • XML Schema mit "Zusatzinformationen" • Herstellerspezifische Tags und Attribute zur Steuerung der Persistenz • Namespace-Konzept • bei der Schema-Prüfung ignoriert der Parser gemäß W3C "alle Namespaces, die er nicht kennt" • Datenbankunabhängige Parser beachten nur das allgemeine XML Schema • Bei Registrieren in der Datenbank beachtet diese nur das allgemeine XML Schema und die eigenen "Annotations"
annotated XML Schema http://xmlns.microsoft.com/xml http://www.w3.org/2001/XMLSchema Ein XML Schema kann Annotations fürverschiedene Datenbanken enthalten,da die jeweiligen Datenbanken fremde Annotations gemäß W3C ignorieren sollen http://xmlns.oracle.com/xdb
Beispiel BörsennachrichtSchema Annotations <xs:complexType name="aktie_t"><xs:attribute name="wkn" use="required" type="xs:string"><xs:attribute name="name" use="required" type="xs:string"><xs:attribute name="reuters" use="required" type="xs:string"><xs:attribute name="branche" use="required" type="xs:string"></xs:complexType> Das XML Schema beschreibt die Struktur des XML-Dokumentes, nicht deren physikalische Speicherung in einer Datenbank.Die Oracle XML DB macht daher Standard-Annahmenbei der Nachbildung des XML-Datenmodells mit Objekttypen.
Beispiel BörsennachrichtSchema Annotations <xs:complexType name="aktie_t" xdb:SQLType="NR_AKTIE_T"><xs:attribute name="wkn" use="required" xdb:SQLName="AKT_WKN"><xs:attribute name="name" use="required" xdb:SQLName="AKT_NAME"><xs:attribute name="reuters" use="required" xdb:SQLName="AKT_REUTERSCODE"><xs:attribute name="branche" use="required" xdb:SQLName="AKT_BRANCHE"></xs:complexType> SQLType: Abbildung von XML-Datentypen auf Oracle-Datentypen SQLName: Benennung von Elementen in Oracle Der XML-Komplexe Typ „aktie_t“ wird in der Datenbank als Objekttyp „NR_AKTIE_T“ nachgebildet.
Beispiel BörsennachrichtSchema Annotations <xs:element name="body" xdb:SQLName="NR_BODY"> <xs:complexType mixed="true" xdb:SQLType="CLOB"> <xs:choice minOccurs="0" maxOccurs="unbounded"> </xs:complexType></xs:element> SQLType: Abbildung von XML-Datentypen auf Oracle-Datentypen SQLName: Benennung von Elementen in Oracle Der komplexe Typ für den Nachrichten-Body wird nicht als Objekttyp, sondern als CLOB abgebildet.