ORACLE 9i, die native XML Datenbank

Werbung
<Präsentation>
<Speaker>
<Name>
Carsten Czarski
Ulrike Schwinn
<?xml version=“1.0“>
<!doctype Präsentation [
<!element Speaker (Name)>
<!element Name (#pcdata)>
<!element Thema (#pcdata)>
]>
Oracle Deutschland GmbH
</Name>
</Speaker>
<Thema>
“Relational and Beyond”:
Oracle9i, die native XML Datenbank
</Thema>
</Präsentation>
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML-Dokumente
Die Objektrelationale Speicherform
Zugriffsarten
Integration
XML-Datenbank-Architektur
Informationen
Demonstration
Warum XML in der Datenbank ?
y
y
y
y
y
y
Vereinigung von verschiedensten Daten (wie
z.B. Strukturierte und unstrukturierte Daten) in
einem Server
Erweiterung des XML Datenmodells
Einfache Administration
Hohe Skalierbarkeit (Performanz) durch XML
Verarbeitung und Datenspeicherung in der DB
Standardkonformität der Applikationen
Einfache Integrationsmöglichkeiten
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML-Dokumente
Die Objektrelationale Speicherform
Zugriffsarten
Integration
XML-Datenbank-Architektur
Informationen
Demonstration
Unterschiedliche Speicherarten
Die Speicherart richtet
sich nach den
Anforderungen der
Anwendung:
Clob
Nativ als
Dokument
Relational
Nativ
Objektrelational
• Konkurrierender Zugriff
• Vokabularänderung
• Ladeperformance
• Abfrage-Performance
• Redundanzen
• XML Schema Support
Geschichte
Release 1
Release 2
Geschichte
y
y
y
y
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
Release 1
Release 2
Geschichte
y
y
y
y
y
y
y
y
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
y
y
y
y
XML Datentyp
dokumentbasiert
XPath Zugriffe
Indizes
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
Release 2
Geschichte
y
y
y
y
y
y
y
y
y
y
y
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
y
y
y
y
XML Datentyp
dokumentbasiert
XPath Zugriffe
Indizes
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
y
y
y
y
y
y
y
y
Objektrelational
XML Schema
Zugriffe mit
WebDAV, DOM
XML Datentyp
dokumentbasiert
XPath Zugriffe
Indizes
XML Werkzeuge
relational / CLOB
XSQL Servlet
XML SQL Utility
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML-Dokumente
Die objektrelationale Speicherform
Zugriffsarten
Integration
XML-Datenbank-Architektur
Informationen
Demonstration
Beispiel
order Tabelle
order{Verweis auf Customer, Verweis auf funds}
customer Tabelle
customer{“MaxMustermann“,“Ringstr14“,“Frankfurt“,4711)
customer{...}
funds Tabelle
funds{“471100“,“Funds Inc..“,1000}
funds{“081500“,...,....}
Was sind "annotated" XML
Schemas?
y
y
Sind W3C Standardkonform (siehe
Namespace-Konzept)
Sind XML Schemas mit "Zusatzinformationen"
–
y
hier: Oracle spezifische Objektnamen,
Speicherung etc
Bei der Schema-Prüfung ignoriert der Parser
gemäß W3C alle unbekannte Namespaces
–
Datenbankunabhängige Parser beachten nur das
allgemeine XML Schema
annotated XML Schema
http://xmlns.microsoft.com/xml
http://www.w3.org/2001/XMLSchema
Ein XML Schema kann Annotations für
verschiedene Datenbanken enthalten,
da die jeweiligen Informationen durch
Namespaces abgegrenzt werden.
http://xmlns.oracle.com/xdb
Beispiel: XML Schema
XML Schema Annotations
Annotation
y SQLName
y SQLType
y SQLCollType
y MaintainOrder
y MaintainDOM
y SQLInline
y ColumnProps
y TableProps
y DefaultTable
Beschreibung
y
y
y
y
y
y
y
y
y
Name SQL Objekt
Name SQL Typ
Name SQL Collection
OCT oder VARRAY
Speichern DOM Info
Speicherung in Objekt ?
Storage Klausel für Spalten
Storage Klausel für Tabelle
Tabellename bei
Auslagerung
Schema-Registrierung
.
.
.
------------ QMTS Executing SQL -----------CREATE OR REPLACE TYPE "XMLUSER"."CUSTOMER_T" AS OBJECT
("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T",
"NAME" VARCHAR2(4000), "STREET" VARCHAR2(4000),
"CITY" VARCHAR2(4000), "ACCOUNT" VARCHAR2(10))
NOT FINAL INSTANTIABLE
------------ QMTS Executing SQL -----------CREATE OR REPLACE TYPE "XMLUSER"."ORDER_T" AS OBJECT
("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T",
"WKN" VARCHAR2(6), "FUNDSNAME" VARCHAR2(50),
"AMOUNT" NUMBER)
NOT FINAL INSTANTIABLE
.
.
.
Nach der Schema-Registrierung
Eine zugehörige XML-Instanz
XML Tabellen
y
dokumentbasierte Ablage als CLOB
CREATE TABLE order_tab OF XMLTYPE;
y
objektrelationale Ablage in einer XMLTYPE-Tabelle
CREATE TABLE order_tab OF XMLTYPE
XMLSCHEMA "http://www.fundsinc.com/funds/order.xsd"
ELEMENT "order";
y
objektrelationale Ablage in einer Tabellenspalte
CREATE TABLE order_tab
(id NUMBER, order_doc XMLTYPE)
XMLTYPE order_doc STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://www.fundsinc.com/funds/order.xsd"
ELEMENT "order";
XML Tabellen
TABLE OF XMLTYPE XMLSCHEMA....
XML Tabellen
TABLE OF XMLTYPE XMLSCHEMA....
XMLDATA
order
customer
funds
funds
funds
name
street
city
wkn
wkn
wkn
name
name
name
amount
amount
amount
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML-Dokumente
Die Objektrelationale Speicherform
Zugriffsarten
Integration
XML-Datenbank-Architektur
Informationen
Demonstration
JDBC
Zugriffsarten
HTTP
WebDAV
FTP
Oracle
Net
AQ Zugriff
HTTP
Protokoll-Handler
XML Datenbank
Oracle9i Datenbank
DAV,FTP
Protokoll-Handler
SQL
Engine
Select
select extract(value(e), ’/order/customer/name’)
from order_tab e
where
existsnode(value(e),’/order/funds[wkn="471100"]’)=1
y
y
XPath in WHERE-Klausel selektiert das
Dokument
XPath in SELECT-Liste selektiert innerhalb
des Dokumentes
Piecewise Update
update order_tab e
set value(e) = updatexml
(value(e),’/order/funds[wkn="999999"]/name/text()’,
’no funds’)
where
existsnode(value(e),’/order/funds[wkn="999999"]’)=1
y
y
y
updateXML()-Funktion
XPath Ausdruck
Update findet auf den gespeicherten
Objekten statt – KEIN DOM-Parsing
„Piecewise Update“
order
customer
name
street
city
Tabelle
funds
funds
funds
wkn
funds
wkn
wkn
name
wkn
name
name
count
name
count
count
count
Tabelle
en
r
r
e
p
s
n
e
o
i
s
t
e
a
l
L
a
e
k
n
s
E
kei
k
c
o
L
e
kein
Query Rewrite
y
y
Optimierung der SQL-Kommandos
XPath Auswertung
–
–
y
ohne Parsen des Gesamtdokuments
objektrelationales Mapping
gezielte Ansprache der objektrelationalen
Tabellenspalten
Ohne „Query Rewrite“
y
y
Das Abfragen von Teilinformationen eines
XML Dokuments muß durch
Parserfunktionalität erfüllt werden
Aufbau eines DOM Baumes ist erforderlich
DOM-Baum
Objektrelationale Tabelle
order
XPath:
customer
/order/customer/name
funds
funds
funds
name
street
city
wkn
wkn
wkn
name
name
name
amount
amount
amount
Mit „Query Rewrite“
Objektrelationale Tabelle
order
SELECT
extractvalue(value(e),
’/order/customer/name’)
FROM order_tab e
funds
funds
funds
wkn
wkn
wkn
name
name
name
amount
amount
amount
customer
name
street
city
SELECT
e.xmldata.customer.name
FROM order_tab e
XML Indizes – Volltextindex
y
Oracle Text:
–
–
Context
CTXXPATH [vollst. XPath-Unterstützung]
create index idx_ctxxpath on order_tab e (value(e))
indextype is ctxsys.ctxxpath;
select extract(value(e), ’/order/customer/name’)
from order_tab e
where
existsnode(value(e),’/order/funds[wkn="471100"]’)=1
XML Indizes – B-Baum Index
y
y
Query Rewrite
größer-als und kleiner-als Abfragen
create index idx_account on order_tab e
(extractvalue(value(e), ’/order/customer/account’)
select extract(value(e), ’/order/customer/name’)
from order_tab e
where
existsnode(value(e),’/order/funds[amount > 1000]’)=1
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML-Dokumente
Die Objektrelationale Speicherform
Zugriffsarten
Integration
XML-Datenbank-Architektur
Informationen
Demonstration
HTTP-Zugriffe
y
y
Stylesheet-Transformationen werden in der
Datenbank duchgeführt
Beispiel:
Integration durch relationale
Views
Tabelle Order_tab
Konto
Kundenname
Strasse
4711
.
:
:
Max Mustermann
.
:
:
Ringstra..
:
:
:
Beispiel für eine Relationale
View
CREATE OR REPLACE VIEW order_view
AS
SELECT
extractvalue(value(e),’/order/customer/name’) as CNAME,
extractvalue(value(i),’/funds/wkn’) as FWKN,
extractvalue(value(i),’/funds/fundsname’) as FNAME
FROM order_tab e, table(
xmlsequence(extract(value(e),’/order/funds’))
) i
SELECT * FROM order_view
CACC
---------4711
4711
CNAME
-------------Max Mustermann
Max Mustermann
FWKN
-----471100
081500
FNAME
------------------------Funds Inc Global Treasury
Funds Inc American Technology
Integration durch XML-Views
Tabelle Order_tab
Konto
Kundenname
Strasse
4711
.
:
:
Max Mustermann
.
:
:
:
:
Ringstra..
Definition XML View
create view customer_xml as select
xmlelement
(
"customer",
xmlattributes(account as "Konto"),
xmlforest
(
c.name as "name",
c.street as "street",
c.city as "city"
),
xmlelement
(
"orders",
xmlattributes(count(o.id) as "count")
)
) as result
from customer c left outer join orders o using (account)
group by account, c.name, c.street, c.city
Integration durch Foreign Keys
Integrität
alter table order_tab
add constraint FK_CUSTOMER_ACCOUNT
foreign key (xmldata.customer.account)
references customer_rel_tab(account);
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML Dokumente
Die objekrelationale Speicherform
Zugriffsmöglichkeiten
Integration
XML Datenbank-Architektur
Informationen
Demonstration
Architektur
XML DB Repository
HTTP
FTP
SQL*NET
Shared Server
XML Schemas
DB-Schema
Installation und Konfiguration
y
y
y
y
y
y
y
Enthalten in Standard- und Enterprise-Edition
Benutzt OR Features
Legt neues Schema an: XDB (account locked)
Beim Aufruf des DBCAs wird automatisch die XDB
mitinstalliert und die Protokolle konfiguriert
Konfigurationsdatei: /xdbconfig.xml
Konfigurierbar über EM
Default:
–
–
WEBDAV, HTTP: Port: 8080
FTP : Port: 2100
EM- Unterstützung
Gegenüberstellung der
Speicherformen
Nativ als Dokument
y
y
y
y
CLOB wird als gesamte
Datei abgespeichert
Eingeschränkte DML
Fähigkeiten
Sehr flexibel
Hoher Platzverbrauch
Nativ Objektrelational
y
y
y
y
y
y
Schemaabhängigkeit
Objektrelationale Speicherung
Integration in die relationale
Welt
„Piecewise Update“ möglich
Geringer
Speicherplatzverbrauch
Zugriffsoptimierung durch
„Query Rewrite“
Agenda
y
y
y
y
y
y
y
y
Warum XML in der Datenbank?
Speicherarten für XML Dokumente
Die Modelbasierte Speicherform
Zugriffe
Integration
XML Datenbank Architektur
Informationen
Demonstration
Informationen
y
Schulungen/Seminare:
–
–
y
y
Oracle9i: XML Fundamentals for Developers (3 Tage)
Oracle und XML
Handbücher:
– XML API Reference
– XML Database Developer’s Guide
– XML Developer’s Kits (XDKs) Guide
OTN: http://otn.oracle.com/tech/xml/xmldb/content.htm
– Oracle XML DB : Uniting XML Content and Data
(Seybold Consulting Group, March 2002)
– Oracle XML DB : Frequently Asked Questions
– Oracle XML DB : Technical White paper
– Oracle XML DB : Key Features in Oracle9i Database
Release 2
Herunterladen