Abilità Informatiche A.A. 2010/2011 Lezione 10: XML & DBMS. Facoltà di Lingue e Letterature Straniere



Documenti analoghi
extensible Markup Language

Linguaggi per il web oltre HTML: XML

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

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

APPENDICE C extensible Markup Language

Introduzione ai Sistemi di Gestione di Basi di Dati XML

XML. XML è contemporaneamente: XML non è:

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

Introduzione ai database relazionali

Database. Si ringrazia Marco Bertini per le slides

EXPLOit Content Management Data Base per documenti SGML/XML

Le Basi di Dati. Le Basi di Dati

XSL: extensible Stylesheet Language

Dati relazionali e XML

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

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

Capitolo 4 Pianificazione e Sviluppo di Web Part

1. BASI DI DATI: GENERALITÀ

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

Corso di Informatica

Una metodologia di progettazione di applicazioni web centrate sui dati

Introduzione all Information Retrieval

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

Creare un Ipertesto. 1

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

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

Basi di dati 9 febbraio 2010 Compito A

19. LA PROGRAMMAZIONE LATO SERVER

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Strutturazione logica dei dati: i file

5. Fondamenti di navigazione e ricerca di informazioni sul Web

XML: La nascita del linguaggio

Ottimizzazione delle interrogazioni (parte I)

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

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

Organizzazione delle informazioni: Database

DATABASE.

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

Capitolo 13. Interrogare una base di dati

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

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

Il database management system Access

Base Dati Introduzione

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

Facoltà di Farmacia - Corso di Informatica

Organizzazione degli archivi

Simple & Efficient.

Dispensa di database Access

L'efficienza non è solo energetica!

2104 volume III Programmazione

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

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Corso sul linguaggio SQL

Esercizio data base "Biblioteca"

Volumi di riferimento

Caratteristiche principali. Contesti di utilizzo

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

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

DATABASE RELAZIONALI

MANUALE PORTALE UTENTE IMPRENDITORE

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Sistemi Informativi e Basi di Dati

2.3 Cenni sui fogli di stile CSS per XML

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

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

Architettura MVC-2: i JavaBeans

Informatica I per la. Fisica

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Corso di PHP. Prerequisiti. 1 - Introduzione

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

Laboratorio Matematico Informatico 2

Realizzare il layout di un sito web senza utilizzare frame e tabelle

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

DBMS (Data Base Management System)

Altro esempio di HTML

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Concetti fondamentali dei database database Cos'è un database Principali database

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Introduzione al Semantic Web

Informatica A per Ingegneria Gestionale ( ) Il linguaggio HTML. Elisa Quintarelli-Laura Mandelli. HyperText Markup Language

Corso di Informatica di base per le discipline umanistiche - XPATH

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Costruzione del layout in gino cms

URI. Introduzione. Pag. 1

Reti di Telecomunicazione Lezione 6

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

- La formattazione con foglio di stile esterno: Come realizzare e collegare un file con codice di stile ad una pagina web.

Funzioni in C. Violetta Lonati

Cookie. Krishna Tateneni Jost Schenck Traduzione: Luciano Montanaro

Informatica per la comunicazione" - lezione 10 -

DATABASE. A cura di Massimiliano Buschi

Transcript:

Abilità Informatiche A.A. 2010/2011 Lezione 10: XML & DBMS Facoltà di Lingue e Letterature Straniere

Un documento testuale Dal punto di vista del calcolatore un testo è una sequenza di caratteri alfabetici intervallati da separatori, come ad esempio lo spazio bianco o un segno di interpunzione, e caratteri di scorrimento (o controllo) del testo, come ad esempio il ritorno carrello (carriage return, per tornare accapo) e il comando nuova riga (line feed, per spostarsi sulla riga successiva) Per noi, invece, il testo è molto di più di una semplice sequenza di caratteri alfabetici, separatori e caratteri di controllo (dati) 2

