4 - XML e basi di dati



Похожие документы
I Sistemi Informativi

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Modellazione dei dati in UML

Guida all uso di Java Diagrammi ER

Introduzione ai database relazionali

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

extensible Markup Language

XSL: extensible Stylesheet Language

Le Basi di Dati. Le Basi di Dati

Capitolo 13. Interrogare una base di dati

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Organizzazione degli archivi

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Rappresentazione grafica di entità e attributi

Lezione 1. Introduzione e Modellazione Concettuale

Progettaz. e sviluppo Data Base

Introduzione all Information Retrieval

Database. Si ringrazia Marco Bertini per le slides

Dati relazionali e XML

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

Informatica per le discipline umanistiche 2 lezione 10

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Volumi di riferimento

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

Progettazione di Basi di Dati

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

I database relazionali (Access)

TEORIA sulle BASI DI DATI

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

MODELLO RELAZIONALE. Introduzione

EXPLOit Content Management Data Base per documenti SGML/XML

Operazioni sui database

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

XQuery. è lo standard adottato dal W3C per la XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare i contenuti XML

Il Modello Relazionale

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

Creare documenti XML. La natura epistemologica della codifica. Perché comprare XML? La struttura gerarchica ordinata. Riassumendo le componenti

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

Progettazione di un Database

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A Language) Stylesheet.

DATABASE RELAZIONALI

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

Sistemi Informativi e Basi di Dati

Informatica I per la. Fisica

Corso di Informatica di base per le discipline umanistiche - XPATH

Elementi di Algebra Relazionale

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

DATABASE. A cura di Massimiliano Buschi

Il database management system Access

XML. Concetti principali. Risultato possibile. Differenze tra XML e HTML

XML e Sistemi per la Gestione di Basi di Dati Relazionali

Linguaggi per il web oltre HTML: XML

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

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

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Architettura MVC-2: i JavaBeans

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

XML: extensible Markup Language

Introduzione alla teoria dei database relazionali. Come progettare un database

MODULO 5 ACCESS Basi di dati. Lezione 4

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

Esercitazione di Basi di Dati

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

XML e Basi di Dati Corso di Basi di Dati 1. XML e basi di dati. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

DATABASE.

CONCETTO DI ANNIDAMENTO

Limiti della gestione tradizionale degli archivi. Prof. Francesco Accarino IIS Altiero Spinelli

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

1. BASI DI DATI: GENERALITÀ

GAUDI SSPC: Tracciato XSD flussi G01-G03 Gestore di rete GAUDI-SSPC GESTIONE FLUSSI G01 G03. Descrizione Tracciati File XSD Terna per Gestore di rete

BASI DI DATI - : I modelli di database

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Basi di Dati Multimediali. Fabio Strocco

Progettazione concettuale

Facoltà di Farmacia - Corso di Informatica

Dispensa di database Access

Spiegazione Open Interest Storico:

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Транскрипт:

Sommario 4 - XML e basi di dati 1. Introduzione. 2. Dati strutturati, semistrutturati e non strutturati. 3. Modello dei dati gerarchico (Albero) di XML. 4. Documenti XML, DTD, e schema XML. 5. Documenti XML e basi di dati. 6. Interrogazioni in XML 6.1 XPath 6.2 XQuery 1 2 1- Introduzione HTML è usato fondamentalmente per formattare documenti Web e non è adatto per specificare sintatticamente e semanticamente dati strutturati estratti da database. Un nuovo linguaggio detto XML (extended Markup Language) si è affermato come lo standard per strutturare e scambiare dati sul Web. XML può essere usato per ottenere più informazioni sulla struttura e significato dei dati nelle pagine Web piuttosto che specificare come le pagine Web sono formattate per la visualizzazione. Gli aspetti di formattazione sono specificati separatamente per esempio, usando un linguaggio di formattazione come XSL (extended Stylesheet Language). 3 2 - Dati Strutturati, semistrutturati e non strutturati. Le informazioni immagazzinate in database sono note come dati strutturati perché sono rappresentati in un formato rigido : il DBMS assicura che tutti i dati seguano le strutture e i vincoli specificati a parte nello schema della base dei dati. In alcune applicazioni, i dati sono raccolti in una maniera ad-hoc prima che sia noto come essi verranno immagazzinati e maneggiati. Questi dati possono avere una certa struttura, ma non tutte le informazioni raccolte avranno identica struttura. Questo tipo di dati è noto come dati semi-strutturati. Nei dati semi-strutturati, le informazioni dello schema sono inframmezzate ai dati, poiché ciascun oggetto può avere differenti attributi che non sono noti a priori. Quindi questo tipo di dati sono detti dati auto-descrittivi. Una terza categoria è nota come dati non strutturati, perché vi è una indicazione molto limitata del tipo dei dati. Un tipico esempio è un documento di testo che contiene informazioni legate con esso. Le pagine Web in HTML che contengono alcuni dati sono considerati dati non strutturati. 4

