XML e Database. Giuseppe Della Penna Università degli Studi di L Aquila. Giuseppe.DellaPenna@univaq.it http://www.di.univaq.



Documenti analoghi
Database. Si ringrazia Marco Bertini per le slides

Introduzione ai database relazionali

DATABASE. A cura di Massimiliano Buschi

Introduzione ai Sistemi di Gestione di Basi di Dati XML

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Lezione 9. Applicazioni tradizionali

Introduzione all Information Retrieval

Corso di Informatica

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Le Basi di Dati. Le Basi di Dati

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

I database relazionali (Access)

1. BASI DI DATI: GENERALITÀ

Informatica per le discipline umanistiche 2 lezione 10

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

19. LA PROGRAMMAZIONE LATO SERVER

Access. P a r t e p r i m a

ARCHIVIA PLUS - ARCHIFILE

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Organizzazione degli archivi

Manuale Gestore. STWS Web Energy Control - Servizio di telelettura sul WEB

Al giorno d oggi, i sistemi per la gestione di database

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

URI. Introduzione. Pag. 1

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Progettazione di un Database

Strutturazione logica dei dati: i file

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI

Cosa è un foglio elettronico

Capitolo 4 Pianificazione e Sviluppo di Web Part

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Corso di Amministrazione di Reti A.A. 2002/2003

CONTENT MANAGEMENT SYSTEM

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

DBMS (Data Base Management System)

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

PIATTAFORMA DOCUMENTALE CRG

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

LA MIGRAZIONE DEI DATI DA ASFI A SIASFI: PROBLEMI E SOLUZIONI. La migrazione dei dati da ASFi a SIASFi: problemi e soluzioni.

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Esercizio data base "Biblioteca"

Progettaz. e sviluppo Data Base

Capitolo 13. Interrogare una base di dati

MODULO 5 ACCESS Basi di dati. Lezione 4

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Progettazione concettuale

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Raggruppamenti Conti Movimenti

FRANCESCO MARINO - TELECOMUNICAZIONI

Soluzione dell esercizio del 2 Febbraio 2004

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Gecom Paghe. Comunicazione per ricezione telematica dati ( Rif. News Tecnica del 14/03/2014 )

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

SOMMARIO. - NEW DATA INFORMATICA TECHNOLOGY Pagina 1 di 21

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

Dispensa di database Access

Dati relazionali e XML

Università Politecnica delle Marche. Progetto Didattico

Database Manager Guida utente DMAN-IT-01/09/10

EXPLOit Content Management Data Base per documenti SGML/XML

Base Dati Introduzione

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Programmi e Oggetti Software

Gestione Risorse Umane Web

Your Detecting Connection. Manuale utente.

Soluzioni integrate per la gestione del magazzino

Lezione 1. Introduzione e Modellazione Concettuale

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

IL CASO DELL AZIENDA. Perché SAP.

Il database management system Access

Lifephone. Introduzione. Database. Sito

Versione 7.0 Taglie e Colori. Negozio Facile

Progettazione della componente applicativa

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Esercizio sui data base "Gestione conti correnti"

Lezione V. Aula Multimediale - sabato 29/03/2008

ARCHIMEDIA Il Programma di ARCHIVIAZIONE OTTICA

Progetto ittorario Anno scol

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

MODULO 5 Appunti ACCESS - Basi di dati

Corso di Sistemi di Elaborazione delle informazioni

ref building AREA ASSET AREA PROPERTY AREA FACILITY AREA AGENCY SCHEDA DI PRODOTTO CONSISTENZA CATASTO FISCALITA GESTIONE DOCUMENTALE CAD GIS

Ottimizzazione delle interrogazioni (parte I)

PSG Table Builder Manuale Utente. PSG TABLE BUILDER Manuale Utente

Sistemi informativi secondo prospettive combinate

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Ogni documento digitalizzato, carta attivo o passivo, viene di infatti accompagnato identità da una sorta di elettron

Ata_NiAg02. Modulo Gestione Agenti

Una metodologia di progettazione di applicazioni web centrate sui dati

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Facoltà di Farmacia - Corso di Informatica