Dati e struttura 3 il testo è innanzitutto struttura (informazione) ciascun elemento costitutivo dei dati testuali entra a far parte di un elemento più grande: i caratteri formano sillabe, le sillabe parole, le parole frasi, le frasi paragrafi, i paragrafi capitoli ecc. i capitoli si compongono a loro volta di numero, titolo e corpo del testo le frasi si compongono di sequenze di parole semanticamente coese dette sintagmi le stesse parole presentano al loro interno costituenti più piccoli solitamente chiamati morfemi nel testo (come nel linguaggio) questa struttura è quasi sempre implicita ad esempio, ogni parola del testo non mostra la sua struttura morfemica interna; analogamente, una frase del testo non presenta esplicitamente la sua segmentazione in costituenti sintagmatici il calcolatore può cogliere questa struttura implicita del testo solo se: conosce le regole che la governano (o il codice sottostante), oppure questa struttura è rappresentata esplicitamente nel testo

Struttura e Rappresentazione di un documento Un documento è composto di tre livelli: contenuto, struttura e rappresentazione. La rappresentazione può essere utile per migliorare la leggibilità per favorire la percezione della struttura ma non per recuperare l informazione Nel momento in cui occorre recuperare l informazione le informazioni sulla struttura sono rilevanti Infatti attraverso la struttura dell informazione è possibile ideare piani di recupero efficiente Struttura Contenuto Rappresentazione 4

I limiti di HTML La potenza di HTML rappresenta anche il punto di massima debolezza Se infatti realizzare pagine HTML è estremamente facile riuscire a effettuare ricerche su tali documenti è molto inefficiente Il principale motivo? Manca il concetto di struttura dei dati. Si pone l enfasi solo sulla rappresentazione Struttura e rappresentazione sono indistinte e confuse <i>, <b>, <hr>,? <h1>, <ul>, <p>, 5

XML - Introduzione XML = Extensible Markup Language XML is a language for creating markup languages that describe structured data. Mike Edwards, Microsoft Descrive i dati e non la loro rappresentazione Ha un formato aperto e leggibile visualmente simile all HTML Elimina la necessità di Browser e tool intermedi per aggiungere TAG speciali 6

Un semplice esempio etichetta elemento semplice <messaggio> <da>rachele</da> <a>vito</a> <intestazione>pro memoria</intestazione> <testo>ricorda di portare il cd!</testo> </messaggio> 7 dati elemento complesso

XML - Introduzione extensible - non rigido come HTML Ottimo per la trasmissione di dati da server e browser Ottimo per la trasmissione da applicazione a applicazione, da macchina a macchina E un MetaLinguaggio usato per definire nuovi domini applicativi o linguaggi specifici Attenzione esclusivamente al contenuto La Rappresentazione corrispondente può essere assegnata in un momento successivo 8

XML è informazione espandibile supponiamo che il nostro messaggio codificato in XML possa essere interpretato da un applicazione di interfaccia, che lo legge come segue: MESSAGE To: Vito From: Rachele heading: pro-memoria ricorda di portare il cd! 9

XML è espandibile supponiamo inoltre di aver arricchito il nostro messaggio codificato in XML, in modo tale che possa essere indicata anche la data: <messaggio> <data> 10.5.2003 </data> <da>rachele</da> <a>vito</a> <intestazione>pro memoria</intestazione> <testo>ricorda di portare il cd!</testo> </messaggio> 10

XML è espandibile l applicazione originaria continuerà ad interpretare correttamente il nostro nuovo messaggio, ignorando tuttavia il dato annotato, di cui non conosce la traduzione attraverso l interfaccia: MESSAGE To: Vito From: Rachele heading: pro-memoria ricorda di portare il cd! 11

XML - Aree Applicative Applicazioni che richiedono al Web Client di mediare tra due o più DB eterogenei Oracle SQL Applicazioni che cercano di distribuire porzioni significanti di dati tra Client/Server 12

XML Aree Applicative Compito Client User1 Applicazioni che richiedono al Web Client di mostrare più viste dello stesso dato a diversi utenti Testo Esercizio Testo Esercizio Soluzione Client User2 Soluzione Applicazioni in cui Agenti Web Intelligenti decidono su informazioni utili per un utente a partire dalle sue caratteristiche Agente Client con caratteristiche A, B, C,. 13

