Inquadramento XML. Il problema dell Information- Integration. Esempio



Похожие документы
La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

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

extensible Markup Language

Document Type Definition (DTD)

Linguaggi per il web oltre HTML: XML

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

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

Capitolo 13. Interrogare una base di dati

Basi di dati 9 febbraio 2010 Compito A

Organizzazione degli archivi

SPECIFICHE TECNICHE DEL PACCHETTO DI ARCHIVIAZIONE

Database. Si ringrazia Marco Bertini per le slides

Sistemi Informativi e Basi di Dati

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

Il database management system Access

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

database: modello entityrelationship

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

Capitolo 4 Pianificazione e Sviluppo di Web Part

Progettazione di Basi di Dati

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

Introduzione alla programmazione in C

Guida all uso di Java Diagrammi ER

Corso di Sistemi di Elaborazione delle informazioni

XML. XML è contemporaneamente: XML non è:

Modellazione e Gestione di Informazioni non Strutturate

Progettaz. e sviluppo Data Base

Il linguaggio HTML - Parte 4

XSL: extensible Stylesheet Language

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

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

Introduzione ai Sistemi di Gestione di Basi di Dati XML

HTML il linguaggio per creare le pagine per il web

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

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

DATABASE. A cura di Massimiliano Buschi

Prefazione. Piersalvo Ortu 1

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

Le Basi di Dati. Le Basi di Dati

Introduzione alla teoria dei database relazionali. Come progettare un database

XML: extensible Markup Language

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Siti web centrati sui dati (Data-centric web applications)

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

Database 1 biblioteca universitaria. Testo del quesito

Corso di Informatica di base per le discipline umanistiche - XPATH

Progettazione di un Database

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Reti di Calcolatori. Il Livello delle Applicazioni

Laboratorio Matematico Informatico 2

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

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Applicazioni web centrati sui dati (Data-centric web applications)

Architettura MVC-2: i JavaBeans

4 - XML e basi di dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

RISOLUTORE AUTOMATICO PER SUDOKU

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

EXPLOit Content Management Data Base per documenti SGML/XML

XML: sintassi. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1

Introduzione all Information Retrieval

Soluzione dell esercizio del 2 Febbraio 2004

I Sistemi Informativi

Lezioni di Laboratorio sui Data Base

Sistema operativo: Gestione della memoria

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

LISTA TITOLI ACCESSI

Cosa è un foglio elettronico

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

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

TEORIA sulle BASI DI DATI

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

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

Lezione 1. Introduzione e Modellazione Concettuale

Corso di Informatica (Basi di Dati)

Volumi di riferimento

Lezione 2. Il modello entità relazione

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

XML (extensible Markup Language)

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

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

Introduzione al data base

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

a cura di Maria Finazzi

Strumenti di modellazione. Gabriella Trucco

Strutturazione logica dei dati: i file

Il Sistema Operativo: il File System

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

Транскрипт:

Inquadramento XML Dati semistrutturati Extensible Markup Language Document Type Definitions Leggere paragrafi 4.6, 4.7 Garcia- Molina et al. 1. Information Integration: estrarre informazioni da database diversi come se fosse uno solo 2. Dati semistrutturati: un nuovo modello di dati progettato per gestire problemi di information integration. 3. XML: un linguaggio standard per descrivere schemi di dati semistrutturati e rappresentare i dati. 1 2 Il problema dell Information- Integration Esempio Dati di interesse esistono in diversi posti e potrebbero, in teoria, essere messi in correlazione Ma i diversi database differiscono in: 1. Modello (relazionale, object-oriented?). 2. Schema (normalizzato/non normalizzato?). 3. Terminologia: i consulenti sono impiegati? Pensionati? Contrattisti? 4. Convenzioni (metri o piedi?). 3 Ogni bar ha un database. Uno usa un DBMS relazionale; un altro tiene il menu in un documento Word. Uno memorizza i telefoni dei distributori, un altro no. Uno distingue le ales dalle altre birre un altro no. Uno conta le bottiglie di birra nel magazzino, un altro le casse. 4