Dati Strutturati, semi-strutturati e non strutturati(cont.) Rappresentazione con un grafo di dati semistrutturati I dati semi-strutturati possono essere rappresentati da un grafo diretto: Le etichette (tags) sugli archi del grafo diretto rappresentano i nomi di schema nomi di attributi, tipi oggetto (o tipi entità o classi), e relazioni. I nodi interni rappresentano oggetti individuali o attributi composti. I nodi foglia rappresentano i valori effettivi dei dati atomici. 5 6 3 - Modello dei dati gerarchico (Albero) di XML Modello dei dati gerarchico (Albero) di XML (2) L oggetto base in XML è il documento XML. Vi sono due principali concetti di strutturazione che sono usati per costruire un documento XML : elementi e attributi. Gli attributi in XML forniscono informazioni aggiuntive che descrivono gli elementi. Come in HTML, gli elementi sono identificati in un documento dal loro tag di inizio and tag di fine. I nomi dei tag sono racchiusi tra le parentesi angolari < >, and i tag di fine sono ulteriormente identificati da un backslash </ >. Gli elementi complessi sono costruiti in modo gerarchico a partire da altri elementi gli elementi semplici contengono i valori dei dati. Un elemento complesso XML chiamato (Company) <projects> 7 E naturale vedere la corrispondenza tra la rappresentazione XML testuale e la struttura ad albero. Nella rappresentazione ad albero, i nodi interni rappresentano elementi complessi, mentre i nodi foglia rappresentano elementi semplici. Perciò il modello XML è chiamato un modello ad albero or gerarchico. 8

Modello dei dati gerarchico (Albero) di XML(3) E possibile caratterizzare tre tipi principali di documenti XML 1. Documenti XML incentrati sui dati : Questi documenti hanno molti dati di dimensioni ridotte che seguono una specifica struttura, e quindi possono essere estratti da un database strutturato. Essi sono formattati come documenti XML per scambiarli o visualizzarli su Web. 2. Documenti XML incentrati sul documento : Questi sono documenti con grande quantità di testo, come news articoli or libri. In questi documenti vi sono pochi (o nessun) dato strutturato. 3. Documenti XML ibridi : Questi documenti possono avere parti che contengono dati strutturati e altre parti che sono prevalentemente testuali o non strutturati. 9 4 - Documenti XML, DTD, e schema XML. Ben Formato Deve iniziare con una dichiarazione XML per indicare la versione di XML usata come altri rilevanti attributi. Deve seguire la struttura sintattica del modello ad albero: questo significa che ci deve essere un unico elemento radice, e che ogni elemento deve contenere una coppia di tag di inizio e fine correlati tra loro, contenuta tra i tag dell elemento padre. Un documento XML ben formato è sintatticamente corretto. Questo gli consente di essere processato da generici processori che attraversano il documento e creano la rappresentazione interna ad albero: DOM (Document Object Model) - Consente ai programmi di manipolare la risultante rappresentazione ad albero corrispondente a documenti XML ben formati. Quando si usa DOM, l intero documento deve essere analizzato anticipatamente. SAX - Consente di elaborare i documenti XML al volo notificando al programma di elaborazione quando si incontra un tag di inizio o fine. Valido Un criterio più forte per un documento XML è essere valido. In questo caso, il documento deve essere ben formato, e in aggiunta deve essere scritto in modo che i nomi utilizzati nelle coppie di tag di inizio e fine siano coerenti con la struttura specificata in un file DTD (Document Type Definition) o in un file XML schema. 10 Documenti XML, DTD, e schema XML (2) Un file DTD XML detto projects. 11 Documenti XML, DTD, e schema XML (3) Notazione DTD di XML Un * che segue il nome di un elemento significa che l elemento può essere ripetuto zero o più volte nel documento. Questo può essere chiamato un elemento opzionale multivalore (che si ripete) Un + che segue il nome di un elemento significa che l elemento può essere ripetuto una o più volte nel documento. Questo può essere chiamato un elemento obbligatorio multivalore (che si ripete) Un? che segue il nome di un elemento significa che l elemento può essere ripetuto zero o una volta. Questo può essere chiamato un elemento opzionale a valore singolo (che non si ripete). Un elemento che appare senza i precedenti tre simboli deve apparire esattamente una volta nel documento. Questi sono elementi obbligatori a valore singolo (non ripetuti). Il tipo di un elemento viene specificato tra parentesi di seguito all elemento. Se le parentesi comprendono nomi di altri elementi, questi ultimi all interno della struttura ad albero sono i figli dell elemento a cui le parentesi stesse si riferiscono. Se le parentesi includono la parola chiave #PCDATA o uno degli altri tipi di dato disponibili in XML DTD, l elemento è un nodo foglia. PCDATA sta per parsed character data, che è analogo al tipo di dati stringa. Nella specifica degli elementi le parentesi possono essere nidificate. Un simbolo barretta ( e1 e2 ) specifica che nel documento possono apparire e1 o e2. 12