XML e HTML XML non specifica né la semantica né un insieme di TAG XML è un metalinguaggio per la descrizione dei linguaggi di markup XML fornisce un modo per definire i tag ed i rapporti strutturali fra loro Poiché non vi è un insieme predefinito di TAG, non ci può essere alcuna semantica preesistente 14

XML Standard collegati XML è una lingua franca che permette di descrivere la struttura di documenti Il W3C ha definito svariati standard per poter integrare la definizione di XML per consentire la: Definizione metadati Definizione link tra più documenti Trasformazione/Rappresentazione documenti XML Definizione di linguaggi di interrogazione Manipolazione documenti XML da programma Rappresentazione di informazione grafica 15

Rappresentazione/Trasformazione documenti XML Lo standard XML permette di strutturare documenti XML No rappresentazione Nasce XSL. XSL permette di Identificare parti di documento da rappresentare (Xpath) Trasformare le parti (attraverso il linguaggio XSLT) Rappresentare (HTML, PDF,...) il documento risultante (attraverso il linguaggio XSL-FO) 16

XML, DTD, CSS Sintassi ed esempi 17

Elemento Un elemento è un blocco elementare dei documenti XML Elemento Start-tag Contenuto End-tag Un elemento è una parte del documento delimitata da 2 TAG es: <AUTHOR>Dante Alighieri</AUTHOR> 18

Anatomia di un elemento XML Ogni elemento XML può essere definito da una o più coppie attributo/valore : Esempio: etichetta dato (PCDATA) <destinatario sesso= maschile > vito </destinatario> <testo formato= corsivo > questo è il testo del messaggio </testo> nome attributo valore attributo (CDATA) 19

Tag I tag appaiono, normalmente, in coppia, tag di apertura (start-tag) tag di chiusura (end-tag) <NOME_TAG>Dante Alighieri</NOME_TAG> Il tag rappresenta il nome dell elemento 20

Struttura gerarchica degli elementi LIBRO CAPITOLO SEZIONE CAPITOLO LIBRO SEZIONE SEZIONE CAPITOLO 21

Struttura gerarchica degli elementi LIBRO CAPITOLO SEZIONE CAPITOLO NO! Ogni elemento deve essere completamente incluso da un altro elemento 22

Document Element È l elemento più esterno in un documento XML Viene anche detto elemento radice Contiene tutti gli elementi del documento Esempio: <libro> </libro> Deve sempre esistere 23

Attributi Un elemento può avere degli attributi Gli attributi possono essere pensati come aggettivi che descrivono gli elementi Ogni attributo ha nome valore Tutti gli attributi di un elemento devono essere distinti Gli attributi vengono inseriti come parte dello start-tag: <AUTHOR nome_attributo= valore_attributo"> Dante Alighieri </AUTHOR> 24

Esempio di elemento con attributi <AUTHOR laurea= lettere"> Dante Maria Rossetti </AUTHOR> <AUTHOR laurea= lettere"> <name>dante</name> </AUTHOR> <name>maria</name> <lastname>rossetti</lastname> <AUTHOR laurea= lettere name1 = Dante name2 = Maria lastname = Rossetti /> 25

Elementi Vs Attributi Quando è meglio usare elementi o attributi per rappresentare un informazione? Un elemento, quando: Si richiede di recuperare i dati velocemente È visibile a tutti È rilevante per il significato del documento Un attributo, quando: Esprime una scelta È utilizzato dal sistema Non è rilevante per il significato del documento 26

Un documento XML Un file XML è un semplice file di testo con tag XML al suo interno Esso ha una estensione.xml nome_file.xml Un file XML contiene tre sezioni Una dichiarazione che si tratta di un file XML Una dichiarazione (opzionale) del tipo di documento, sul nome della DTD associata e sul nome della CSS associata Il contenuto del documento con tag XML 27

Cosa ci serve per iniziare Pochissimo: Il blocco-note di Windows (o altro editor di testo); Internet Explorer 5.5 e superiori, Firefox 2 questi browser contengono un parser o processore XML che legge il documento XML e ne controlla la sintassi e segnala eventuali errori 28

