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
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
3
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
5
<i>, <b>, <hr>, …
?
<h1>, <ul>, <p>, …
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>
dati
elemento
complesso
7
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
Oracle

Applicazioni che richiedono al Web
Client di mediare tra due o più DB
eterogenei

Applicazioni che cercano di
distribuire porzioni significanti di
dati tra Client/Server
12
…
SQL
XML – Aree Applicative
Compito

Applicazioni che richiedono al Web Client
di mostrare più viste dello stesso dato a
diversi utenti
Testo
Esercizio
Soluzione
Client User1
Testo
Esercizio
Client User2
Soluzione

Applicazioni in cui Agenti Web Intelligenti
decidono su informazioni utili per un
utente a partire dalle sue
caratteristiche
13
Agente
Client con
caratteristiche
A, B, C, ….
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:
dato
(PCDATA)
etichetta
<destinatario sesso=“maschile”>
vito
</destinatario>
<testo formato=“corsivo”>
questo è il testo del messaggio …
</testo>
nome
attributo
19
valore
attributo
(CDATA)
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
SEZIONE
CAPITOLO
LIBRO
SEZIONE
CAPITOLO
21
Struttura gerarchica degli elementi
LIBRO
CAPITOLO
SEZIONE
CAPITOLO
22
NO!
Ogni elemento deve essere
completamente incluso da
un altro elemento
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>
<name>Maria</name>
<lastname>Rossetti</lastname>
</AUTHOR>
<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
26

Un attributo, quando:
 Esprime una scelta
 È utilizzato dal sistema
 Non è rilevante per il
significato del documento
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

28
questi browser contengono un parser o processore XML che
legge il documento XML e ne controlla la sintassi e segnala
eventuali errori
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>[email protected]</email>
</contatto>
<contatto>
<nome>Mario</nome>
<cognome>Rossi</cognome>
<telefono>011-555-5678</telefono>
<email>[email protected]</email>
</contatto>
<contatto>
<nome>Carlo</nome>
<cognome>Bianchi</cognome>
<telefono>011-555-2468</telefono>
<email>[email protected]</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>[email protected]</email>
</contatto>
…
</rubrica>
prova.xml
35
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;
}
stile.css
37
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
document
45
Relational/object-oriented DB
DB basato su XML
(XML è il modello dei dati)
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
48
DB
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>
51
Tabella Clienti
Numero
2000
7369
7000
Nome
MIKE
PAUL
STEVE
Cognome
SCOTT
SMITH
ADAM
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
Result
Doc
Query
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
Documento XML
Tabella Clienti
Numero
2000
7369
7000
56
Nome
MIKE
PAUL
STEVE
Cognome
SCOTT
SMITH
ADAM
<clienti>
<row>
<nome> PAUL </nome>
<cognome> SMITH
</cognome>
</row>
</clienti>
XML-Enabled DBMS
e documenti Document Centric
57
Problematiche per Document Centric
Due problematiche di base:


come rappresentare i
documenti XML nel DBMS
come interrogare i
documenti XML
58
XML
doc
DB
XML
doc
DB
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

61
http://www.w3schools.com/
Scarica

XML e Data Base Management System