Ralf Mueller Server Technologies Oracle Corporation
-
Upload
jana-joseph -
Category
Documents
-
view
43 -
download
1
description
Transcript of Ralf Mueller Server Technologies Oracle Corporation
![Page 1: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/1.jpg)
Ralf Mueller
Server TechnologiesOracle Corporation
Oracle XML Datenbank
![Page 2: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/2.jpg)
Agenda
XML in der DatenbankSpeicherformen 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-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
![Page 3: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/3.jpg)
Warum XML in der Datenbank ...?
![Page 4: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/4.jpg)
... und nicht einfach im Dateisystem?
![Page 5: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/5.jpg)
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– ...
![Page 6: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/6.jpg)
XML Standards
XML – W3C DOM – W3C XPath – W3C XML Schema – W3C XSL and XSLT – W3C WebDAV - IETF SQL/XML – ANSI/ISO
![Page 7: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/7.jpg)
Wie speichert man XML-Dokumentein Datenbanken ...?
![Page 8: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/8.jpg)
Herausforderungen
relationale Datenbestände
Abruf als XML
Beispiele:- heterogene Systeme- XML Schnittstellen- Versorgung des Workflow- Abruf per HTTP oder FTP
![Page 9: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/9.jpg)
Herausforderungen
XML-Dokumente
Abruf mit SQL
Überführung in DWHoder andere Anwendung
Beispiele:- XML als Austauschformat im e-Business- Sammlung und Aggregation im DWH- DWH-Versorgung aus heterogenen Systemen
![Page 10: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/10.jpg)
Herausforderungen
relationale Datenbestände
Integritäts-bedingungen
XMLDatenbestände
Beispiele:- XML Dokumente nativ speichern (jur. Gründe)- Validitätsprüfung gegen Stammdaten in einer relationalen Datenbank- Validierung im laufenden Workflow
![Page 11: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/11.jpg)
HerausforderungenReferentielle Integrität in XML
XML-Datenmodell referentielle Integrität
– ID– IDREF– IDREFS
Dokumentbezogen
![Page 12: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/12.jpg)
HerausforderungenReferentielle Integrität in XML
XML-Datenmodell referentielle Integrität
– ID– IDREF– IDREFS
Dokumentbezogen Das Dokument kann
ohne weiteres nicht verlassen werden
![Page 13: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/13.jpg)
1. Lösungsansatz
relationale Speicherung Zwei-Tabellen-Modell
ID TYPE VALUE
1 ELE Order 2 ELE Kunde 3 ELE Name 4 TEX Mustermann 5 ATT id 6 TEXT 4711
ID PARENT_ID
1 NULL 2 1 3 2 4 3 5 1 6 5
![Page 14: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/14.jpg)
1. Lösungsansatz
• Semantik aus Tabellen nicht nachvollziehbar• Schwierige Integration
• z.B. Stammdatentabellen
• Tuning schwierig• Indizierung schwierig• Volltextsuche schwierig• Komplexe JOIN-Operationen
![Page 15: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/15.jpg)
2. Lösungsansatz
relationale Speicherung Fachliches Datenmodell
ID NAME DEPOT
1 Muster 4711 2 Meier 4712 3 Schmitt 4713
ID WERTPAPIER
1 VW AG 2 Oracle Corp. 3 Sun Microsys.
KUNDEN
![Page 16: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/16.jpg)
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.
![Page 17: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/17.jpg)
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
![Page 18: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/18.jpg)
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!
![Page 19: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/19.jpg)
HTTP
FTP
SQL*NET
User XDB: XML DB Repository
Oracle Shared Server
XML Schema
Oracle XML DB: Architektur
User SCOTT: XML Dokumente
![Page 20: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/20.jpg)
WebDAV
![Page 21: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/21.jpg)
FTP
![Page 22: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/22.jpg)
Installation der XML DB
Softwareinstallation– Keine Besonderheiten, automatisch bei der DB-
Konfiguration, zusätzliches Schema XDB, FTP und HTTP-Portkonfiguration
Datenbankerstellung
![Page 23: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/23.jpg)
Installation der XML DB
![Page 24: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/24.jpg)
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
![Page 25: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/25.jpg)
TCP/IP Port für FTP und HTTP
![Page 26: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/26.jpg)
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
![Page 27: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/27.jpg)
XML DB Repository
TableName ACL
Property 1
Property N
Property N
XML Tabellen im
User SchemaB TreeIndex
TextIndex
HierarchicalIndex
FTP
HTTP
xdb$resource
Resource_view
![Page 28: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/28.jpg)
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)
![Page 29: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/29.jpg)
Folder anlegen
PL/SQL
per FTP oder im WebDAV-Client
declare
result boolean;
begin
result := dbms_xdb.createFolder('/public/<Ein Name>');
end;
COMMIT;
![Page 30: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/30.jpg)
Clob
Relational
Die Speicherart richtetsich nach den Anforderungen der Anwendung:
• Konkurrierender Zugriff• Vokabularänderung• Ladeperformance• Abfrage-Performance• Redundanzen• XML Schema Support
Unterschiedliche Speicherarten
Nativ alsDokument
NativObjektrelational
![Page 31: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/31.jpg)
Clob
Relational
Die Speicherart richtetsich nach den Anforderungen der Anwendung:
• Konkurrierender Zugriff• Vokabularänderung• Ladeperformance• Abfrage-Performance• Redundanzen• XML Schema Support
Unterschiedliche Speicherarten
Nativ alsDokument
NativObjektrelational
![Page 32: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/32.jpg)
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
![Page 33: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/33.jpg)
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
![Page 34: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/34.jpg)
Mischformen
Beide Konzepte in einem Dokument Beispiele:
– Zeitungsartikel mit strukturierten Zusatzinformationen Autor, Zeitung, Erscheinungsdatum ...
– Kreditanträge Strukturierte Kunden- und Kreditdaten Unstrukturierte Begründungen
![Page 35: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/35.jpg)
Technologie-StackXML-Dokumentspeicherung
OS-Blöcke System Calls
![Page 36: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/36.jpg)
Technologie-StackXML-Dokumentspeicherung
OS-Blöcke
relationaleTabellen(Oracle 1.0)
System Calls
SQL
![Page 37: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/37.jpg)
Technologie-StackXML-Dokumentspeicherung
OS-Blöcke
relationaleTabellen
System Calls
SQL
ObjektrelationaleDatenbank(Oracle 8.0)
SQL – ObjektrelationaleSyntax (SQL99)
![Page 38: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/38.jpg)
Technologie-StackXML-Dokumentspeicherung
OS-Blöcke
relationaleTabellen
System Calls
SQL
ObjektrelationaleDatenbank
SQL – ObjektrelationaleSyntax (SQL99)
XML DB(Oracle 9.2)
XML-NavigationXPath
![Page 39: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/39.jpg)
Technologie-Stackrein dokumentorientiertes XML
OS-Blöcke System Calls
SQL
XML DBXML-NavigationXPath
CLOB-Datentyp
relationaleTabellen
![Page 40: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/40.jpg)
Beispiel: Börsennachrichten
![Page 41: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/41.jpg)
Beispiel: BörsennachrichtenBeschreibung als XML Schema
![Page 42: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/42.jpg)
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
![Page 43: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/43.jpg)
Beispiel BörsennachrichtRegistrierung des XML Schemas 1. Ansatz:
– W3C XML Schema wird unverändert in Oracle registriert
– Oracle Enterprise Manager
![Page 44: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/44.jpg)
Beispiel BörsennachrichtRegistrierung des XML Schemas Schema-URL zur
Identifizierung des XML Schemas in der Datenbank
URL sinnvoll jeder String möglich
![Page 45: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/45.jpg)
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
![Page 46: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/46.jpg)
"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"
![Page 47: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/47.jpg)
annotated XML Schema
http://www.w3.org/2001/XMLSchema
http://xmlns.oracle.com/xdb
Ein XML Schema kann Annotations fürverschiedene Datenbanken enthalten,da die jeweiligen Datenbanken fremde Annotations gemäß W3C ignorieren sollen
http://xmlns.microsoft.com/xml
![Page 48: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/48.jpg)
Beispiel BörsennachrichtSchema Annotations
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.
<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>
![Page 49: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/49.jpg)
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.
![Page 50: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/50.jpg)
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.
![Page 51: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/51.jpg)
Beispiel BörsennachrichtSchema Annotations
<xs:element name="kontakt" type="kontakt_t" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="NR_KONTAKT" xdb:defaultTable="NR_KONTAKT_TAB" xdb:SQLInline="false"/>
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
![Page 52: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/52.jpg)
Beispiel: BörsennachrichtenBeschreibung als XML Schema
Speicherung alsGanzes
![Page 53: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/53.jpg)
Beispiel BörsennachrichtRegistrierung des XML Schemas 2. Ansatz:
– Oracle-Annotations– SQLType– SQLName– ...
![Page 54: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/54.jpg)
Beispiel BörsennachrichtErgebnisse: 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
![Page 55: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/55.jpg)
Weitere Schema-AnnotationsmaintainDOM
<xs:complexType name="aktie_t" xdb:SQLType="NR_AKTIE_T"xdb:maintainDOM="false">
<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>
maintainDOM: Ein/Ausschalten der "DOM-Fidelity"
Steuert die Speicherung von Kommentaren, Processing Instructions, Mixed Content
Wenn "native XML Speicherung" nicht benötigt wird, kanndie "DOM-Fidelity" so ausgeschaltet werden. Die Performance
verbessert sich.
![Page 56: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/56.jpg)
Schema AnnotationsmaintainDOM
![Page 57: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/57.jpg)
Schema AnnotationsmaintainDOM Informationsverlust
– Kommentare– Processing Instructions– Mixed Content
Sinnvoll ....– Wenn "native XML-Speicherung" nicht nötig ist– Ladeperformance ist "Bottle-Neck"
![Page 58: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/58.jpg)
Beispiel Börsennachrichten
Neue Tabellen anlegen– XMLTYPE als DatentypCREATE 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.
![Page 59: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/59.jpg)
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 relationalxmlschema "<schema-url>" element "<root element>"
![Page 60: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/60.jpg)
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
![Page 61: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/61.jpg)
Tabellen partitionierenfür XML-Tabellen Voraussetzungen:
– Objektrelationale Speicherung – Lizenzierung (Datenbank-Option)
Partitionierungskriterien– Range, Hash, List– Partitionierungsschlüssel
Indizes– Globale Indizes– Lokale Indizes
![Page 62: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/62.jpg)
Beispiel BörsennachrichtenPartitionierte Tabelle Neue Tabellen anlegen
create table nachrichten_part_tab of xmltypexmlschema "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')))/
![Page 63: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/63.jpg)
nachricht:aktiedatumquellekontaktetitel
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 werdenaktie:wknnamebranchereuters
kontakte:zielartadresse
1 1
1 *
![Page 64: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/64.jpg)
nachricht:aktiedatumquellekontaktetitelbody
Beispiel Börsennachrichten:Reales Datenmodell Überschreiten der Dokumentgrenze Durch Datenbank-Constraints Integritätsbedingungen möglich zu ...
– relationalen Tabellen – anderen XML-Dokumenten
aktie:wknnamebranchereuters
kontakte:zielartadresse
1
1 *
*
![Page 65: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/65.jpg)
XML Schema referenzieren
<nachricht xmlns="http://www.oracle.com/aktie/nachrichten.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"typ="Unternehmensmeldung"
xsi:schemaLocation="http://www.oracle.com/aktie/nachrichten.xsd C:\nachrichten.xsd"
>
W3C-Standardkonforme Verknüpfung von XML Dokumentund XML Schema. Das Dokument wird häufig als "Instanz" des XML Schemas bezeichnet.Gut zu erkennen ist die Lage des Schemadokumentes im Dateisystem.
![Page 66: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/66.jpg)
XML Schema referenzieren
<nachricht xmlns="http://www.oracle.com/aktie/nachrichten.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"typ="Unternehmensmeldung"
xsi:schemaLocation="http://www.oracle.com/aktie/nachrichten.xsd http://www.oracle.com/aktie/nachrichten.xsd"
>
Unter dieser URL wurde das XML Schema in Oracle mit dem Enterprise Manager registriert.
![Page 67: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/67.jpg)
Beispiel BörsennachrichtenStatus .... XML Schema
– Oracle Annotations vorhanden– Schema in der Datenbank registriert
Speicherungsmodell objektrelational– Objekttypen vorhanden– Tabelle vorhanden
![Page 68: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/68.jpg)
Laden
objektrelationale Speicherung– XML Schema muss in XML-Dokument
referenziert sein– FTP und WebDAV– SQL und SQL*Loader
![Page 69: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/69.jpg)
Beispiel BörsennachrichtenLaden mit FTP oder WebDAV
Referenz auf XML Schema?
dokumentbasiert im XML DB Repository
Nein
Ohne Schema-Referenz ist keineTabellenzuordnung und somit keine objektrelationale Speicherung möglich.
Oracle kann nicht wissen, ob dieses XML Dokument gültig ist oder nichtund speichert es daher als Datei ins XML DB Repository.
![Page 70: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/70.jpg)
Beispiel BörsennachrichtenLaden mit FTP oder WebDAV
Referenz auf XML Schema?
XML Schemaregistriert?
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.
![Page 71: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/71.jpg)
Beispiel BörsennachrichtenLaden mit FTP oder WebDAV
Referenz auf XML Schema?
XML Schemaregistriert?
Verstoß gegenConstraints?
Dokument wirdabgewiesen
Ja
Ja
Ja Wenn die Inhalte des XML-Dokumentsgegen hinterlegte Integritätsbedinungen verstoßen, wird es abgelehnt. Es ist für die Datenbank ungültig.
![Page 72: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/72.jpg)
Beispiel BörsennachrichtenLaden mit FTP oder WebDAV
Referenz auf XML Schema?
XML Schemaregistriert?
Verstoß gegenConstraints?
objektrelational in XMLTYPE-Tabelle
Ja
Ja
Nein
![Page 73: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/73.jpg)
Beispiel Börsennachrichten
SQL INSERTINSERT INTO NR_NACHRICHT_TABVALUES( XMLTYPE ( '<?xml version="1.0"?><nachricht xmlns........ ));
![Page 74: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/74.jpg)
Schemavalidierung
"leichte Schemaprüfung"– beim Einfügen– Strukturprüfung– Performancegründe
vollständige Schemavalidierung– aktivierbar– RDBMS-Trigger
![Page 75: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/75.jpg)
Beispiel BörsennachrichtenZugriff mit HTTP Zugriff mit URL
– Protokoll– Hostname und TCP/IP Port
http://localhost:9080/
![Page 76: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/76.jpg)
Beispiel BörsennachrichtenZugriff mit HTTP Zugriff mit URL
– Protokoll– Hostname und TCP/IP Port– Datenbank-Kürzel
http://localhost:9080/oradb/
![Page 77: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/77.jpg)
Beispiel BörsennachrichtenZugriff mit HTTP Zugriff mit URL
– Protokoll– Hostname und TCP/IP Port– Datenbank-Kürzel– Datenbankschema
http://localhost:9080/oradb/<User-ID>
![Page 78: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/78.jpg)
Beispiel BörsennachrichtenZugriff mit HTTP Zugriff mit URL
– Protokoll– Hostname und TCP/IP Port– Datenbank-Kürzel– Datenbankschema– Tabelle
http://localhost:9080/oradb/<User-ID>/NR_NACHRICHT_TAB
![Page 79: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/79.jpg)
Beispiel BörsennachrichtenZugriff mit HTTP Zugriff mit URL
– Protokoll– Hostname und TCP/IP Port– Datenbank-Kürzel– Datenbankschema– Tabelle– Optional: XPath Einschränkung
http://localhost:9080/oradb/<User-ID>/NR_NACHRICHT_TAB/ROW/nachricht/kontakt[ziel="Finanzen.net"]
![Page 80: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/80.jpg)
Zugriff mit SQL
Zugriff auf XML-Elemente XPath SQL-Funktionen
– EXTRACT– EXTRACTVALUE– EXISTSNODE
![Page 81: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/81.jpg)
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 titelfrom nr_nachricht_tab e
![Page 82: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/82.jpg)
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 titelfrom nr_nachricht_tab ewhere existsnode( value(e), '/nachricht/aktie[@wkn="871460"]') = 1
![Page 83: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/83.jpg)
Ohne „Query Rewrite“
XML-Dokument
DOM-Baum
wkn
SELECT extractvalue ...FROM nr_nachricht_tab e
![Page 84: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/84.jpg)
Mit „Query Rewrite“
SELECT extractvalue ... FROM nr_nachricht_tab e
Objektrelational gespeichertesXML-Dokument
SELECT e.xmldata. ... FROM nr_nachricht_tab e
Query Rewrite nachricht:aktiedatumquellekontaktetitelbody
aktie:wknnamebranchereuters
kontakte:zielartadresse
![Page 85: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/85.jpg)
Query Rewrite
Optimizer Funktionalität nicht möglich bei ...
– XPath Funktionen– XPath Variablen– Wildcards– UNION Operator
![Page 86: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/86.jpg)
Technologie-StackXML-Dokumentspeicherung
OS-Blöcke
relationaleTabellen
System Calls
SQL
ObjektrelationaleDatenbank
SQL – ObjektrelationaleSyntax (SQL99)
XML DB(Oracle 9.2)
XML-NavigationXPath
QU ERY
REWRITE
![Page 87: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/87.jpg)
Beispiel-BörsennachrichtB-Tree Index Einfaches Beispiel
Voraussetzung– Objektrelationale Speicherung
create index idx_aktie_wkn on nr_nachricht_tab e(extractvalue(value(e),'/nachricht/aktie@wkn')/
![Page 88: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/88.jpg)
Beispiel-BörsennachrichtB-Tree Index
NR_NACHRICHT_TAB Objekt vollständig in einer Tabellenzeileabgelegt
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
![Page 89: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/89.jpg)
Beispiel-BörsennachrichtB-Tree Index
NR_NACHRICHT_TAB
Auslagerung der 1:n Beziehung in eine eigene Tabelle mit Schema Annotations.
NR_KONTAKTE_TAB
![Page 90: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/90.jpg)
Beispiel-BörsennachrichtB-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')/
![Page 91: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/91.jpg)
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
![Page 92: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/92.jpg)
Piecewise Update
Ändere den Firmennamen bei den Nachrichten mitder 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
![Page 93: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/93.jpg)
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
![Page 94: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/94.jpg)
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
![Page 95: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/95.jpg)
Layoutneutrale Dokumentspeicherung Dokumente als XMLTYPE unstrukturiert
– u.U. strukturierte Teile– Börsennachrichten
Volltextsuche Stylesheet-Transformationen
![Page 96: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/96.jpg)
Volltextsuchemit 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
![Page 97: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/97.jpg)
Volltextsuche mit Oracle TEXT
ctx_ddl.create_section_group( group_name => 'nachrichten_sec_group' ,group_type => 'PATH_SECTION_GROUP');
create index idx_nachrichten_volltexton nr_nachricht_tab e (value(e))indextype is CTXSYS.CONTEXTparameters ('section group nachrichten_sec_group')
Index anlegen
![Page 98: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/98.jpg)
Volltextsuche mit Oracle TEXT
select score(1), value(e)from nr_nachricht_tab ewhere CONTAINS ( value(e) ,' (Software and Kooperation) INPATH (/nachricht/body) ' ,1 )>0
Volltextrecherche ...
![Page 99: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/99.jpg)
Stylesheet Transformationen
Datenbankintern– Stylesheet muss in der Datenbank vorliegen
SQL-Funktion– XMLTransform()
Aggregat über mehrere Dokumente – XMLAgg()
![Page 100: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/100.jpg)
Stylesheet-Transformationen
select xmltransform ( value(e) ,xdburitype ( '/public/idevelop/nachricht_html.xsl' ).getxml() )from nr_nachricht_tab e
1:1-Transformation ... n:1 Transformation ...
![Page 101: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/101.jpg)
Stylesheet-Transformationen
View-Definition
TABLE VIEW HTTP-Zugriff 1:1 Transformation
HTTP-Zugriff n:1 Transformation
![Page 102: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/102.jpg)
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
![Page 103: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/103.jpg)
Beispiel Börsennachrichten
Kontaktinformationen– relationale Tabelle– schneller Zugriff– Herausforderung:
eine Nachricht hat viele Kontakte
WKN
GESELLSCHAFT
KONTAKTART
ADRESSE
![Page 104: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/104.jpg)
Beispiel BörsennachrichtenKontakt-View
create or replace view nr_kontakteasselect 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 adressefrom nr_nachricht_tab e ,table(xmlsequence(extract(value(e),'/nachricht/kontakt'))) k
![Page 105: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/105.jpg)
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
![Page 106: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/106.jpg)
Beispiel Aktienkurserelationales Tabellenschema
aktien_tab:wknname
kurse_tab:wkndatumkurs
1
*
![Page 107: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/107.jpg)
Beispiel AktienkurseXML 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_dokumentfrom aktien_tab ak join kurse_tab k using (wkn)group by wkn, ak.name
![Page 108: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/108.jpg)
XML Views
Nutzbar wie XMLType Tabellen Stylesheet-Transformationen Zugriff durch HTTP einfacher Austausch relational vorliegender
Daten
![Page 109: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/109.jpg)
XML-Datenaustauschmit Views Kommunikation mit Internet-Protokollen
HTTP, FTP
INSTEAD-OFTrigger
![Page 110: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/110.jpg)
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
![Page 111: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/111.jpg)
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
![Page 112: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/112.jpg)
Oracle Advanced Queuing
Messaging auf einem Rechnerknoten Point-to-Point
Anwendung
Advanced QueueingAnwendung
Anwendung
Oracle
Enqueue Dequeue
![Page 113: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/113.jpg)
Oracle Advanced Queuing
Messaging auf einem Rechnerknoten publish-subscribe
Anwendung
Advanced QueueingAnwendung
Anwendung
Anwendung
Oraclepublish
publish
subscribe
subscribe
![Page 114: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/114.jpg)
Oracle Advanced Queuing
Messaging über Rechnergrenzen
Anwendung
Anwendung
Anwendung
Advanced Queues
Advanced Queues
Advanced Queues
Oracle
Oracle
Oracle
Propagate
Propagate
Enqueue
Enqueue
Anwendung
Dequeue
Dequeue
![Page 115: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/115.jpg)
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)
![Page 116: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/116.jpg)
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)
![Page 117: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/117.jpg)
Oracle AQ
Nachrichten-Transformation
Anwendung
Advanced Queues
Advanced Queues
Advanced Queues
Oracle
Oracle
Oracle
Propagate
PropagateAnwendung
Dequeue
Dequeue
Transform
Anwendung
Anwendung
Enqueue
Enqueue
Transform
![Page 118: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/118.jpg)
Oracle AQ - Transformationen
PL/SQL oder Java-Funktion Aktiv ...
– direkt nach dem ENQUEUE– direkt vor dem DEQUEUE– direkt vor oder nach dem PROPAGATE
![Page 119: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/119.jpg)
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
![Page 120: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/120.jpg)
Oracle AQ und XML DB
Datenbank IDatenbank III [DWH]
Oracle
Datenbank II [Order]
FTPHTTP
Anwendung
![Page 121: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/121.jpg)
Oracle AQ und XML DB
Datenbank IDatenbank III [DWH]
Oracle
Datenbank II [Order]
FTPHTTP
Enqueue
Log
Anwendung
![Page 122: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/122.jpg)
Oracle AQ und XML DB
Datenbank IDatenbank III [DWH]
Oracle
Datenbank II [Order]
FTPHTTP
Enqueue
Log
Propagate
Propagate
Anwendung
Dequeue
![Page 123: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/123.jpg)
Oracle AQ und XML DB
Datenbank IDatenbank III [DWH]
Oracle
Datenbank II [Order]
FTPHTTP
Enqueue
Log
Anwendung
Propagate
Propagate
Dequeue
Dequeue
Dequeue
![Page 124: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/124.jpg)
Zusammenfassung:Oracle XML DB: zwei Welten ...
SQ
LX
ML
RDBMS XML Server
![Page 125: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/125.jpg)
... wachsen zusammen!
SQ
LX
ML
Integrität
Ansichten
Indizes
Oracle
![Page 126: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/126.jpg)
XML-Technologie mit Oracle
Integrität
Ansichten
Indizes
Messaging mit Oracle AQ
![Page 127: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/127.jpg)
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 Queuinghttp://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96587/toc.htm
![Page 128: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/128.jpg)
Ralf Müller
Oracle Technology Center 30. Mai, 1997
Oracle8, the O/R Database for VLDB
Ralf Müller, semjena.ppt, 26-May-97
![Page 129: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/129.jpg)
ADT Order: more detailed
Order
idcustomerentry_dol_cntorder_lines
Item
idnamepricedata
Stock
itemquantitydist_01dist_02
OrderLine
idquantitystockorder
in Stock
refers to
has lines
... (customer ADT)
![Page 130: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/130.jpg)
ADT Order: modelling in Oracle8
CREATE TYPE Item_t AS OBJECT ( i_id NUMBER, i_name VARCHAR2(24), i_price NUMBER, i_data VARCHAR2(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
![Page 131: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/131.jpg)
ADT Order: modelling in Oracle8 (cont.)
CREATE TYPE Stock_t AS OBJECT ( s_item REF Item_t, s_quantity NUMBER, s_dist_01 CHAR(24), s_dist_02 CHAR(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
![Page 132: Ralf Mueller Server Technologies Oracle Corporation](https://reader036.fdocuments.us/reader036/viewer/2022062422/5681310a550346895d973e9b/html5/thumbnails/132.jpg)
ADT Order: modelling in Oracle8 (cont.)
CREATE TYPE Order_line_t AS OBJECT (ol_id NUMBER,ol_quantity NUMBER,ol_stock REF stock_t,ol_order REF order_t
);
CREATE TYPE order_line_nt AS TABLE OF Order_line_t;