Home l'Altra P.A.      

Ci siamo trasferiti! Continua a seguirci su: http://portal.forumpa.it/, il canale web di FORUM PA dedicato all'innovazione.
ATTENZIONE: gli articoli privi di data in queste pagine, fanno riferimento a documenti precedenti al 2007

home redazione guest book newsletter cerca
Altra P.A. Veloci Altra P.A. Vicine
dossier studi oltreconfine norme articoli
dossier studi oltreconfine norme articoli
versione stampabile
Oracle - Soluzioni Processi
 
 
 


Oracle XML Db è un insieme completo di tecnologie per l'archiviazione ed il recupero di dati XML. In altri termini si tratta di un vero e proprio dbms nativo XML integrato all'interno di Oracle 9i release 2.
XML Db non è quindi un qualcosa di esterno che comunica con il dbms vero e proprio, ma un estensione del dbms che integra coerentemente l'approccio XML con quello tradizionale Sql.

Proprio la riuscita integrazione tra l'approccio nativo XML e il motore tradizionale di Oracle può essere considerato l'aspetto più interessante di XML Db. Si tratta infatti dell'unico sistema presente sul mercato dei dbms che incapsula un approccio nativo a XML all'interno di un potente dbms tradizionale: potenzialmente ciò consente di avere contemporaneamente i vantaggi dei dbms nativi XML e quelli dei prodotti tradizionali relazionali (object-relational).

Le parole chiavi per comprendere le caratteristiche ed il funzionamento dell XML Db sono due: XMLType e XML Db Repository.

L' XMLType è un vero e proprio datatype Oracle studiato appositamente per la memorizzazione di documenti XML all'interno di attributi relazionali. È quindi possibile strutturare la tupla di una tavola relazionale dichiarando uno o più suoi attributi di tipo XMLType per poi inserirvi e estrarvi direttamente dati XML. È anche possibile definire tavole di tipo XMLType: in questo caso ogni tupla della tavola è costituita da un valore di tipo XMLType. In fase di definizione della tavola (sia che contenga attributi XMLType, sia che sia essa stessa di tipo XMLType) è possibile specificare, per ogni XMLType dichiarato, lo schema XML associato: per fare questo è necessario avere già registrato lo schema XML all'interno dell XML Repository.
L'associazione di uno schema XML ad un XMLType è un operazione che ha notevoli conseguenze sulle modalità di gestione dei dati XML, in questo caso infatti sono disponibili le seguenti funzionalità:

Validazione rispetto allo schema: tutti i documenti XML inseriti possono essere se desiderato dall'utente validati automaticamente rispetto allo schema, mediante la scrittura di un constraint o di un trigger che richiama un metodo apposito dell'XMLType.

Modalità di archiviazione strutturata object-relational: è disponibile una particolare modalità di archiviazione e gestione dei dati XML (già attivata per default in caso di utilizzo di schemi), basata sull'applicazione automatica di un mapping object-relational. In questo caso infatti i dati XML verranno spezzettati, strutturati (conformemente allo schema XML) all'interno di apposite tavole (oggetti Object-relational) e attributi creati e gestiti da Oracle. Il tutto in modo assolutamente trasparente all'utente, che potrà quindi ignorare totalmente l'esistenza di queste tavole, e considerare soltanto l'esistenza dell'XMLType. Questa operazione presuppone un lavoro di mapping di tipo object-relational che viene svolto internamente da Oracle in modo totalmente automatico: è anche possibile personalizzare il mapping commentando con un linguaggio apposito gli schemi XML.

