Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor

Ähnliche Präsentationen


Präsentation zum Thema: "© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor"—  Präsentation transkript:

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


Herunterladen ppt "© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor"

Ähnliche Präsentationen


Google-Anzeigen