Documenti XML, DTD, and Schema XML (4) Limitazioni del DTD (Document Type definition) di XML I tipi di dato del DTD non sono molto generali. DTD ha la sua particolare sintassi e pertanto richiede processori specializzati. Potrebbe essere vantaggioso specificare lo schema dei documenti XML usando le regole sintattiche di XML stesso in modo tale che gli stessi processori dei documenti XML possano processare le descrizioni dello schema XML. Tutti gli elementi DTD sono sempre forzati a seguire l ordine del documento pertanto non sono permessi elementi non ordinati. 13 <xs: schema xmlns:xs= http:// www.w3.org/2001/xmlschema > <xs: element name= projects > <xs: sequence> <xs: element name= project minoccurs= 1 maxoccurs= unbounded > <xs: sequence> <xs:element name= Name type xs:string />.. <xs: element Deptno type= xs:unsignedint minoccurs= 0 maxoccurs= 1 /> <xs: element name= Worker minoccurs= 0 maxoccurs= unbounded > <xs: sequence> <xs:element name= SSN type= xs:string />.. <xs: element name= hours type= xs:float /> </ xs: sequence> </ xs: element > </ xs: sequence> </xs: element> </ xs: sequence> </xs: element> </xs: schema> XML Schema per projects 14 Lo schema concettuale ER per il database COMPANY Risultato del mapping dello schema ER COMPANY in uno schema relazionale. 15 16

Documenti XML, DTD, e Schema XML (5.) Un file schema XML detto company (1). 17 Un file schema XML detto company (2). 18 Un file schema XML detto company (3). 19 Un file schema XML detto company (4). 20