Esempio <?xml version="1.0" encoding="iso-8859-1"?> <!-- Proviamo a scrivere un file xml che gestisca una rubrica di indirizzi --> <!-- apertura del tag radice --> <rubrica> <!-- istanze dell'elemento contatto --> <contatto> <nome>andrea</nome> <cognome>crevola</cognome> <telefono>011-555-1234</telefono> <email>andrea.crevola@3juice.com</email> </contatto> <contatto> <nome>mario</nome> <cognome>rossi</cognome> <telefono>011-555-5678</telefono> <email>mario.rossi@libero.it</email> </contatto> <contatto> <nome>carlo</nome> <cognome>bianchi</cognome> <telefono>011-555-2468</telefono> <email>carlo.bianchi@tin.it</email> </contatto> <!-- chiusura del tag radice --> </rubrica> 29

Conformità dei documenti XML Indicazione della versione: Un documento XML deve iniziare con l istruzione <?xml version= 1.0 encoding="iso-8859-1"?> serve per indicare al programma che interpreterà il file quale set di regole XML il documento dovrà seguire; se il documento segue senza errori queste regole, è detto well formed; è presente anche l indicazione del set di caratteri che sarà utilizzato nel documento (attributo opzionale); 30

Regole di conformità Un documento XML è well formed (sintatticamente conforme) se: È presente un solo elemento radice; Gli elementi hanno un tag di apertura e un tag di chiusura; I tag sono appropriatamente annidati; I valori degli attributi sono racchiusi da virgolette; Nomi di tag e attributi sono costituiti da una sola parola; Gli attributi hanno sempre un valore; Inoltre XML è case-sensitive: c è differenza tra lettere maiuscole e minuscole. <nome> <Nome> <NOME> <nome> un tag di chiusura deve essere scritto in modo identico a quello di apertura (ad eccezione dello slash / iniziale); 31