Due approcci all integrazione Diagramma di un Warehouse 1. Warehousing : Fai una copia delle sorgenti di dati in un sito centrale e trasformali in un solo schema. Ricostruisci i dati giornalmente o settimanalmente, ma non cercare di mantenerli piu aggiornati di cosi. 2. Mediazione : crea una vista di tutte le sorgenti, come se fossero integrate 1. Rispondi a una query trasformandola nella terminologia delle sorgenti e interroga le sorgenti. 5 Warehouse Wrapper Wrapper Sorgente 1 Sorgente 2 6 Un Mediatore Query utente Risultato Mediatore Query Risultato RisultatoQuery Wrapper Wrapper Query Risultato Query Risultato Sorgente 1 Sorgente 2 7 Dati semistrutturati Scopo: rappresentare dati da sorgenti indipendenti in maniera piu flessibile rispetto ai modelli relazionale e a oggetti Simili agli oggetti, ma con il tipo di ciascun oggetto definito dall oggetto stesso, non da una classe Etichette per indicare il significato delle sottostrutture 8

Dati semistrutturati Un database di dati semistrutturati e una collezione di nodi Ogni nodo e interno o e una foglia Le foglie sono associate a dati di tipo elementare (stringhe, numeri) I nodi interni hanno uno a piu archi uscenti Ogni arco ha una etichetta che indica come il nodo sorgente sia correlato con il nodo destinazione Dati semistrutturati Un nodo interno, la radice, non ha archi entranti e rappresenta l intero database Ogni nodo deve essere raggiungibile dalla radice ma il grafo non e necessariamente un albero Flessibilita : nessuna restrizione su: Etichette sugli archi. Numero di successori con una data etichetta 9 10 Esempi di grafo radice XML bar beer beer XML = extensible Markup Language. name Joe s ServedAt addr Maple manuf manuf prize name A.B. Bud name M lob year 1995 award Oro L oggetto birra per Bud Mentre HTML usa i tag per la formattazione (ad es., corsivo ), XML usa i tag per la semantica (ad es., questo e un indirizzo ). Idea chiave: creare un insieme di tag per un dominio (ad es., genomica), e tradurre tutti i dati in documenti XML usando i tag L oggetto bar per il bar di Joe 11 12

XML ben-formato e valido XML ben formato consente di inventare i tag Simile alle label dei dati semistrutturati. XML valido comprende un DTD (Document Type Definition), che limita le etichette e fornisce una grammatica per il loro uso XML ben formato Si comincia il documento con una dichiarazione, circondata da <??>. Una dichiarazione normale e : <? XML VERSION = 1.0 STANDALONE = yes?> Standalone = nessun DTD Il documento contiene un tag radice che circonda dei tag innestati. 13 14 Tag I tag, come in HTML, appaiono normalmente in coppie, come <FOO> </FOO>. I tag possono essere innestati arbitrariamente Sono permessi anche tag che non richiedono tag di terminazione. In questo caso si usa la sintassi <FOO/> I tag XML sono case sensitive: <FOO> diverso da <foo> Regole per i nomi dei tag (elementi) I nomi possono contenere lettere, numeri e altri caratteri (tranne :) I nomi non possono cominciare con un numero o un carattere di punteggiatura I nomi non possono cominciare con xml (o XML, o Xml, ecc.) I nomi non possono contenere spazi Caratteri non asci come éòá sono ammessi nei nomi 15 16

Commenti La sintassi è simile a quella dell HTML <!-- This is a comment --> Esempio: XML ben formato <? XML VERSION = 1.0 STANDALONE = yes?> <BARS> <BAR><NAME>Joe s Bar</NAME> <BEER><NAME>Bud</NAME> <PRICE>2.50</PRICE></BEER> <BEER><NAME>Miller</NAME> <PRICE>3.00</PRICE></BEER> </BAR> <BAR> </BARS> 17 18 XML e dati semistrutturati XML ben formato con tag innestati corrisponde a grafi di dati semistrutturati. Come i grafi di dati semistrutturati, anche XML consente grafi che non sono alberi Si usano attributi di tipo ID, IDREF e IDREFS che vedremo in seguito Esempio Il documento XML <BARS> e : BARS BAR BAR BAR NAME... BEER BEER Joe s Bar NAME PRICE NAME PRICE Bud 2.50 Miller 3.00 19 20