Documenti XML, DTD, e Schema XML (6) XML Schema Descrizione dello schema e Namespace XML : E necessario identificare lo specifico insieme di elementi (tags) del linguaggio di XML schema specificando un file immagazzinato in un sito Web. La seconda linea dell esempio specifica il file usato nell esempio, cioè: "http://www.w3.org/2001/xmlschema". Ogni definizione di questo tipo è chiamata un namespace XML. Il nome di file è assegnato alla variabile xsd utilizzando l attributo xmlns (XML namespace), e questa variabile è usata come prefisso per tutti i tag del XML schema. Annotazioni,documentazione e linguaggio usato: Gli elementi xsd:annotation e xsd:documentation sono usati per prevedere commenti e altre descrizioni nel documento XML. L attributo XML:lang dell elemento xsd:documentation specifica il linguaggio usato. Per es. en Element e Type: Noi specifichiamo root element del ns. XML schema. Nel XML schema, l attributo name del tag xsd:element specifica il nome dell elemento, chiamato company per il root element nel ns. esempio. La struttura del root element company è xsd:complextype. 21 Documenti XML, DTD, e schema XML (7) XML Schema Elementi di primo livello nel database company: Questi elementi sono chiamati employee, department, and project, e ciascuno è specificato in un tag xsd:element. Se un tag ha solo attributi e nessun ulteriore sotto-elemento o dato, può essere terminato con il simbolo back slash (/>) e chiamato Empty Element. Specificazione del tipo dell elemento e minime e massime occorenze: Se noi specifichiamo l attributo type in an xsd:element, questo significa che la struttura dell elemento sarà descritta separatamente, tipicamente usando l elemento xsd:complextype. I tag minoccurs e maxoccur sono usati per specificare i limiti inferiore e superiore del numbero di occorrenze di un elemento. Il default è esattamente una occorrenza. Specificazione delle keys: Per specificare primary keys, è usato il tag xsd:key. Per specificare foreign keys is usato il tag xsd:keyref. Quando specifichiamo una foreign key, l attributo refer of the tag xsd:keyref specifica la primary key referenziata mentre i tag xsd:selector and xsd:field specificano il tipo dell elemento referito e la foreign key. 22 Documenti XML, DTD, e schema XML (8) XML Schema Specificare la struttura degli elementi complessi via tipi complessi : Nel nostro esempio elementi complessi sono Department, Employee, Project, and Dependent, che usano il tag xsd:complextype. Noi specifichiamo ciascuno di questi come una sequenza di sottoelementi correspondenti agli attributi del database di ciascun tipo di entità usanso i tag xsd:sequence and xsd:element of XML schema. A ciascun elemento è assegnato un nome ed un tipo mediante gli attributi name and type of xsd:element. Possiamo anche specificare gli attributi minoccurs and maxoccurs se necessitiamo modificare il default di esattamente una occorrenza. Per gli attributi (optional) del database dove null is allowed, dobbiamo specificare minoccurs = 0, dove per gli attributi multivalore del database dobbiamo specificare maxoccurs = unbounded sull elemento corrispondente. Attributi composti (compound) : Attributi Composti nello Schema ER sono anche specificati come complex types in the XML schema, come illustratto dai tipi complessi Address, Name, Worker, and WorkesOn. Avrebbero comunque potuto essere inseriti direttamente nelle definizioni degli elementi padre. 23 5 - Documenti XML e Basi di dati. Approcci per memorizzare documenti XML Usando un DBMS per immagazzinare i documenti come testo : Possiamo usare un DBMS per immagazzinare interi documenti XML come campi di testo all interno dei record del DBMS. Questo approccio può essere usato se il DBMS ha un modulo per l elaborazione documentale che dovrebbe lavorare per immagazzinare documenti schemaless and document-centric XML. Usando un DBMS per immagazzinare i contenuti dei documenti come dati : Questo approccio dovrebbe lavorare per immagazzinare una collezione di documenti che seguono uno specifico XML DTD or XML schema. Poiché tutti i documenti hanno la stessa struttura, noi possiamo progettare un RDBMS per memorizzare gli elementi di livello foglia all interno dei documenti XML. Progettare un sistema specializzato per la memorizzazione di dati XML nativi: Un nuovo tipo di sistema database basato sul modello gerarchico (ad albero) dovrebbe essere disegnato ed implementato. Il sistema dovrebbe includere tecniche di indexing and querying, e dovrebbe lavorare per tutti i tipi di documenti XML. Creando o pubblicando documenti XML personalizzati a partire da basi di dati relazionali preesistenti Siccome ci sono enormi quantità di dati già memorizzate in database relazionali, parte di questi dati potrebbe essere formattato come documenti per lo scambio o la visualizzazione su Web the Web. 24

Documenti XML e Basi di dati (2.) Estrazione di documenti XML da basi di dati Relazionali Supponiamo che una applicazione ha bisogno di estrarre documenti XML per informazioni su studenti, corsi, e votazioni (grade) da un database di nome UNIVERSITY(vedi figura). I dati necessari per questi documenti sono contenuti negli attributi delle entità della base di dati course, section, and student come mostrato (parte del ER principale), e delle associazioni s-s e c-s sussistenti tra loro. Sottoschema del database UNIVERSITY necessario per l estrazione del documento XML. 25 26 Documenti XML e Basi di dati (3) Estrazione di documenti XML da basi di dati Relazionali. Una delle possibili gerarchie che può essere estratta dal sottodatabase potrebbe scegliere course come radice. 27 Vista gerarchica (albero) con COURSE nodo radice. 28