Indicazione della DTD (1) Le specifiche della DTD possono essere inserite direttamente nel prologo del documento (DTD interna): <!DOCTYPE rubrica [ <!ELEMENT rubrica (contatto)+ > <!ELEMENT contatto (nome, cognome,telefono,email) > <!ELEMENT nome (#PCDATA) > <!ELEMENT cognome (#PCDATA) > <!ELEMENT telefono (#PCDATA) > <!ELEMENT email (#PCDATA) > ] La DTD interna vale solo per il documento a cui appartiene e non per altri file questo significa che la dovrei riscrivere ogni volta a meno che non la sposti al di fuori del file e la condivida tra tutti i documenti XML che ne hanno necessità. 32

Indicazione della DTD (2) Le specifiche della DTD possono essere collocate in un file esterno (es. rubrica.dtd); La DTD esterna viene richiamata con un comando presente nel prologo del documento XML; <!DOCTYPE rubrica SYSTEM rubrica.dtd > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> In questo modo tutti i file di cui si vuole verificare la validità possono riferirsi ad un unico insieme di regole, e se decido di modificare le regole, non dovrò riportare i cambiamenti su tutti i file su cui sto lavorando; Applicazioni diverse possono fare riferimento ad un unica DTD per valutare la validità dei file elaborati; 33

Indicazione dello stile Definito il tipo di documento (conformità) e le regole di validità (DTD), manca un comando per dire alle applicazioni come rappresentare i dati. <?xml-stylesheet type="text/css" href= stile.css"?> 34

Esempio: file.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- Inserisco il riferimento alla DTD esterna --> <!DOCTYPE rubrica SYSTEM "rubrica.dtd"> <!-- Inserisco il riferimento ad un foglio di stile esterno --> <?xml-stylesheet type="text/css" href="stile.css"?> <rubrica> <contatto> <nome>andrea</nome> <cognome>crevola</cognome> <telefono>011-555-1234</telefono> <email>andrea.crevola@3juice.com</email> </contatto> </rubrica> 35 prova.xml

Esempio: DTD <?xml version="1.0"?> <!-- DTD della rubrica --> <!-- Dichiarazione di elementi e rispettivi attributi--> <!ELEMENT rubrica (contatto)+> <!ELEMENT contatto (nome, cognome, indirizzo, telefono+, email*, foto?)> <!ATTLIST contatto id ID #REQUIRED> <!ATTLIST contatto data-insert CDATA #REQUIRED> <!ATTLIST contatto sesso (M F) "F"> <!ELEMENT nome (#PCDATA)> <!ELEMENT cognome (#PCDATA)> <!ELEMENT indirizzo (#PCDATA)> <!ELEMENT telefono (fisso mobile)> <!ELEMENT fisso (#PCDATA)> <!ELEMENT mobile (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT foto EMPTY> <!ATTLIST foto src CDATA #REQUIRED> <!ATTLIST foto alt CDATA #REQUIRED> <!-- Fine della dichiarazione di elementi e attribuiti --> rubrica.dtd 36

Esempio: foglio di stile CSS rubrica { font-family: Verdana; } contatto { display:block; margin: 10px; background-color: #FFFFCC; padding: 10px; width: 300px; border-width: 2px; border-style: solid; } nome { display:inline; font-weight: bold; } cognome { display:inline; font-weight: bold; } email { display:inline; font-weight: bold; } telefono { display:block; font-family: courier; margin-bottom: 10px; } 37 stile.css

XML e DataBase 38

Il problema Problema: è possibile/necessario memorizzare documenti XML in un DBMS? Quale tecnologia è necessaria a questo scopo? Risposta: è certamente possibile memorizzare e gestire documenti XML in un DBMS la tecnologia necessaria a questo scopo dipende dal perché vogliamo gestire documenti XML in un DBMS 39

Tipologie di documenti XML Due possibili usi per documenti XML: Data Centric: i documenti possono rappresentare lo strumento con il quale dati tradizionali (es. relazionali) vengono trasferiti su Web XML come veicolo per trasporto di dati Esempio: ordini di vendita, scheduling di voli, menù Document Centric: l informazione è rappresentata dal documento in sé XML come modello per la rappresentazione dei dati Esempio: libri, documenti in genere 40

Documenti Data Centric Struttura regolare Livello di dettaglio piuttosto fine Contenuto omogeneo L ordine con cui gli elementi allo stesso livello appaiono è ininfluente Utilizzati per machine consumption Esempi: ordini di vendita, scheduling di voli, menù, 41

Esempio: ordini di vendita <Orders> <SalesOrder SONumber= 12345 > <Customer CustNumber= 543 > <CustName>ABC Industries</CustName>... </Customer> <OrderDate>981215</OrderDate> <Line LineNumber= 1 > <Part PartNumber= 123 > <Description> Turkey wrench: Stainless steel, one piece... </Description> <Price>9.95</Price> </Part> <Quantity>10</Quantity> </Line> <Line LineNumber= 2 >... </Line> </SaleOrder> </Orders> 42

Documenti Document Centric Struttura irregolare Livello di dettaglio meno fine Contenuto eterogeneo L ordine degli elementi allo stesso livello è significativo In genere progettati per human consumption Esempi: libri, email, 43

Product Description <Product> <Name>Turkey Wrench</Name> <Developer>Full Fabrication Labs, Inc.</Developer> <Summary>Like a monkey wrench, but not as big.</summary> <Description> <Para>The Turkey wrench, which comes in both right- and lefthanded versions...</para> <Para>You can:</para> <List> <Item><Link URL= Order.htm >Order your turkey wrench</link></item> <Item><Link URL= Wrench.html >Read about wrenches</link></item> <Item><Link URL= catalog.zip >Download the catalog</link></item> </List>... </Description> </Product> 44

XML e DBMS Ciascuna tipologia di documenti richiede una particolare tecnologia per la sua gestione data Relational/object-oriented DB document DB basato su XML (XML è il modello dei dati) 45

XML e DBMS XML-Native DBMS: comprendono un insieme di nuovi sistemi la cui architettura è stata progettata per supportare totalmente le funzionalità necessarie alla gestione di documenti XML utili per Document Centric Esempio:eXcelon XML-Enabled DBMS: comprendono tutti i DBMS che mantengono integra la propria architettura estendendola con funzionalità necessarie alla gestione di documenti XML sono tipicamente Object-Relational (DB2, Oracle8i, ) utili per Data Centric e parzialmente per Document Centric 46

XML-Enabled DBMS e documenti Data Centric 47

Problematiche per Data Centric Tre problematiche di base: come rappresentare i dati contenuti nei documenti XML nel DBMS XML doc DB come generare documenti XML partendo dai dati contenuti nel DBMS XML doc DB come interrogare i dati estratti da documenti XML DB 48

Rappresentazione dati È necessario definire un mapping tra la struttura dei documenti XML e lo schema del DB Per memorizzare i dati contenuti in un documenti XML in un DB, deve esistere una o più tabelle con lo schema richiesto dal mapping Vantaggi: approccio piuttosto semplice i dati sono facilmente interrogabili Svantaggi: Scarsa flessibilità: la tabella deve essere conforme al documento il documento di partenza non è più recuperabile 49

DBMS relazionale Un documento XML viene rappresentato come una singola tabella o un insieme di tabelle la struttura del documento XML è simile alla seguente: <database> <table> <row> <column1>...</column1> <column1>...</column1>... </row>... </table>... </database> approccio tipico per DBMS relazionali, object-relational 50

Esempio Documento XML <clienti> <row> <numero> 7369 </numero> <nome> PAUL </nome> <cognome> SMITH </cognome> </row> <row> <numero> 7000 </numero> <nome> STEVE </nome> <cognome> ADAM </cognome> </row> </clienti> Tabella Clienti Numero Nome Cognome 2000 MIKE SCOTT 7369 PAUL SMITH 7000 STEVE ADAM 51

Interrogazione dati Poiché i dati vengono rappresentati secondo il modello supportato dal DBMS (es. relazionale), è possibile utilizzare i linguaggi supportati dal DBMS per l interrogazione dei dati memorizzati approccio template-based: la query viene rappresentata nel documento XML necessità di middleware 52

Flight Information <?xml version= 1.0 > <FlightInfo> <Intro>The following flights have available seats:</intro> <SelectStmt> SELECT Airline, FltNumber, Depart, Arrive FROM Flights </SelectStmt> <Conclude>We hope one of these meets your needs</conclude> </FlightInfo> <?xml version= 1.0 > <FlightInfo> <Intro>The following flights have available seats:</intro> <Flight> <Row> <Airline>ACME</Airline><FltNumber>123</FltNumber> <Depart>Dec 12, 1998 13:43</Depart><Arrive>...<Arrive> <Row> </Flight> <Conclude>We hope one of these meets your needs</conclude> </FlightInfo> 53

Interrogazione dati Doc Query Doc Result Middleware Extract Select Command Construct Document answer Submit SELECT Command Result DB 54

Generazione documenti XML Problema: fornire una rappresentazione XML ai dati recuperati tramite query dal DBMS si utilizza il mapping inverso rispetto a quello utilizzato per la memorizzazione operazione importante per attribuire un formato standard ai dati ritrovati, prima di inviarli sulla rete 55

Esempio SELECT nome, cognome FROM Clienti WHERE Numero = 7369 Tabella Clienti Numero Nome Cognome 2000 MIKE SCOTT 7369 PAUL SMITH 7000 STEVE ADAM Documento XML <clienti> <row> <nome> PAUL </nome> <cognome> SMITH </cognome> </row> </clienti> 56

XML-Enabled DBMS e documenti Document Centric 57

Problematiche per Document Centric Due problematiche di base: come rappresentare i documenti XML nel DBMS XML doc DB come interrogare i documenti XML XML doc DB 58

Rappresentazione Permette di mantenere integro il documento XML Due approcci: rappresentazione non strutturata documento come unico oggetto rappresentazione ibrida documento parzialmente rappresentato secondo la rappresentazione strutturata e parzialmente secondo la rappresentazione non strutturata 59

Interrogazione documenti Dal punto di vista del DBMS, un documento memorizzato in modo non strutturato non è che un documento di testo in genere i DBMS supportano strumenti per ritrovare i documenti in base al contenuto nel caso di documenti XML, mettono a disposizione operatori avanzati da utilizzare in statement SQL per recuperare documenti XML in base al contenuto 60

XML su internet http://www.w3schools.com/ 61