L'altra modalità di archiviazione dei documenti XML in XMLType (l'unica utilizzabile in caso di non utilizzo di schemi XML) consiste nella memorizzazione del documento XML così come è direttamente in formato testo, in un attributo nascosto di tipo Clob. La differenza importante rispetto alla memorizzazione esplicita in un Clob è che Oracle sa che si tratta di dati XML e può quindi effettuare alcune ottimizzazioni e mettere a disposizione dell'utente Api per la manipolazione XML (restituzione e gestione del Dom, trasformazioni Xslt, ecc.) e metodi per l'accesso ai dati XML mediante XPath (quali extract, extractValue, existsNode, utilizzabili anche all'interno di statement Sql). La cosa molto interessante è che le Api XMLType per l'accesso e la gestione dei dati XML (disponibili per Java e per Pl/Sql) sono sostanzialmente le stesse sia in caso di memorizzazione strutturata (tramite Schema) che non strutturata.

Le principali differenze di utilizzo esistenti in caso di utilizzo della modalità strutturata sono:

1) la necessità di specificare, in alcune chiamate, informazioni relative al namespace come parametro aggiuntivo,

2) la possibilità in più di definire alcuni vincoli tipicamente relazionali quali quello di chiave esterna.

Oracle XML Db Repository è invece un repository per documenti XML organizzato gerarchicamente per directory come un file system. I dati ivi contenuti sono memorizzati in risorse (sono considerate tali sia le cartelle sia i file, che possono essere documenti XML ma anche file binari). Ogni risorsa è identificata da uno o più percorsi (path name) ed ha associato un insieme estendibile di metadati (proprietario, data di creazione, ecc.). I documenti organizzati nel repository sono memorizzati all'interno dell'XML Db.

L'accesso alle risorse del repository è possibile in diversi modi:

Tramite le due viste Sql RESOURCE_VIEW e PATH_VIEW e appositi operatori per Sql (UNDER_PATH, DEPTH)

Tramite le apposite Api Pl/Sql (DBMS_XDB)

Tramite le Api JNDI per Java

Tramite FTP, HTTP o WebDav (grazie a quest ultimo è possibile navigare nella struttura gerarchica come in un file system direttamente da Windows Explorer o Internet Explorer)

Tra le altre cose la gestione delle risorse presenti nel repository comprende un meccanismo di Access Control List (che permette di delineare in modo preciso chi e come può accedere ad ognuna di esse) e di funzionalità per il controllo del versioning (in caso di update di una risorsa è possibile memorizzare le versioni precedenti e mantenere il controllo sul numero della versione).

È bene precisare che sia i documenti inseriti negli XMLType, sia quelli organizzati nel XML Db Repository sono in realtà archiviati in un unico deposito, l'XML Db, e non si tratta quindi di due contenitori separati. Lo stesso documento XML può essere memorizzato in un XMLType e contemporaneamente indirizzato nell'XML Db repository, anche più volte in punti diversi della gerarchia.

Altre funzionalità e caratteristiche

Le funzionalità di supporto a XML descritte nel precedente paragrafo sono soltanto le principali disponibili nella nuova versione di Oracle. Di seguito saranno descritte ulteriori caratteristiche dell'XML Db.
Un aspetto importante della gestione delle basi di dati XML è la capacità di preservare in ogni suo aspetto il documento originale XML, mantenendolo il più simile possibile a come era prima di essere stato inserito nella base di dati. In proposito Oracle offre due diversi livelli di fedeltà:

Totale Document Fidelity, se i dati sono memorizzati in XMLType in modo non strutturato. In questo caso è offerta quindi la garanzia che il documento estratto dalla base di dati è assolutamente identico a quello in essa precedentemente archiviato (sono preservati anche i singoli spazi).

Dom Fidelity , se i dati sono memorizzati in XMLType in modo strutturato (utilizzando gli schemi). In questo caso è offerta soltanto la garanzia che il Dom del documento estratto dalla base di dati è assolutamente identico a quello del documento in essa precedentemente archiviato. Non sono quindi preservati gli spazi, ma sono invece memorizzate le informazioni relative all'ordine degli elementi, ai commenti e alle istruzioni di processing.

