Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ralf Mueller Server Technologies Oracle Corporation Oracle XML Datenbank.

Ähnliche Präsentationen


Präsentation zum Thema: "Ralf Mueller Server Technologies Oracle Corporation Oracle XML Datenbank."—  Präsentation transkript:

1 Ralf Mueller Server Technologies Oracle Corporation Oracle XML Datenbank

2 Agenda XML in der Datenbank Speicherformen für XML-Dokumente, Datenbankansätze, Oracle XML Technologie, Architektur der Oracle XML-Datenbank, Installation + Konfiguration XML-Speicherstrukturen Festlegung der Speicherungsform, XML Schema, Registrierung, objektrelationale Strukturen Umgang mit XML-Dokumenten Speichern und Abrufen von XML-Dokumenten; Verbindung mit SQL; Protokollzugriff XML in der Praxis – Szenarien und Implementierung Implementierung der Szenarien mit der XML-Datenbank, Zusammenspiel mit Oracle- Technologie

3 Warum XML in der Datenbank...?

4 ... und nicht einfach im Dateisystem?

5 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 –...

6 XML Standards  XML – W3C  DOM – W3C  XPath – W3C  XML Schema – W3C  XSL and XSLT – W3C  WebDAV - IETF  SQL/XML – ANSI/ISO

7 Wie speichert man XML-Dokumente in Datenbanken...?

8 Herausforderungen relationale Datenbestände Abruf als XML Beispiele: - heterogene Systeme - XML Schnittstellen - Versorgung des Workflow - Abruf per HTTP oder FTP

9 Herausforderungen XML-Dokumente Abruf mit SQL Überführung in DWH oder andere Anwendung Beispiele: - XML als Austauschformat im e-Business - Sammlung und Aggregation im DWH - DWH-Versorgung aus heterogenen Systemen

10 Herausforderungen relationale Datenbestände Integritäts- bedingungen XML Datenbestände Beispiele: - XML Dokumente nativ speichern (jur. Gründe) - Validitätsprüfung gegen Stammdaten in einer relationalen Datenbank - Validierung im laufenden Workflow

11 Herausforderungen Referentielle Integrität in XML  XML-Datenmodell  referentielle Integrität – ID – IDREF – IDREFS  Dokumentbezogen

12 Herausforderungen Referentielle Integrität in XML  XML-Datenmodell  referentielle Integrität – ID – IDREF – IDREFS  Dokumentbezogen  Das Dokument kann ohne weiteres nicht verlassen werden

13 1. Lösungsansatz  relationale Speicherung  Zwei-Tabellen-Modell IDTYPEVALUE 1 ELE Order 2 ELE Kunde 3 ELE Name 4 TEX Mustermann 5 ATT id 6 TEXT 4711 IDPARENT_ID 1 NULL 2 1 3 2 4 3 5 1 6 5

14 1. Lösungsansatz Semantik aus Tabellen nicht nachvollziehbar Schwierige Integration z.B. Stammdatentabellen Tuning schwierig Indizierung schwierig Volltextsuche schwierig Komplexe JOIN-Operationen

15 2. Lösungsansatz  relationale Speicherung  Fachliches Datenmodell IDNAMEDEPOT 1 Muster 4711 2 Meier 4712 3 Schmitt 4713 IDWERTPAPIER 1 VW AG 2 Oracle Corp. 3 Sun Microsys. KUNDEN

16 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.

17 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

18 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!

19 HTTP FTP SQL*NET User XDB: XML DB Repository Oracle Shared Server XML Schema Oracle XML DB: Architektur User SCOTT: XML Dokumente

20 WebDAV

21 FTP

22 Installation der XML DB  Softwareinstallation – Keine Besonderheiten, automatisch bei der DB- Konfiguration, zusätzliches Schema XDB, FTP und HTTP-Portkonfiguration  Datenbankerstellung Datenbankerstellung

23 Installation der XML DB

24  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

25 TCP/IP Port für FTP und HTTP

26  Manuelle Änderung der Ports über Skripts – $ORACLE_HOME/rdbms/admin/catxdbdbca.sql [ftp-port] [http-port]  Protokollserver abschalten – Jeweiligen Port auf "0" setzen

27 XML DB Repository Table Name ACL Property 1 Property N Property N XML Tabellen im User Schema B Tree Index Text Index Hierarchical Index FTP HTTP xdb$resource Resource_view

