Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rolf Christian Auttenberg Geändert vor über 8 Jahren
1
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor info@rudolf-jansen.de http://www.rudolf-jansen.de DOAG-SIG Development, 11.11.2003
2
© 2003, Rudolf Jansen Agenda Oracle XML DB Oracle XML Repository XML Developer`s Kits (XDK) Zusammenfassung
3
© 2003, Rudolf Jansen Einleitung - XML DB Oracle 9i Rel.2 -Datenbank XML-RepositoryXMLType-Tabellen XML-DB JDBC-Applikation Browser SQL-Net- Zugriff http Externe Tools ftp WebDAV
4
© 2003, Rudolf Jansen XML DB - Datentyp XMLType XMLType als Spaltentyp create table person ( prs_nr number, prs_data XMLTYPE ); XMLType als Tabellentyp ( ab 9i Rel.2 ) CREATE TABLE person_xml of XMLTYPE;
5
© 2003, Rudolf Jansen XML DB - Datentyp XMLType INSERT INTO person_xml VALUES (XMLType(' 1 Willi Schmitz Hauptstrasse 47 12345 Entenhausen '));
6
© 2003, Rudolf Jansen XML DB - Datentyp XMLType Indexbildung CREATE INDEX plz_index ON person (prs_data.extract ('/PRS_DATA//PRS_ADRESSE/ADR_PLZ/text()').getNumberVal()); Validierungsmöglichkeiten - Constraints create table person ( prs_nr number, prs_data XMLTYPE NOT NULL ); - Trigger
7
© 2003, Rudolf Jansen XML DB - Datentyp XMLType Speicheroptionen Unstrukturiert als LOB + Zugriff auf Gesamtdokument performant + Einfügen von XML mit variabler Struktur möglich - SELECT und UPDATE von einzelnen Elementen aufwendig Strukturiert über objektrelationale Tabellen Voraussetzung: XML-Schema-Definition -> Definition von SQL-Objekten, die dem XML-Schema entsprechen + Zugriff auf einzelne Elemente schneller + geringerer Speicherbedarf (Tagnamen brauchen nicht gespeichert werden)
8
© 2003, Rudolf Jansen XML DB - XML-Schema W3C-Standard zur Festlegung von Inhalt und Struktur von XML-Dokumenten Voraussetzung für strukturierte Speicherung Vorteil: Struktur der XML-Dokumente, die in eine Spalte eingetragen werden sollen, ist bereits bekannt -> passende Speicherobjekte können im voraus angelegt werden Bei Eintrag von Daten, die auf dem XML-Schema beruhen: - Aufsplitten der Daten in einzelne Bestandteile - (objekt-)relationale Speicherung dieser Einzelbestandteile - spätere UPDATEs nicht auf dem Gesamtdokument, sondern nur in den betroffenen Bestandteilen
9
© 2003, Rudolf Jansen XML DB - XML-Schema 1.Schritt: Registrieren einer XML-Schema-Definition: DECLARE xmlschema_doc varchar2(1000) := '...... '; BEGIN DBMS_XMLSCHEMA.REGISTERSCHEMA('http://www.xyz.de/person.xsd', xmlschema_doc); END;
10
© 2003, Rudolf Jansen XML DB - XML-Schema 2.Schritt: (Automatische) Erzeugung passender Speicherobjekte create type PersonType_t ( Prs_Id NUMBER, Prs_Vorname VARCHAR2(4000), Prs_Nachname VARCHAR2(4000), Prs_Adresse TEST.Prs_Adresse_t ); create type Prs_Adresse_t ( Adr_Strasse VARCHAR2(4000), Adr_Hausnr NUMBER, Adr_Plz NUMBER, Adr_Ort VARCHAR2(4000) );
11
© 2003, Rudolf Jansen XML DB - XML-Schema 3.Schritt: XML-Schema-Angabe bei Tabellendefinition create table person_mit_xml_schema_spalte( prs_id number, prs_data XMLType ) XMLType column prs_data XMLSCHEMA http://www.xyz.de/person.xsd ELEMENT "Person"; desc person_mit_xml_schema_spalte; Name Null? Typ --------- -------- -------------------------------- PRS_ID NUMBER PRS_DATA SYS.XMLTYPE(XMLSchema http://www.xyz.de/person.xsd Element "Person") STORAGE Object-relational TYPE "PersonType_T"
12
© 2003, Rudolf Jansen Agenda Oracle XML DB Oracle XML Repository XML Developer`s Kits (XDK) Zusammenfassung
13
© 2003, Rudolf Jansen XML-Repository Ziel: „Einsatz der Datenbank als Dateisystem“ Zugriff über FTP, HTTP, WebDAV (Web Distributed Authoring and Versioning)
14
© 2003, Rudolf Jansen XML-Repository Installation: HTTP-Zugriff über Oracle XML DB Protokoll Server: Session-Pool für FTP-, HTTP- und WebDAV-Zugriffe
15
© 2003, Rudolf Jansen XML-Repository XML-Repository : Hierarchische Verzeichnisstruktur Verzeichnisse enthalten Ressourcen (XMLType-Instanzen) PL/SQL-Package DBMS_XDB zum Anlegen und Verwalten von Ressourcen. Beispiele: DBMS_XDB.createfolder('/home'); DBMS_XDB.createfolder('/home/xmltest'); Ähnlichkeit zu UNIX-Dateisystemen
16
© 2003, Rudolf Jansen XML-Repository HTTP-Zugriff auf neu angelegten Ordner über Webbrowser:
17
© 2003, Rudolf Jansen XML-Repository Anlegen von Inhalten: DECLARE retValue BOOLEAN; xmlDoc SYS.XMLType; BEGIN select SYS_XMLAGG(value(a)) into xmldoc from adressen_view a; retValue:= DBMS_XDB.createresource( '/home/xmltest/adressenliste.xml', xmldoc); commit; END;
18
© 2003, Rudolf Jansen XML-Repository Oracle 9i - Datenbank adresse_rel adressenliste.xml person_rel adressen_view Relationale Tabellen XMLType- View XML- Repository- Ressource Externe Anwendung (Explorer, Browser, FTP-Client) Http-, FTP-, WebDAV-Zugriff
19
© 2003, Rudolf Jansen XML-Repository
20
© 2003, Rudolf Jansen XML-Repository
21
© 2003, Rudolf Jansen XML-Repository Externer Eintrag von Dateien in das XML-Repository Beispiel: Datei neue_adressenliste.xml aus dem Windows-Dateisystem Eintrag per Drag&Drop in den XML-Repository-Ordner des Windows Explorers
22
© 2003, Rudolf Jansen XML-Repository
23
© 2003, Rudolf Jansen XML-Repository Weitere Funktionen (analog UNIX) Anlegen von Links DBMS_XDB.link('/home/xmltest/adressenliste.xml', '/public', 'adressenliste.xml'); Sicherheitskonzept: – Rechtevergabe über Access Control Lists (ACL) – Rechte pro Ressource oder auch für komplette Teilbäume XML DB Versioning: – „Versionskontrolle in der Datenbank“ – Verwaltung mehrerer Versionen von XML-Repository-Ressourcen – derzeit noch keine Versionskontrolle von normalen relationalen Datenbankinhalten
24
© 2003, Rudolf Jansen Agenda Oracle XML DB Oracle XML Repository XML Developer`s Kits (XDK) Zusammenfassung
25
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK) Sammlung von Tools für die Schnittstelle von XML und (Oracle-)Datenbank Einsatzgebiete: – Anbindung von XML-Systemen an bestehende Datenbanken mit relational gespeicherten Daten – Neue Projekte: lose Kopplung zwischen XML und DB Programmiersprachen: Java, C, C++, PL/SQL Einsatz mit jeder Datenbank, für die es JDBC-Treiber gibt Vorteil: Klare Trennung zwischen XML und SQL – Portabilität (Datenbankwechsel) – KnowHow-Trennung (XML-Entwickler und DB-Entwickler)
26
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK)
27
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK) XSQL-Servlet Client JDBC- Datenbank Web-Server Stylesheets XSQL-Servlet XML-SQL- Utility (XSU) XMLParser XSLT-ProzessorHTML, XML,... SQL HTTP
28
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK) XSQL-Servlet Ausgangsbasis: XSQL-Page Beispiel: Datei person_select_mit_xslt.xsql SELECT prs_id, prs_vorname, prs_nachname from person_rel
29
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK) XSQL-Servlet Servlet-Engine-Konfiguration: Registrieren der Dateiendung.xsql mit XSQL-Servlet Aufruf: – http://localhost:8080/xsql/person_select_mit_xslt.xsql – Konsolenaufruf: java oracle.xml.xsql.XSQLCommandLine person_select_mit_xslt.xsql person_select_mit_xslt_ergebnis.html
30
© 2003, Rudolf Jansen XML Developer‘s Kits (XDK) XSQL-Servlet
31
© 2003, Rudolf Jansen Zusammenfassung Vielzahl von Integrationsmöglichkeiten Lose Kopplung (XML Developer‘s Kit) Enge Kopplung (Datentyp XMLType) Entscheidungskriterien: – Bindung an DB-Hersteller kritisch? (Migrationsarbeiten) – Entwickler-KnowHow (XML und/oder SQL) – Zentrale Administration durch XML-Repository („Datenbank als Dateisystem“)
32
© 2003, Rudolf Jansen Literatur OTN-Webseiten http://otn.oracle.com – Dokumentation – XML Developer‘s Kits (aktuelle Version) – Sourcecode-Beispiele „Oracle, Java, XML. Integration in Oracle 9i“ Rudolf Jansen Software&Support Verlag 360 Seiten ISBN 3-935042-33-7
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.