Transcript:

XML e Database Giuseppe Della Penna Università degli Studi di L Aquila Giuseppe.DellaPenna@univaq.it http://www.di.univaq.it/gdellape Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica Regione Abruzzo SED Siemens Taiprora TIM Italia

XML Come Struttura Dati? 2» I documenti XML sono per loro natura contenitori perfetti per strutture dati gerarchiche.» I dati che vengono scambiati sotto forma di documenti XML sono in continua crescita.» Molto spesso la vista XML sui dati è quella preferita degli utenti e dalle applicazioni.» Sorge quindi la necessità di gestire questi dati all interno dei database tenendo conto della loro struttura XML di origine.

Supporto XML nei Database 3» I database più diffusi e installati correntemente sono relazionali, cioè sono basati sul noto modello relazionale.» Il supporto dato da questo tipo di database a XML prevede dei meccanismi di mappatura delle strutture XML sulle relazioni, e si distingue in tre classi: Document-Centric Data-Centric Ibrido

4 Document-Centric» Document-Centric: il documento XML come tale è il dato da inserire nel DB. In questo caso gli interi documenti XML sono inseriti in campi del database, o riferiti da essi. Sui documenti possono essere eseguite rudimentali operazioni di ricerca tamite XPath o espressioni regolari.

Document-Centric 5 Tabella Campo1 Campo2 Campo3 Campo4 <A> <B/> <C/> </A> <A> <B/> <C/> </A> Xyxyxy Xyxyxy Xyxyxy <D> Foobar </D> <E> <F> </F> </E> Pippo Pluto Paperino Record3/1 Record3/2 Record3/3

Data-Centric 6» Data-Centric: la struttura del documento XML è parte fondamentale dei dati da conservare. In questo caso la struttura gerarchica dei documenti XML viene mappata su una serie di tabelle relazionali. Le relazioni tra tabelle permettono di ricostruire la struttura originaria del documento XML. Si possono applicare query molto raffinate su questa struttura, ma di solito il numero di join implicati è molto alto.

Data-Centric 7 Tabella B <A v= 1 > <B>Ciao</B> <C x= y /> </A> B-ID A-Ref Text ID0053 ID0011 Ciao Tabella A A-ID v ID0011 1 Tabella C C-ID A-Ref x ID0078 ID0011 y

Trattamento Ibrido 8» Trattamento ibrido: il documento XML viene mappato in modo data-centric, ma alcuni sottoalberi vengono trattati in maniera documentcentric. Si tratta del metodo più avanzato per gestire i documenti XML, ma anche il più difficile da realizzare. In generale, si trattano in maniera document-centric i sottoalberi in cui sono rari gli accessi in profondità e che sono di solito recuperati in blocco. Per applicare efficientemente questo tipo di trattamento è necessario conoscere in dettsaglio le caratteristiche dei documenti.

Trattamento Ibrido 9 Tabella B B-ID A-Ref Text <A v= 1 > <B>Ciao</B> <D> <E> <F/> </E> </D> </A> ID0053 ID0011 Ciao Tabella A A-ID v ID0011 1 Tabella D D-ID A-Ref Contenuto ID0094 ID0011 <E> <F/> </E>

Tecniche Data-Centric 10» I metodi per mappare documenti XML su database in maniera data-centric e ibrido sono oggetto di numerosi studi. In generale si distinguono due approcci: Creare la struttura del DB in relazione allo schema dei documenti da immagazzinare. Utilizzare una struttura DB generica adatta a tutti i tipi di documenti XML.» Entrambe queste soluzioni hanno vantaggi e svantaggi, e si adattano a specifiche esigenze di memorizzazione e interrogazione.

Prodotti XML-DB Commerciali 11» L efficienza dei correnti prodotti XML-DB in commercio può essere valutata sotto vari punti di vista: Possibilità di adattarsi a documenti con schemi molto diversi. Possibilità di rigenerare documenti XML estraendo dati dal DB (query con output XML). Linguaggi di query utilizzabili: SQL, XQL, XQuery/XPath (specifiche W3C fuse in XPath2). Efficienza nel mappare le query su XML. Possibilità di integrare dati preesistenti nel DB con quelli XML.