Un altro aspetto importante nella gestione di basi di dati XML, è la possibilità di creare indici per velocizzare l'accesso in fase di interrogazione. In Oracle vi sono diversi tipi di indici utilizzabili, ciascuno ottimizzato per una specifica tipologia di interrogazione possibile, tra questi vi sono gli indici basati sul risultato dell'applicazione di una funzione. Le funzionalità di indicizzazione sono più estese in caso di archiviazione strutturata dei documenti XML. Per quanto riguarda l'architettura interna dell'XML è da segnalare che, per velocizzare la gestione dei dati memorizzati negli XMLType, Oracle9i implementa internamente un duplice sistema di cache:
Una cache serve per mantenere in memoria e rapidamente accessibili le informazioni relative agli schemi XML e quindi alla struttura dei documenti XML archiviati in modo strutturato in tavole object-relational.
Un altra cache viene invece utilizzata per gestire il sistema di virtual Dom supportato nell'accesso ai dati (in caso di archiviazione strutturata). Con una tecnica denominata Lazy XML Loading, Oracle ottimizza l'utilizzo della memoria caricando soltanto i nodi del Dom strettamente necessari e scaricando (applicando una strategia Least Recently Used) quelli meno utili, a seconda della quantità di memoria primaria ancora disponibile.

All'interno dell'XML Db è anche possibile creare viste XMLType. Le viste XML possono essere utilizzate con diversi scopi:

Per permettere un accesso XML a dati di tipo relazionale. Ciò può essere molto utile per usufruire delle nuove funzionalità XML di Oracle anche su vecchi dati di tipo legacy oppure per effettuare delle prove di accesso XML, in entrambi i casi senza la necessità di riconvertire tutti i dati e tutta l'architettura del sistema

Per raggruppare dati provenienti da diversi attributi o tavole XMLType, e/o organizzarli con una nuova struttura gerarchica.

Per aggregare dati eterogenei (relazionali e XML) in un unico documento XML.

Le viste XMLType hanno la stessa struttura delle tavole XMLType e possono anch'esse fare riferimento a schemi XML: in questo caso se i dati sono di origine relazionale è necessario commentare gli schemi con il linguaggio apposito per specificare le modalità del mapping. Per la ricerca di dati all'interno degli XMLType sono disponibili gli appositi metodi extract, extractValue e existsNode, che consentono l'accesso tramite lo standard XPath. É anche possibile utilizzare le soluzioni studiate nella versione precedente di Oracle, implementante all'interno di Oracle Text, aggiornate per la compatibilità con il nuovo XMLType.

Oracle Text permette di creare indici appositi per ottimizzare le ricerche di testo e in particolare di sottostringhe. Per quanto riguarda la generazione di dati XML vi sono molte possibilità a disposizione:

Generazione di XML tramite l'utilizzo delle funzioni standard Ansi SqlX e di alcune estensioni Oracle

Generazione di XML tramite l'uso del package Pl/Sql DBMS_ XMLGEN

Generazione di XML tramite l uso delle funzioni Sql SYS_ XMLGEN, SYS_ XMLAGG e XMLSEQUENCE

Generazione di XML tramite l'uso dell'XML Sql Utility LEnterprise Manager (il tool di amministrazione Oracle) è stato esteso in modo completo: all'interno di esso è infatti possibile vedere, creare e gestire tutte le risorse dell'XML Db.

Anche la possibilità di accedere ai dati della base di dati tramite URL/URI è stata estesa ed aggiornata in modo da permettere l'indirizzamento anche all'interno di dell'XML Db e del XML Db Repository.
Infine anche Oracle Advanced Queueing (AQ), l'applicazione integrata in Oracle per la gestione di code di messaggi, è stata aggiornata appositamente per il supporto dell'XML, essendo XML utilizzato sempre più spesso come formato per i messaggi tra le applicazioni.
AQ si occupa in particolare di gestire la comunicazione asincrona tra le applicazioni mediante messaggi e modelli di comunicazione di tipo punto a punto o publish/subscribe.

Vantaggi dell utilizzo di XML Db per la gestione di dati XML rispetto agli approcci tradizionali dei Db XML-enabled