Terminologia BARS è l elementoradice I vari elementi BAR sono i figli di BAR BARS è il padre dei vari elementi BAR I vari elementi BAR sono fratelli Document Type Definitions Essenzialmente una grammatica context-free per descrivere i tag XML e il loro innestamento Ogni dominio di interesse (ad es., compoenenti elettronici, bar-birrebevitori) crea un DTD che descrive tutti i documenti che questo gruppo condivide. 21 22 XML Schema Una alternativa a DTD per descrivere la struttura di un file XML sono gli XML Schema Struttura di un DTD <!DOCTYPE <root tag> [ <!ELEMENT <name> ( <components> ) <more elements> ]> 23 24

Elementi di un DTD La descrizione di un elemento consiste di un nome (tag) e di una descrizione dei tag innestati tra parentesi Include l ordine dei subtag e la loro molteplicita. Le foglie (elementi di testo) hanno #PCDATA (Parsed Character DATA) al posto dei tag innestati. PCDATA significa che un parser analizzerà il testo per individuare eventuali tag 25 <!DOCTYPE BARS [ ]> Esempio: DTD <!ELEMENT BARS (BAR*)> <!ELEMENT BAR (NAME, BEER+)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT BEER (NAME, PRICE)> <!ELEMENT PRICE (#PCDATA)> NAME e PRICE sono testo Un oggetto BARS ha zero o piu BAR innestati al su interno Un BAR ha un NAME e uno o piu sottooggetti BEER Una BEER ha NAME e PRICE. 26 Descrizione di elementi I subtag devono apparire nell ordine indicato Un tag puo essere seguito da un simbolo che indica la sua molteplicita * = zero o piu + = uno o piu.? = zero o uno. Il simbolo connette sequenze alternative di tags. 27 Esempio: Descrizione di un elemento Un nome e un titolo opzionale (ad es., Prof. ), un nome e un cognome, in questo ordine, o e un indirizzo IP: <!ELEMENT NAME ( )> (TITLE?, FIRST, LAST) IPADDR 28