Categorie dei Prodotti XML-DB 12» Esistono tre tipi fondamentali di software trattabili in questo contesto: Middleware: strati software che permettono di scambiare dati XML tra database e applicazioni. Database con supporto XML. Database nativi per XML.» Inizialmente lo sviluppo di middleware ha permesso l adattamento dei due mondi. In seguito sono stati sviluppati DBMS nativi, ma attualmente si sta investendo molto nel supporto XML dei più diffusi DBMS commerciali.

DBMS con Supporto XML 13» Database quali Oracle 9i con XDB permettono di gestire documenti XML in maniera document- centric o data-centric.» La gestione di XML in modalità data-centric utilizza le loro estensioni OODBMS per rappresentare elementi XML come oggetti e lo speciale tipo XMLType.» SQL Server 2000 mette a disposizione vari tool sia per mappare documenti XML sulle tabelle relazionali, sia per rigenerare XML dalle query sui database.

DBMS XML Nativi 14» I prodotti nativi per XML permettono di gestire documenti XML come collezioni di dati indicizzati, interrogandoli tramite XPath e XQuery.» In molti casi è disponibile una integrazione con database relazionali standard, tramite schemi che mappano la struttura relazionale su documenti XML.» Il leader tra i prodotti di questo tipo è Tamino di SoftwareAG.

DBMS XML Nativi 15» Nel mondo del free software, i database XML da segnalare sono XIndice, un progetto del gruppo Apache, exist, un progetto indipendente disponibile su sourceforge.» Attualmente exist è il progetto più sviluppato e stabile. Supporta interrogazioni tramite XPath e XQuery 1.0, aggiornamenti tramite il linguaggio XUpdate e accesso da codice tramite l interfaccia standard XML:DB.

Riferimenti 16» Lista di Prodotti XML-DB http://www.rpbourret.com/xml» Specifica di XML Query dal W3C http://www.w3c.org/xml/query» Tamino (SoftwareAG) http://www.softwareag.com/tamino

XML:DB Giuseppe Della Penna Università degli Studi di L Aquila Giuseppe.DellaPenna@univaq.it http://www.di.univaq.it/gdellape Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica Regione Abruzzo SED Siemens Taiprora TIM Italia

Cos è XML:DB? 18» XML:DB è un iniziativa pubblica volta a definire delle API specifiche per l accesso ai database XML nativi.» La struttura delle informazioni in un database XML nativo, così come è vista attraverso XML:DB, è estremamente diversa dalla nota struttura schema/tabella/record/campo tipica dei DBMS relazionali.» Il paradigma organizzativo di questo tipo di DBMS è molto più simile a quello di un filesystem.

Il Database Visto Attraverso XML:DB 19» Le strutture di base esposte da XML:DB sono tre: Collection, che corrispondono grossolanamente agli schemi e alle tabelle relazionali. Resource, che possono essere paragonate ai record relazionali. Service, un sistema estensibile che fornisce l accesso a tutte le funzionalità avanzate del DBMS, sostituendo e integrando la funzione dell SQL nei DBMS relazionali.» A completare gli oggetti di base gestiti dalle API si aggiungono poi il DatabaseManager, che gestisce le connessioni ai DBMS XML nativi, e il ResourceSet, un insieme di Resource utilizzato come output delle funzioni di query.

Le Collection 20» I dati di un DBMS XML sono organizzati all interno di contenitori detti Collection, funzionalmente del tutto simili alle directory di un filesystem.» Le Collection possono essere nidificate.» Il DBMS ha una root collection, all interno della quale vengono solitamente nidificate altre Collection che rappresentano i vari database (compresi quelli di sistema).» Le Collection sono inoltre il punto di partenza per la creazione di Resource e per l accesso a tutti i Service.