28 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)

29 Folder anlegen  PL/SQL  per FTP oder im WebDAV-Client declare result boolean; begin result := dbms_xdb.createFolder('/public/ '); end; COMMIT;

30 Clob Relational Die Speicherart richtet sich nach den Anforderungen der Anwendung: Konkurrierender Zugriff Vokabularänderung Ladeperformance Abfrage-Performance Redundanzen XML Schema Support Unterschiedliche Speicherarten Nativ als Dokument Nativ Objektrelational

31 Clob Relational Die Speicherart richtet sich nach den Anforderungen der Anwendung: Konkurrierender Zugriff Vokabularänderung Ladeperformance Abfrage-Performance Redundanzen XML Schema Support Unterschiedliche Speicherarten Nativ als Dokument Nativ Objektrelational

32 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

33 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

34 Mischformen  Beide Konzepte in einem Dokument  Beispiele: – Zeitungsartikel mit strukturierten Zusatzinformationen  Autor, Zeitung, Erscheinungsdatum ... – Kreditanträge  Strukturierte Kunden- und Kreditdaten  Unstrukturierte Begründungen

35 Technologie-Stack XML-Dokumentspeicherung OS-BlöckeSystem Calls

36 Technologie-Stack XML-Dokumentspeicherung OS-Blöcke relationale Tabellen (Oracle 1.0) System Calls SQL

37 Technologie-Stack XML-Dokumentspeicherung OS-Blöcke relationale Tabellen System Calls SQL Objektrelationale Datenbank (Oracle 8.0) SQL – Objektrelationale Syntax (SQL99)

38 Technologie-Stack XML-Dokumentspeicherung OS-Blöcke relationale Tabellen System Calls SQL Objektrelationale Datenbank SQL – Objektrelationale Syntax (SQL99) XML DB (Oracle 9.2) XML-Navigation XPath

39 Technologie-Stack rein dokumentorientiertes XML OS-BlöckeSystem Calls SQL XML DB XML-Navigation XPath CLOB-Datentyp relationale Tabellen

40 Beispiel: Börsennachrichten

41 Beispiel: Börsennachrichten Beschreibung als XML Schema

42 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

43 Beispiel Börsennachricht Registrierung des XML Schemas Registrierung  1. Ansatz: – W3C XML Schema wird unverändert in Oracle registriert – Oracle Enterprise Manager

44 Beispiel Börsennachricht Registrierung des XML Schemas  Schema-URL zur Identifizierung des XML Schemas in der Datenbank  URL sinnvoll  jeder String möglich

45 Beispiel Börsennachricht Ergebnisse:  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

46 "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"

47 annotated XML Schema http://www.w3.org/2001/XMLSchema http://xmlns.oracle.com/xdb Ein XML Schema kann Annotations für verschiedene Datenbanken enthalten, da die jeweiligen Datenbanken fremde Annotations gemäß W3C ignorieren sollen http://xmlns.microsoft.com/xml

48 Beispiel Börsennachricht Schema Annotations Das XML Schema beschreibt die Struktur des XML-Dokumentes, nicht deren physikalische Speicherung in einer Datenbank. Die Oracle XML DB macht daher Standard-Annahmen bei der Nachbildung des XML-Datenmodells mit Objekttypen.

49 Beispiel Börsennachricht Schema Annotations 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.

50 Beispiel Börsennachricht Schema Annotations 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.

51 Beispiel Börsennachricht Schema Annotations SQLInline:Speicherung in einer separaten Tabelle (true = nein; false = ja) defaultTable: Name der Objekt-Tabelle Die Kontakte werden in einer separaten Tabelle NR_KONTAKT_TAB gespeichert

52 Beispiel: Börsennachrichten Beschreibung als XML Schema Speicherung als Ganzes

53 Beispiel Börsennachricht Registrierung des XML Schemas Registrierung  2. Ansatz: – Oracle-Annotations – SQLType – SQLName –...

54 Beispiel Börsennachricht Ergebnisse:  Anforderung genaues Mapping  Abbildung nach Objektmodell  BODY Element als Fließtext (CLOB) abgebildet  SQL-Datentypen  Eigene SQL-Namen – Hier: case-insensitiv – Ohne Sequence-Element – Bei jeder Schema Registrierung gleich  Tabellen für Nachrichten und Kontakte angelegt