Uso dei DTD 1. Impostare STANDALONE = no. 2. Una delle due: a) Includere il DTD come un preambolo del documento XML oppure b) Includere DOCTYPE e il tag radice e aggiungere SYSTEM e un percorso al file dove il DTD puo essere trovato. 29 Esempio (a) <? XML VERSION = 1.0 STANDALONE = no?> <!DOCTYPE BARS [ <!ELEMENT BARS (BAR*)> <!ELEMENT BAR (NAME, BEER+)> Il DTD <!ELEMENT NAME (#PCDATA)> <!ELEMENT BEER (NAME, PRICE)> <!ELEMENT PRICE (#PCDATA)> Il documento ]> <BARS> <BAR><NAME>Joe s Bar</NAME> <BEER><NAME>Bud</NAME> <PRICE>2.50</PRICE></BEER> <BEER><NAME>Miller</NAME> <PRICE>3.00</PRICE></BEER> </BAR> <BAR> </BARS> 30 Esempio (b) Si assume che il DTD BARS sia in un file bar.dtd. <? XML VERSION = 1.0 STANDALONE = no?> <!DOCTYPE BARS SYSTEM bar.dtd > <BARS> <BAR><NAME>Joe s Bar</NAME> <BEER><NAME>Bud</NAME> <PRICE>2.50</PRICE></BEER> <BEER><NAME>Miller</NAME> <PRICE>3.00</PRICE></BEER> </BAR> <BAR> </BARS> Ottieni il DTD dal file bar.dtd 31 Attributi I tag di apertura in XML possono avere attributi, come <A HREF = > in HTML. In un DTD, <!ATTLIST element-name attribute-name attribute-type default-value> definisce un attributo e il suo tipo per questo elemento 32

Esempio: Attributi I bar possono avere un attributo kind, che e sushi, sports, oppure other. <!ELEMENT BAR (NAME BEER*)> <!ATTLIST BAR kind ( sushi sports other )> Tipi di attributi Alcuni tipi di attributi (val1 val2 ): l attributo può assumere solo i valori val1, val2, CDATA: sequenza qualunque di caratteri (differisce da PCDATA perchè un parser non analizza il testo al fine di indentificare tag) NMTOKEN: sequenza di lettere, cifre e i segni punto (.), trattino (-), sottolineatura (_) e due punti (:) NMTOKENS: come NMTOKEN con in più spazi, tab, a capo ID, IDREF, IDREFS: li vedremo più avanti 33 34 Valore di default Il valore di default può essere valore: un valore specifico #REQUIRED: un valore per l attributo deve sempre essere specificato #IMPLIED: l attributo può non essere specificato #FIXED valore: il valore dell attributo è fissato a valore Esempio: Uso degli attributi In un documento che consente il tag kind, possiamo vedere: <BAR kind = sushi > <NAME>Akasaka</NAME> <BEER><NAME>Sapporo</NAME>... </BAR> <PRICE>5.00</PRICE></BEER> 35 36

Esempio: valore di default DTD: <!ATTLIST payment type (check cash) "cash"> Valid XML: <payment type="check" /> Valid XML: <payment type="cash" /> Esempio: valore di default DTD: <!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0"> Valid XML: <square width="100" /> 37 38 DTD: Esempio: #IMPLIED <!ATTLIST contact fax CDATA #IMPLIED> Valid XML: <contact fax="555-667788" /> Valid XML: <contact /> DTD: Esempio: #REQUIRED <!ATTLIST person number CDATA #REQUIRED> Valid XML: <person number="5677" /> Invalid XML: <person /> 39 40

DTD: ESEMPIO: #FIXED <!ATTLIST sender company CDATA #FIXED "Microsoft"> Valid XML: <sender company="microsoft" /> Invalid XML: <sender company= IBM" /> Attributi I valori che si specificano per gli attributi devono essere racchiusi tra apici singoli o doppi Se il valore dell attributo contiene apici doppi bisogna usare gli apici singoli <gangster name='george "Shotgun" Ziegler'> E viceversa 41 42 Attributi Dati possono essere memorizzati in elementi o in attributi Ad esempio <person sex="female"> <firstname>anna</firstname> <lastname>smith</lastname> </person> Esempio <person> <sex>female</sex> <firstname>anna</firstname> <lastname>smith</lastname> </person> 43 44

Attributi Gli attributi dovrebbero essere utilizzati per memorizzare metadati, mentre i dati dovrebbero essere memorizzati negli elementi Problemi di utilizzare gli attributi: Gli attributi non possono contenere struttura (gli elementi possono) Gli attributi non sono facilmente estendibili (per cambiamenti futuri) Gli attributi sono più difficilmente manipolabili dai programmi ID e IDREF Sono puntatori da un oggetto ad un altro, in analogia agli attributi NAME = foo e HREF = #foo dell HTML. Consentono di far si che la struttura di un documento XML sia un grafo generale, piuttosto che solamente un albero. 45 46 Creare ID Dare ad un elemento E un attributo A di tipo ID. Quando si usa il tag <E> in un documento XML, dare all attributo A un valore unico. Esempio: <E A = xyz > ID: valori ammessi Il valore di un attributo ID può contenere solo i caratteri ammessi in NMTOKEN e deve cominciare con una lettera Nessun element può avere più di un attributo di tipo ID Il valore di un attributo ID deve essere unico rispetto al valore dell attributo ID di ogni altro elemento 47 48

Creare IDREF Esempio: ID e IDREF Per consentire a oggetti di tipo F di riferire un altro oggetto con un attributo ID, si da a F un attributo di tipo IDREF. Oppure, se si assegna all attributo il tipo IDREFS, si fa si che F faccia riferimento a un insieme di oggetti In questo modo si ottengono grafi che non sono alberi 49 Ridisegnamo il BARS DTD per includere sottoelementi sia BAR che BEER. Entrambi bars e beers hanno un attributo di tipo ID chiamato name. I Bars hanno dei sottooggeti PRICE, che consistono di un numero (il prezzo della birra) e un IDREF thebeer che punta a quella birra. Le birre hanno l attributo soldby, che e un IDREFS che punta ai bar che le vendono. 50 Il DTD <!DOCTYPE Bars [ <!ELEMENT BARS (BAR*, BEER*)> <!ELEMENT BAR (PRICE+)> <!ATTLIST BAR name = ID> <!ELEMENT PRICE (#PCDATA)> <!ATTLIST PRICE thebeer = IDREF> <!ELEMENT BEER ()> ]> Gli oggetti bar hanno Name come attributo ID e hanno uno o piu sottooggetti PRICE Gli oggetti PRICE hanno un numero (il prezzo) e un riferimento a una birra <!ATTLIST BEER name = ID, soldby = IDREFS> Gli oggetti BEER hanno un attributo ID chiamato name e un attributo soldby che e un insieme di 51 riferimenti ai bar Documento di esempio <BARS> <BAR name = JoesBar > <PRICE thebeer = Bud >2.50</PRICE> <PRICE thebeer = Miller >3.00</PRICE> </BAR> <BEER name = Bud, soldby = JoesBar, SuesBar, > </BEER> </BARS> 52

Elementi vuoti Elementi vuoti possono avere solo attributi <!ELEMENT element-name EMPTY> Entità Le entità sono variabili usate per riferirsi a stringhe Un riferimento ad una entità di nome ent è &ent; Le entità possono essere interne o esterne Sintassi delle entità interne: <!ENTITY entity-name "entity-value"> Esempio di DTD: <!ENTITY name "Donald"> <!ENTITY surname Duck"> XML: <author>&name;&surname;</author> 53 54 Entità esterne Entità predefinite in XML Sintassi: <!ENTITY entity-name SYSTEM "URI/URL"> Esempio di DTD: <!ENTITY name SYSTEM "http://en.wikipedia.org/donald"> <!ENTITY surname SYSTEM "http://en.wikipedia.org/duck"> XML: <author>&name;&surname;</author> 55 Riferimento a entità < > & " &apos; Carattere < > & 56

XML Namespaces Possono esserci dei conflitti sui nomi Lo stesso nome può essere usato per indicare cose diverse Esempio <table> <tr> <td>apples</td> <td>bananas</td> </tr> </table> <table> <name>african Coffee Table</name> <width>80</width> <length>120</length> </table> 57 58 Esempio Se uniamo i due documenti xml abbiamo un conflitto Soluzione: usare prefissi e namespaces Esempio <h:table xmlns:h="http://www.w3.org/tr/html4/"> <h:tr> <h:td>apples</h:td> <h:td>bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>african Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> 59 60

Namespaces Con xmlns specifichiamo che i prefissi utilizzati fanno riferimento a spazi di nomi diversi Sintassi dell attributo xmlns xmlns:namespace-prefix="namespaceuri" Quando si specifica xmlns in un tag, tutti i discendenti con lo stesso prefisso sono associati allo stesso namespace xmlns Si noti che l indirizzo usato per identificare il namespace non è usato dal parser per accedere a informazione Server solo a dare al namespace un nome unico Però molto spesso si usa l URI del namespace per indicare una pagina web reale che contiene informazioni sul namespace Ad es, si veda http://www.w3.org/tr/html4/ 61 62 URI (Uniform Resource Identifier) Un URI è una stringa di caratteri che identifica una risorsa internet Il tipo più comuni di URI è l Uniform ResourceLocator (URL) che identifica una risorsa indicando anche il modo con cui accedervi Un altro tipo di URI è l UniversalResource Name (URN) che identifica solo una risorsa senza specificare come accedervi 63 Namespace di default Si può specificare un namespace di default: tutti i tag senza prefisso appartengono a quel namespace Sintassi xmlns="namespaceuri" 64

Esempio <table xmlns="http://www.w3.org/tr/html4/"> <tr> <td>apples</td> <td>bananas</td> </tr> </table> Namespace I namespace sono molto utili per XML Schema 65 66