Le Collection Esempi 21» Per connettersi al database XML ed acquisire un riferimento alla sua root collection: 1. Si carica dinamicamente la classe driver del database in uso (ad esempio org.exist.xmldb.databaseimpl per exist) 2. Si registra il nuovo database nel manager. 3. Si estrae la root collection a partire dal manager fornendo la connection string del DBMS (ad esempio xmldb:exist://localhost:8080/exist/ xmlrpc/db per exist) e le eventuali username e password. 1 2 3 Class cl = Class.forName(driver); Database database = (Database) cl.newinstance(); DatabaseManager.registerDatabase(database); Collection root = DatabaseManager.getCollection( uri, user", password");

Le Resource 22» Gli elementi inseribili in un database XML sono rappresentati dalle Resource, e possono essere: documenti XML, contenuti in XMLresource. dati binari, contenuti nelle BinaryResource.» Ogni Resource è, in un certo senso, come il record di una tabella, ed è univocamente caratterizzata dal suo id.» Le Resource rappresentano il contenuto delle Collection, tramite le quali possono essere create, modificate e analizzate. Ogni volta che si inserisce una Resource in una Collection se ne deve specificare l id, o lasciare che il DBMS ne crei uno automaticamente. (!) Gli id delle Resource sono univoci solo all interno di una stessa Collection. (!) Se si inserisce in una Collection una Resource con lo stesso id di una già presente, la si sovrascrive.» Al contrario dei DBMS relazionali, nei database XML le Resource nella stessa Collection non devono condividere un tipo comune.

Le Resource 23» Il valore delle Resource può essere assegnato o letto in diverse modalità:» Ogni XMLResource può essere letta/scritta come oggetto DOM (get/setcontentasdom) come sequenza di eventi SAX (get/setcontentassax) tramite altri oggetti supportati (get/setcontent) Ad esempio è possibile impostare il valore di una XMLResource usando un File e leggerlo come String.» Anche per le BinaryResource esistono vari altri oggetti di input/output supportati, a seconda del DBMS in uso.

Le Resource Esempi 24» Le Resource possono essere: 1. Create in una collection. 2. Prelevate tramite il loro id.» Il contenuto di una Resource può essere impostato: 3. A partire da un oggetto DOM. 4. A partire da un File.» Il contenuto di una Resource può essere letto: 5. Sotto forma di un oggetto DOM. 6. Come stringa.» Una risorsa può quindi essere: 7. Scritta/aggiornata nella sua Collection. 8. Rimossa dalla Collection. 1 2 3 4 5 6 7 8 XMLResource res = (XMLResource) coll.createresource(id, "XMLResource"); XMLResource res = (XMLResource) coll.getresource(id); res.setcontentasdom(doc); res.setcontent(new File( )); res.getcontentasdom(); res.getcontent().tostring(); coll.storeresource(res); coll.removeresource(res);

I Service 25» Le funzionalità di base accessibili dalle interfacce di Collection e Resource permettono unicamente di navigare tra la struttura delle Collection e creare/leggere/cancellare le Resource.» Per accedere a funzionalità quali la creazione di Collection, è necessario accedere ai servizi del DBMS, rappresentati dai Service.» La struttura dei Service permette di dotare il DBMS di un insieme di funzionalità estensibili e raffinabili nel tempo.» (!) I Service sono sempre relativi a una Collection, dalla quale di ottengono tramite il metodo getservice.

I Service di Base 26» I Service di base offerti da qualsiasi DBMS XML sono CollectionManagementService, che permette di creare le strutture di Collection. XPathQueryService, che permette di interrogare la base di dati tramite XPath. XUpdateQueryService, che permette di aggiornare le risorse nella base di dati utilizzando il linguaggio XUpdate.

I Service Esempi 27» A partire da una Collection, è possibile ottenere i relativi Service specificandone il nome e la versione: 1. Il CollectionManagementService 2. L XPathQueryService 3. L XUpdateQueryService» Da notare che è sempre necessario effettuare l opportuno cast sull oggetto restituito da getservice. 1 2 3 Collection coll = ; CollectionManagementService colman = (CollectionManagementService) coll.getservice( "CollectionManagementService", "1.0"); XPathQueryService xpq = (XPathQueryService) coll.getservice("xpathqueryservice", "1.0"); XUpdateQueryService s = (XUpdateQueryService) coll.getservice("xupdatequeryservice", "1.0");

Il CollectionManagementService 28» Il CollectionManagementService dispone di metodi per creare (createcollection) e rimuovere (removecollection) le Collection.» Le Collection gestite da questo Service sono unicamente quelle all interno della Collection padre, cioè quella a partire dalla quale viene richiesto il Service.» Se si cerca di creare una Collection già presente, il DBMS si limiterà a restituire un riferimento alla Collection preesistente.

Il CollectionManagementService Esempi 29» In questo esempio si crea, all interno della Collection puntata dalla variabile coll, una nuova Collection denominata col1, e al suo interno una seconda Collection denominata col2.» A questo scopo, 1. Si acquisisce il CollectionManagementService di coll. 2. Si crea la Collection col1. 3. Si acquisisce il CollectionManagementService di col1. 4. Si crea col2. 1 2 3 4 CollectionManagementService colman = (CollectionManagementService) coll.getservice( "CollectionManagementService", "1.0"); newcoll = colman.createcollection( col1"); colman = (CollectionManagementService) newcoll.getservice( "CollectionManagementService", "1.0"); nestnewcoll = colman.createcollection( col2");

L XPathQueryService 30» L XPathQueryService permette di eseguire interrogazioni XPath (metodo query), i cui risultati sono restituiti sotto forma di ResourceSet (!) Gli XPath usati sono namespace aware, per cui è necessario usare gli opportuni prefissi di namespace nel path, e registrare le corrispondenti URI tramite il metodo setnamespace del Service.» Le Resource restituite possono essere sia vere Resource contenute nel database, sia Resource temporanee (ad esempio, frammenti di documenti contenuti in altre Resource).» (!) Le query vengono applicate a tutte le Resource di tipo XML contenute in tutte le Collection a partire da quella su cui è stato creato il Service.

L XPathQueryService Esempi 31» Per eseguire una query XPath su tutte le Resource contenute nella Collection puntata da coll: 1. Si acquisisce l XPathQueryService da coll. 2. Si caricano gli eventuali namespace bindings sul Service. 3. Si esegue la query. 4. È quindi possibile iterare sul ResourceSet risultante e prelevarne le singole Resource per esaminarle. 1 2 3 4 XPathQueryService xpq = (XPathQueryService) coll.getservice("xpathqueryservice", "1.0"); xpq.setnamespace( prf, http://... ); ResourceSet result = xpq.query(xpath); for(int i=0; i < result.size(); ++i) { Resource res = result.getresource(i); }

L XUpdateQueryService 32» L XUpdateQueryService permette di inviare al DBMS delle query di aggiornamento espresse nel linguaggio XUpdate.» XUpdate è un linguaggio XML prodotto anch esso all interno dell iniziativa XML:DB.» (!) Gli aggiornamenti si applicano a tutte le Resource contenute in tutte le Collection a partire da quella su cui è creato il Service.» Gli aggiornamenti possono includere la creazione di frammenti di documento, la modifica o l eliminazione di elementi.

L XUpdateQueryService Esempi 33» Per effettuare un aggiornamento con XUpdate su tutte le Resource contenute nella Collection puntata da coll: 1. Si acquisisce l XUpdateQueryService da coll. 2. Si costruisce il documento Xupdate che programma l aggiornamento. 3. Si esegue l aggiornamento.» L esempio di documento XUpdate a destra aggiunge, a tutti gli elementi selezionati dall Xpath path (all interno delle Resorce raggiungibili a partire dalla Collection associata all XUpdatQueryService) un elemento figlio el, con un attributo at avente valore A e con contenuto testuale B. 1 2 3 XUpdateQueryService s = (XUpdateQueryService) coll.getservice("xupdatequeryservice", "1.0"); String statement = ; s.update(statement); <x:modifications version= 1.0 xmlns:x="http://www.xmldb.org/xupdate"> <x:append select="path"> <x:element name= el > <x:attribute name= at">a</x:attribute> B </x:element> </x:append></x:modifications>

Riferimenti 34» exist (sourceforge) http://exist.sourceforge.net» XML:DB (sourceforge) http://xmldb-org.sourceforge.net