55 Weitere Schema-Annotations maintainDOM maintainDOM:Ein/Ausschalten der "DOM-Fidelity" Steuert die Speicherung von Kommentaren, Processing Instructions, Mixed Content Wenn "native XML Speicherung" nicht benötigt wird, kann die "DOM-Fidelity" so ausgeschaltet werden. Die Performance verbessert sich.

56 Schema Annotations maintainDOM

57  Informationsverlust – Kommentare – Processing Instructions – Mixed Content  Sinnvoll.... – Wenn "native XML-Speicherung" nicht nötig ist – Ladeperformance ist "Bottle-Neck"

58 Beispiel Börsennachrichten  Neue Tabellen anlegen – XMLTYPE als Datentyp CREATE TABLE nachrichten_tab ( nr_id number(10), nr_nachricht xmltype ); Ohne Angabe eines bereits registrieren XML Schemas fehlen die Angaben zur Objektrelationalen Speicherung, daher wird dokumentbasiert als CLOB gespeichert.

59 Beispiel Börsennachrichten  Neue Tabellen anlegen – XMLTYPE als Datentyp CREATE TABLE nachrichten_tab ( nr_id number(10), nr_nachricht xmltype ) xmltype column nr_nachricht store as object relational xmlschema " " element " "

60 Tabellen partitionieren  Prinzip – Aufteilung in mehrere physikalische Einheiten – Nach außen eine normale Tabelle  Nutzen: Performance – Abfragen können auf einzelne Partitionen beschränkt werden (Optimizer) – Partitionen können als Einheit gelöscht oder verschoben werden

61 Tabellen partitionieren für XML-Tabellen  Voraussetzungen: – Objektrelationale Speicherung – Lizenzierung (Datenbank-Option)  Partitionierungskriterien – Range, Hash, List – Partitionierungsschlüssel  Indizes – Globale Indizes – Lokale Indizes

62 Beispiel Börsennachrichten Partitionierte Tabelle  Neue Tabellen anlegen create table nachrichten_part_tab of xmltype xmlschema "http://www.oracle.com/aktie/nachrichten.xsd" element "nachricht" partition by range (xmldata.nr_datum) ( partition nachrichten_before_1999 values less than (to_date('01-01-1999','DD-MM-YYYY')), : partition nachrichten_2004 values less than (to_date('01-01-2005','DD-MM-YYYY')) ) /

63 nachricht: aktie datum quelle kontakte titel body Beispiel Börsennachrichten: XML-Datenmodell  In XML ist das Dokument die zentrale Einheit  Integritätsbedingungen ohne weiteres nur innerhalb des Dokumentes möglich  Referenz zu anderen Dokumenten oder Daten muss programmiert werden aktie: wkn name branche reuters kontakte: ziel art adresse 11 1 *

64 nachricht: aktie datum quelle kontakte titel body Beispiel Börsennachrichten: Reales Datenmodell  Überschreiten der DokumentgrenzeDokumentgrenze  Durch Datenbank-ConstraintsDatenbank-Constraints  Integritätsbedingungen möglich zu... – relationalen Tabellen – anderen XML-Dokumenten aktie: wkn name branche reuters kontakte: ziel art adresse 1 1 * *

65 XML Schema referenzieren W3C-Standardkonforme Verknüpfung von XML Dokument und XML Schema. Das Dokument wird häufig als "Instanz" des XML Schemas bezeichnet. Gut zu erkennen ist die Lage des Schemadokumentes im Dateisystem.

66 XML Schema referenzieren Unter dieser URL wurde das XML Schema in Oracle mit dem Enterprise Manager registriert.

67 Beispiel Börsennachrichten Status....  XML Schema – Oracle Annotations vorhanden – Schema in der Datenbank registriert  Speicherungsmodell objektrelational – Objekttypen vorhanden – Tabelle vorhanden

68 Laden  objektrelationale Speicherung – XML Schema muss in XML-Dokument referenziert sein – FTP und WebDAV FTPWebDAV – SQL und SQL*Loader

69 Beispiel Börsennachrichten Laden mit FTP oder WebDAV Referenz auf XML Schema? dokumentbasiert im XML DB Repository Nein Ohne Schema-Referenz ist keine Tabellenzuordnung und somit keine objektrelationale Speicherung möglich. Oracle kann nicht wissen, ob dieses XML Dokument gültig ist oder nicht und speichert es daher als Datei ins XML DB Repository.