XML Db si differenzia non poco rispetto alle soluzioni tipicamente implementate nei dbms XML-enabled (memorizzazione esplicita in Clob e mapping semi-assistito in tavole relazionali). Si tratta infatti di un vero e proprio dbms nativo XML integrato all'interno di un dbms tradizionale.

Ciò:

Gli permette di essere il solo prodotto in grado di integrare la gestione di dati strutturati e non strutturati in un unico modello dei dati, pur gestendoli internamente in modo differente e presentando all'utente un'unica modalità di accesso ad essi, un unica interfaccia (Api identiche)

Facilita lo sviluppo di applicazioni che devono lavorare con dati di diverso tipo (relazionali e XML)

Permette all'utente, tramite l'uso delle viste XMLType, di vedere come XML i dati di vecchie basi di dati relazionali senza effettuare conversioni e continuando ad utilizzare le vecchie applicazioni.

Rispetto alla memorizzazione di dati XML esplicita in Clob offre i seguenti vantaggi:

Possibilità di indicizzare i dati ed effettuare ricerche complesse.

Capacità di gestire la concorrenza e le transazioni con granularità fine.

Gestione dei referenziamenti, con controllo automatico dei vincoli in chiave esterna, in conformità allo standard definito dagli XML Schema.

Possibilità di creare diverse viste su dati XML.

Scalabilità e prestazioni.

Facilità di sviluppo di applicazioni, permettendo all'utente di accedere in modo agevole ai singoli elementi XML ed eventualmente modificarli.

Rispetto alla memorizzazione di dati XML in tavole relazionali tramite mapping assistito offre invece i seguenti vantaggi:

Indipendenza rispetto alla struttura. L'utente non sa neanche come verranno realmente strutturate le tavole, deve soltanto fornire gli schemi XML.

Indipendenza rispetto alle modalità di storage. L'utente non sa dove fisicamente saranno memorizzate le informazioni: né in quali tavole, in quali attributi, né con quali vincoli in chiave esterna. Può semplicemente ignorare il problema.

Facilità di esportazione e presentazione. I dati XML sono facilmente esportabili e trasformabili (tramite Xslt) ad esempio in Html.

Facilità di scambio. Mappare esplicitamente i dati in relazionale significa in qualche modo trasformare l'informazione originale, rendendo difficili le operazioni di comunicazione e di scambio di dati XML con l esterno. Il mapping automatico e trasparente gestito dall XML Db, invece, garantisce la DOM fidelity e quindi che i dati estratti dalla base di dati siano gli stessi che erano stati inseriti.

Inoltre XML Db garantisce alte prestazioni, infatti:

La gestione nativa e integrata nel motore Oracle dei dati XML evita la necessità di generare esternamente dati XML o di convertirli in relazionale.

Il virtual Dom consente una gestione ottimale della memoria nell'accesso da Java e Pl/Sql. Supporto integrato nel dbms e ottimizzato a XPath e Xslt.

l sistema di schema-caching consente di accedere sempre istantaneamente alle informazioni relative alla struttura dei dati strutturati.

La possibilità di definire indici su testo tramite Oracle Text velocizza le query con ricerca di sottostringhe.

La possibilità di organizzare i documenti XML in una struttura ad albero (l XML Db Repository) può renderne più veloce il reperimento.



 
 
 partners
Nortel Networks
Siav
SAS
Microsoft
 appuntamenti
 news
Deprecated: Function split() is deprecated in /data/fs/re-set/forumpa/admin/util.php3 on line 733 Deprecated: Function split() is deprecated in /data/fs/re-set/forumpa/admin/util.php3 on line 733 Deprecated: Function split() is deprecated in /data/fs/re-set/forumpa/admin/util.php3 on line 733

18/03 - In Belgio su e-bay con la carta d'identità elettronica

18/03 - Un canale youtube per la città di Genova

18/03 - Il Telefono Azzurro vince il "Premio WWW" de "Il Sole 24 Ore"

home redazione guest book newsletter cerca