Documenti XML e Basi di dati (4) Eliminazione dei cicli per la conversione di grafi in alberi E possibile avere un sottoinsieme più complesso con uno o più cicli, indicando relazioni multiple tra le entità. Supponiamo di aver bisogno delle informazioni in tutti i tipi di entità e relazioni nella figura che segue per un particolare documento XML, con student come elemento radice. Schema XML del documento con COURSE radice. 29 30 Documenti XML e Basi di dati(5) Prima replichiamo INSTRUCTOR come mostrato nella parte (2) della figura chiamando la replica alla destra INSTRUCTOR1. La replica INSTRUCTOR sulla sinistra rappresenta la relazione tra istruttori e la sezione in cui essi insegnano mentre la replica INSTRUCTOR1 sulla destra rappresenta la relazione tra istruttori e dipartimento in cui ognuno di essi lavora Abbiamo ancora il ciclo COURSE. Possiamo replicare COURSE in una maniera simile, ottenendo la gerarchia della parte (3). La replica COURSE1 alla sinistra rappresenta la relazione tra i corsi e le loro sezioni mentre la replica COURSE alla destra rappresenta la relazione tra i corsi e i dipartimenti in cui essi sono tenuti. UNIVERSITY 31 32 Uno Schema ER per una base di dati semplificata Eliminazione dei cicli per convertire grafi in alberi Una via per interrompere i cicli è replicare i tipi di entità coinvolte nei cicli

Conversione di un grafo con cicli in una struttura gerarchica (ad albero). 33 6 - Interrogazioni in XML (1) 6.1 XPath Una espressione XPath ritorna una collezione di elementi nodi che soddisfa certi pattern specificati nell espressione. I nomi nell espressione XPath sono nomi di nodo nel documento ad albero XML che sono o nomi di tag (elementi) o nomi di attributi, possibilmente con addizionali condizioni di qualificazione per ulteriormente restringere i nodi che rispettano il pattern. Vi sono due principali separatori che specificano un path: singolo slash (/) and doppio slash (//). Un singolo slash prima di un tag specifica che il tag deve apparire come un figlio diretto del precedente(genitore) tag, mentre un doppio slash specifica che il tag può apparire come un discendente del precedente tag ad ogni livello. E consuetudine includere il nome di file in ogni query XPath consentendoci di specificare ogni nome di file locale o nome di path che specifica il path. doc(www.company.com/info.xml)/company => COMPANY XML doc 34 Interrogazioni in XML(2) 1. Ritorna il nodo radice COMPANY e tutti i suoi nodi discendenti, il che significa che ritorna il documento XML intero. 2. Ritorna tutti i nodi (elementi) department e i loro sottalberi discendenti. 3. Ritorna tutti i nodi employeename che sono diretti figli di un nodo employee, tale che il nodo employee ha un altro elemento figlio employeesalary il cui valore è più grande di 70000. 4. Questo ritorna lo stesso risultato di 3. eccetto che in questo esempio viene specificato il path name completo 5. Questo ritorna tutti i nodi projectworker and i loro nodi discendenti che sono figli sotto un path /company/project e che hanno un nodo figlio hours con valore più grande di 20.0. Interrogazioni in XML (3) Esempi di espressioni XPath su documenti XML che seguono il file Schema XML COMPANY. 35 36

Interrogazioni in XML(4) 6.2 XQuery XQuery usa espressioni XPath, ma ha costrutti aggiuntivi. XQuery permette la specifica di interrogazioni più generali su uno o più documenti XML. La forma tipica di una interrogazione in XQuery è nota come le espressioni FLWR, che sta per le quattro clausole principali di XQuery ed ha la seguente forma: FOR <variabili legate a nodi individuali (elementi)> LET <variabili legate a collezioni di nodi (elementi)> WHERE <condizioni di qualificazione> RETURN <specificazione di risultati di interrogazioni> 37 Interrogazioni in XML(5) 1. Questa interrogazione recupera il nome ed il cognome degli impiegati che guadagnano più di 70000. La variabile $x viene legata a ogni elemento employeename figlio degli elementi employee, per cui il valore employeesalary è più grande di 70000. 2. Questo è un modo alternativo per rintracciare gli stessi elementi rintracciati dalla prima interrogazione 3. Questa interrogazione illustra come un operazione di join può essere eseguita in presenza di più di una variabile. La variabile $x è legata ad ogni elemento projectworker figlio del progetto n.5, mentre la variabile $y è legata a ogni elemento employee. La condizione di join confronta i valori di SSN al fine di recuperare i nomi degli employee 38 Interrogazioni in XML (6) Esempi di interrogazioni XQuery su documenti XML conformi al file schema XML COMPANY. 39