70 Beispiel Börsennachrichten Laden mit FTP oder WebDAV Referenz auf XML Schema? XML Schema registriert? dokumentbasiert im XML DB Repository Ja Nein Wenn das XML Schema nicht registriert wurde, kann Oracle ebenfalls nicht prüfen, ob das XML Dokument gültig ist oder nicht. Es wird daher ebenfalls als Datei ins XML DB Repository abgelegt.

71 Beispiel Börsennachrichten Laden mit FTP oder WebDAV Referenz auf XML Schema? XML Schema registriert? Verstoß gegen Constraints? Dokument wird abgewiesen Ja Wenn die Inhalte des XML-Dokuments gegen hinterlegte Integritätsbedinungen verstoßen, wird es abgelehnt. Es ist für die Datenbank ungültig.

72 Beispiel Börsennachrichten Laden mit FTP oder WebDAV Referenz auf XML Schema? XML Schema registriert? Verstoß gegen Constraints? objektrelational in XMLTYPE-Tabelle Ja Nein

73 Beispiel Börsennachrichten  SQL INSERT INSERT INTO NR_NACHRICHT_TAB VALUES ( XMLTYPE ( ' <nachricht xmlns........ ) );

74 Schemavalidierung  "leichte Schemaprüfung" – beim Einfügen – Strukturprüfung – Performancegründe  vollständige Schemavalidierung – aktivierbar – RDBMS-Trigger

75 Beispiel Börsennachrichten Zugriff mit HTTP  Zugriff mit URL – Protokoll – Hostname und TCP/IP Port http://localhost:9080/

76 Beispiel Börsennachrichten Zugriff mit HTTP  Zugriff mit URL – Protokoll – Hostname und TCP/IP Port – Datenbank-Kürzel http://localhost:9080/oradb/

77 Beispiel Börsennachrichten Zugriff mit HTTP  Zugriff mit URL – Protokoll – Hostname und TCP/IP Port – Datenbank-Kürzel – Datenbankschema http://localhost:9080/oradb/

78 Beispiel Börsennachrichten Zugriff mit HTTP  Zugriff mit URL – Protokoll – Hostname und TCP/IP Port – Datenbank-Kürzel – Datenbankschema – Tabelle http://localhost:9080/oradb/ / NR_NACHRICHT_TAB

79 Beispiel Börsennachrichten Zugriff mit HTTP  Zugriff mit URL – Protokoll – Hostname und TCP/IP Port – Datenbank-Kürzel – Datenbankschema – Tabelle – Optional: XPath Einschränkung http://localhost:9080/oradb/ / NR_NACHRICHT_TAB/ ROW/nachricht/kontakt[ziel="Finanzen.net"]

80 Zugriff mit SQL  Zugriff auf XML-Elemente  XPath  SQL-Funktionen – EXTRACT – EXTRACTVALUE – EXISTSNODE

81 Zugriff mit SQL Gib mir von allen Nachrichten das Datum, die Aktiengesellschaft und den Titel select extractvalue (value(e), '/nachricht/datum') as datum,extractvalue (value(e), '/nachricht/aktie/@name') as ag,extractvalue (value(e), '/nachricht/titel') as titel from nr_nachricht_tab e

82 Zugriff mit SQL Gib mir von allen Oracle-Nachrichten das Datum und den Titel select extractvalue (value(e), '/nachricht/datum') as datum,extractvalue (value(e), '/nachricht/aktie/@name') as ag,extractvalue (value(e), '/nachricht/titel') as titel from nr_nachricht_tab e where existsnode ( value(e), '/nachricht/aktie[@wkn="871460"]' ) = 1

83 Ohne „Query Rewrite“ XML-Dokument DOM-Baum wkn SELECT extractvalue... FROM nr_nachricht_tab e

84 Mit „Query Rewrite“ SELECT extractvalue... FROM nr_nachricht_tab e Objektrelational gespeichertes XML-Dokument SELECT e.xmldata.... FROM nr_nachricht_tab e Query Rewrite nachricht: aktie datum quelle kontakte titel body aktie: wkn name branche reuters kontakte: ziel art adresse

85 Query Rewrite  Optimizer Funktionalität  nicht möglich bei... – XPath Funktionen – XPath Variablen – Wildcards – UNION Operator

86 Technologie-Stack XML-Dokumentspeicherung OS-Blöcke relationale Tabellen System Calls SQL Objektrelationale Datenbank SQL – Objektrelationale Syntax (SQL99) XML DB (Oracle 9.2) XML-Navigation XPath QUERYREWRITEQUERYREWRITE

87 Beispiel-Börsennachricht B-Tree Index  Einfaches Beispiel  Voraussetzung – Objektrelationale Speicherung create index idx_aktie_wkn on nr_nachricht_tab e (extractvalue(value(e),'/nachricht/aktie@wkn') /

88 Beispiel-Börsennachricht B-Tree Index NR_NACHRICHT_TAB  Objekt vollständig in einer Tabellenzeile abgelegt  Arrays werden intern als Bytestrom gespeichert  B-Tree Indizes auf Elemente im Array nicht möglich Default-Abbildung eines XML-Dokumentes mit 1:n Hierarchien

89 Beispiel-Börsennachricht B-Tree Index NR_NACHRICHT_TAB Auslagerung der 1:n Beziehung in eine eigene Tabelle mit Schema Annotations. NR_KONTAKTE_TAB

90 Beispiel-Börsennachricht B-Tree Index  Indizierung eines Elementes in einer 1:n Hierarchie  Voraussetzungen: – Objektrelationale Speicherung – 1:n Hierarchie wird in eigene Tabelle ausgelagert – Schema Annotation "storeVarrayAsTable" wird auf "true" gesetzt. create index idx_kontaktart on nr_kontakte_tab e (extractvalue(value(e),'/kontakt@art') /

91 Piecewise Update  XML Dokumentknoten gezielt ändern  kein Ersetzen des Gesamtdokumentes  nur auf SQL-Ebene – FTP und WebDAV sind dateiorientiert  SQL-Funktion updateXML ()  Durch Query Rewrite direkte Änderung der Objektrelationalen Tabellenspalten

92 Piecewise Update Ändere den Firmennamen bei den Nachrichten mit der WKN 871460 auf "Oracle Corporation" update nr_nachricht_tab e set value(e) = updatexml ( value(e),,'/nachricht/aktie/@name','Oracle Corporation' ) where existsnode ( value(e),'/nachricht/aktie[@wkn="871460"]' ) = 1

93 Piecewise Update Ändere die Kontaktart "email" nach "Mail" update nr_kontakte_tab e set value(e) = updatexml ( value(e),'/konkakt/@art','Mail' ) where existsnode ( value(e),,'/kontakt[@art="email"]' ) = 1

94 Einsatzgebiete für die Praxis  Layoutneutrale Dokumentspeicherung  Datenaustausch und Integration – DWH-Integration mit relationalen Sichten auf XML-Dokumente – Datenaustausch mit XML-Sichten auf relationale Datenbestände – XML-Messaging

95 Layoutneutrale Dokumentspeicherung  Dokumente als XMLTYPE  unstrukturiert – u.U. strukturierte Teile – Börsennachrichten  Volltextsuche  Stylesheet-Transformationen

96 Volltextsuche mit Oracle TEXT  Volltextindex auf jedes XML-Dokument möglich  Oracle TEXT Index – Wildcard Suche (links und rechts) – Phrasensuche – Unscharfe Suche (Fuzzy) – Wortstamm – Stopwort-Listen – Thesaurus-Unterstützung

97 Volltextsuche mit Oracle TEXT ctx_ddl.create_section_group ( group_name => 'nachrichten_sec_group',group_type => 'PATH_SECTION_GROUP' ); create index idx_nachrichten_volltext on nr_nachricht_tab e (value(e)) indextype is CTXSYS.CONTEXT parameters ('section group nachrichten_sec_group')  Index anlegen

98 Volltextsuche mit Oracle TEXT select score(1), value(e) from nr_nachricht_tab e where CONTAINS ( value(e),' (Software and Kooperation) INPATH (/nachricht/body) ',1 )>0  Volltextrecherche...

99 Stylesheet Transformationen  Datenbankintern – Stylesheet muss in der Datenbank vorliegen  SQL-Funktion – XMLTransform()  Aggregat über mehrere Dokumente – XMLAgg()

100 Stylesheet-Transformationen select xmltransform ( value(e),xdburitype ( '/public/idevelop/nachricht_html.xsl' ).getxml() ) from nr_nachricht_tab e  1:1-Transformation... 1:1-Transformation  n:1 Transformation... n:1 Transformation

101 Stylesheet-Transformationen  View-Definition TABLEVIEW HTTP-Zugriff 1:1 Transformation HTTP-Zugriff n:1 Transformation

102 Einsatzgebiete für die Praxis  Layoutneutrale Dokumentspeicherung  Datenaustausch und Integration – DWH-Integration mit relationalen Sichten auf XML-Dokumente – Datenaustausch mit XML-Sichten auf relationale Datenbestände – XML-Messaging

103 Beispiel Börsennachrichten  Kontaktinformationen – relationale Tabelle – schneller Zugriff – Herausforderung: eine Nachricht hat viele Kontakte WKN GESELLSCHAFTKONTAKTARTADRESSE

104 Beispiel Börsennachrichten Kontakt-View create or replace view nr_kontakte as select extractvalue (value(e), '/nachricht/aktie/@wkn') as wkn,extractvalue (value(e), '/nachricht/aktie/@name') as gesellschaft,extractvalue (value(k), '/kontakt/@art') as kontaktart,extractvalue (value(k), '/kontakt/ziel') as kontaktziel,extractvalue (value(k), '/kontakt/adresse') as adresse from nr_nachricht_tab e,table(xmlsequence(extract(value(e),'/nachricht/kontakt'))) k

105 Einsatzgebiete für die Praxis  Layoutneutrale Dokumentspeicherung  Datenaustausch und Integration – DWH-Integration mit relationalen Sichten auf XML-Dokumente – Datenaustausch mit XML-Sichten auf relationale Datenbestände – XML-Messaging

106 Beispiel Aktienkurse relationales Tabellenschema relationales Tabellenschema aktien_tab: wkn name kurse_tab: wkn datum kurs 1 *

107 Beispiel Aktienkurse XML Views  Erstellen der View create or replace view aktienkurse_xml as select XMLElement( "Aktienkurse", XMLElement("Aktie", XMLAttributes( wkn as "WKN", ak.name as "Gesellschaft")), XMLElement("Kurse", XMLAgg( XMLElement( "Kurs",XMLAttributes( k.datum as "vom"), k.kurs)))) as kurse_dokument from aktien_tab ak join kurse_tab k using (wkn) group by wkn, ak.name

108 XML Views  Nutzbar wie XMLType Tabellen  Stylesheet-Transformationen  Zugriff durch HTTP Zugriff durch HTTP  einfacher Austausch relational vorliegender Daten

109 XML-Datenaustausch mit Views  Kommunikation mit Internet-Protokollen HTTP, FTPFTP INSTEAD-OF Trigger

110 Einsatzgebiete für die Praxis  Layoutneutrale Dokumentspeicherung  Datenaustausch und Integration – DWH-Integration mit relationalen Sichten auf XML-Dokumente – Datenaustausch mit XML-Sichten auf relationale Datenbestände – XML-Messaging

111 Oracle Advanced Queuing  Datenbankinternes Messaging  Asynchron  Point-to-Point / Publish-Subscribe  Nutzung der Oracle Datenbank – Backup / Recovery, Datenintegrität, Skalierbarkeit, Nachrichten-Persistenz  Transaktionskonzept  SQL-Zugriff

112 Oracle Advanced Queuing  Messaging auf einem Rechnerknoten  Point-to-Point Anwendung Advanced Queueing Anwendung Oracle EnqueueDequeue

113 Oracle Advanced Queuing  Messaging auf einem Rechnerknoten  publish-subscribe Anwendung Advanced Queueing Anwendung Oracle publish subscribe

114 Oracle Advanced Queuing  Messaging über Rechnergrenzen Anwendung Advanced Queues Advanced Queues Advanced Queues Oracle Propagate Enqueue Anwendung Dequeue

115 Oracle AQ Fähigkeiten  Nachrichten – Nachrichten können nach dem Dequeue behalten werden – Nachrichten-Historie – Nachrichten-Transformation – Kombination mit Oracle DWH-Fähigkeiten – Business-Intelligence  API-Unterstützung – SQL, PL/SQL (DBMS_AQ) – Java (JMS, Oracle AQ API, JDBC)

116 Oracle AQ – PL/SQL Pakete  DBMS_AQADM – Administrative Aufgaben – Einrichten von Queues – Einrichten von Queue Tabellen – Rechteverwaltung  DBMS_AQ – Umgang mit Queues – Einstellen von Nachrichten (ENQUEUE) – Auslesen von Nachrichten (DEQUEUE)

117 Oracle AQ  Nachrichten-Transformation Anwendung Advanced Queues Advanced Queues Advanced Queues Oracle Propagate Anwendung Dequeue Transform Anwendung Enqueue Transform

118 Oracle AQ - Transformationen  PL/SQL oder Java-Funktion  Aktiv... – direkt nach dem ENQUEUE – direkt vor dem DEQUEUE – direkt vor oder nach dem PROPAGATE

119 Oracle AQ und XML DB  Definition des Queue-Payload als XMLType  Nachrichten-Transformation mit XSLT  ENQUEUE / DEQUEUE mit – AQ Servlet – Oracle XML DB und RDBMS Trigger  Zugriff auf Dokumentteile  Integration mit Views – Relationale Views auf Queue Tabelle – XML-Views auf relationale Tabellen mit anschließendem ENQUEUE des virtuellen Dokumentes

120 Oracle AQ und XML DB Datenbank I Datenbank III [DWH] Oracle Datenbank II [Order] FTP HTTP Anwendung

121 Oracle AQ und XML DB Datenbank I Datenbank III [DWH] Oracle Datenbank II [Order] FTP HTTP Enqueue Log Anwendung

122 Oracle AQ und XML DB Datenbank I Datenbank III [DWH] Oracle Datenbank II [Order] FTP HTTP Enqueue Log Propagate Anwendung Dequeue

123 Oracle AQ und XML DB Datenbank I Datenbank III [DWH] Oracle Datenbank II [Order] FTP HTTP Enqueue Log Anwendung Propagate Dequeue

124 Zusammenfassung: Oracle XML DB: zwei Welten... SQL XML RDBMSXML Server

125 ... wachsen zusammen! SQL XML Integrität Ansichten Indizes Oracle

126 XML-Technologie mit Oracle Integrität Ansichten Indizes Messaging mit Oracle AQ

127 Weitere Informationen  Oracle Technology Network – http://otn.oracle.com/tech/xml/xmldb/content.html – http://otn.oracle.com/products/aq/index.html  Dokumentation – Oracle XML database Developers Guide http://download-west.oracle.com/docs/cd/B10501_01  /appdev.920/a96620/toc.htm – Oracle Application Developer's Guide - Advanced Queuing http://download-west.oracle.com/docs/cd/B10501_01  /appdev.920/a96587/toc.htm

128  Ralf Müller  Oracle Technology Center  30. Mai, 1997 Oracle8, the O/R Database for VLDB Ralf M ü ller, semjena.ppt, 26-May-97

129 ADT Order: more detailed Order id customer entry_d ol_cnt order_lines Item id name price data Stock item quantity dist_01 dist_02 OrderLine id quantity stock order in Stock refers to has lines... (customer ADT)

130 ADT Order: modelling in Oracle8 CREATE TYPE Item_t AS OBJECT ( i_idNUMBER, i_nameVARCHAR2(24), i_priceNUMBER, i_dataVARCHAR2(50), MEMBER FUNCTION getPricewithVAT RETURN NUMBER ); CREATE TYPE BODY Item_t AS MEMBER FUNCTION getPricewithVAT RETURN NUMBER IS BEGIN RETURN i_price * 1.15; END getPricewithVAT; END; CREATE TABLE items of Item_t; standard Oracle7 types create table from ADT

131 ADT Order: modelling in Oracle8 (cont.) CREATE TYPE Stock_t AS OBJECT ( s_itemREF Item_t, s_quantityNUMBER, s_dist_01CHAR(24), s_dist_02CHAR(24), MAP MEMBER FUNCTION item_name RETURN VARCHAR2 ); CREATE TYPE BODY Stock_t AS MAP MEMBER FUNCTION item_name RETURN VARCHAR2 IS BEGIN RETURN s_item.i_name; END item_name; END; CREATE TABLE stocks of Stock_t; reference to item_t dereference s_item

132 ADT Order: modelling in Oracle8 (cont.) CREATE TYPE Order_line_t AS OBJECT ( ol_idNUMBER, ol_quantityNUMBER, ol_stockREF stock_t, ol_orderREF order_t ); CREATE TYPE order_line_nt AS TABLE OF Order_line_t;


Herunterladen ppt "Ralf Mueller Server Technologies Oracle Corporation Oracle XML Datenbank."

Ähnliche Präsentationen


Google-Anzeigen