DATI SEMISTRUTTURATI / XML. Dati strutturati / non strutturati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "DATI SEMISTRUTTURATI / XML. Dati strutturati / non strutturati"

Transcript

1 DATI SEMISTRUTTURATI / XML Riferimenti S.Abiteboul, P.Buneman, D.Suciu - Data on the WEB, Morgan Kaufmann, San Francisco, California, A.B.Chaudri, A.Rashid, R.Zicari XML Data Management, Addison Wesley, dati semistrutt / XML 1 Dati strutturati / non strutturati Grandi quantità di dati disponibili in rete Dati strutturati Dati che provengono da database relazionali o a oggetti Struttura completamente conosciuta, schema del database Dati non strutturati Immagini, suoni, testo Dati semistrutturati Dati che hanno una qualche struttura, però troppo irregolari per adattarsi a un database relazionale o a oggetti (ad es. nel modello relazionale abbiamo solo i valori nulli per gestire le irregolarità) La nozione di schema di database è troppo rigida Può essere difficile impostare in anticipo uno schema corretto (la struttura dei dati può evolvere rapidamente) La struttura può essere implicita, come nel testo formattato, ma non rigida e regolare dati semistrutt / XML 2 1

2 Dati semistrutturati e WEB Formato flessibile per lo scambio di dati fra database eterogenei Le informazioni presenti in una pagina WEB sono varie e irregolari, la struttura della pagina cambia spesso La stessa WEB potrebbe essere vista come un enorme database distribuito Il modello logico dati semistrutturati Rilascia i rigidi vincoli del modello relazionale e a oggetti Non c è uno schema separato dai dati XML è stato definito per trasmettere dati con una qualche struttura su WEB A differenza di HTML permette un parsing indipendente dalla visualizzazione La sintassi di XML può essere usata per descrivere dati semistrutturati dati semistrutt / XML 3 Un modello per i dati semistrutturati Struttura di tupla (tuplelike o recordlike): insieme di coppie etichetta-valore {nome: Mario Rossi, tel: , } Un valore può essere a sua volta una tupla {nominativo: {nome: Mario, cognome: Rossi }, tel: , } Sono permesse etichette duplicate {nome: Mario Rossi, tel: , tel: } Possono quindi essere facilmente descritti insiemi di tuple { persona: { nome: Mario Rossi, tel: }, persona: {nome: Paolo Verdi, tel: }} Variazioni nella struttura { persona: { nome: Mario Rossi, tel: }, persona: {nominativo: {nome: Paolo, cognome: Verdi }, tel: }, persona: { nome: Pippo Neri, tel: , }} dati semistrutt / XML 4 2

3 Rappresentazione dei dati con grafi nome Mario Rossi tel nominativo tel nome cognome Mario Rossi dati semistrutt / XML 5 Dati semistrutturati / relazioni (1) Consideriamo un database con due relazioni di schema R(A, B, C) e S(C, D) R A B C S C D a1 b1 c1 a2 b2 c2 c2 d2 c3 d3 c4 d4 Abbiamo più possibili rappresentazioni nel formalismo semistrutturato, es: { R: { riga: { A: a1, B: b1, C:c1}, riga: { A: a2, B: b2, C: c2} }, S: { riga: { C: c2, D: d2}, riga: { C: c3, D: d3}, riga: { C: c4, D: d4} } } { R: { A: a1, B: b1, C:c1}, R: { A: a2, B: b2, C: c2}, S:{ C: c2, D: d2}, S: { C: c3, D: d3}, S: { C: c4, D: d4}} { row: { R: { A: a1, B: b1, C: c1}}, row: { R: { A: a2, B: b2, C: c2}}, row: { S: { C: c2, D: d2}}, row: { S: { C: c3, D: d3}}, row: { S:{C: c4, D:d4}}} dati semistrutt / XML 6 3

4 Dati semistrutturati / relazioni (2) R S riga riga riga riga riga A B C A B C C D C D C D a1 b1 c1 a2 b2 c2 c2 d2 c3 d3 c4 d4 dati semistrutt / XML 7 Dati semistrutturati / relazioni (3) R R S S S riga riga riga riga riga A B C A B C C D C D C D a1 b1 c1 a2 b2 c2 c2 d2 c3 d3 c4 d4 dati semistrutt / XML 8 4

5 Dati semistrutturati / relazioni (4) riga riga riga riga riga R R S S S A B C A B C C D C D C D a1 b1 c1 a2 b2 c2 c2 d2 c3 d3 c4 d4 dati semistrutt / XML 9 Dati semistrutturati / oggetti Ogni oggetto ha un object identifier, OID Gli OID possono essere usati per costruire strutture che fanno riferimento ad altri oggetti Nei modelli a oggetti, un valore associato ad una etichetta può essere un valore di tipo base, un valore di tipo tupla, un OID, un insieme di valori Esempio (indichiamo con & gli OID): { persona: &1 { nome: Maria, età: 40, figlio: &2, figlio: &3}, persona: &2 { nome: Paolo, età: 15, parenti: {madre:&1, sore lla:&3}, persona: &3 { nome: Ada, nazione: Italia, madre: &1}} Nella rappresentazione con grafi I nodi da cui parte una struttura con OID sono etichettati con l OID stesso I riferimenti a OID diventano archi di un grafo dati semistrutt / XML 10 5

6 Grafo con oggetti persona persona persona figlio nome madre &1 &2 &3 figlio nome età età nome parenti nazione Maria 40 Paolo 15 Ada Italia madre sorella dati semistrutt / XML 11 Dati semistrutturati / oggetti esempio ODMG class Stato (extent stati) class Città (extent città) { attribute string scod; { attribute string ccod; attribute Città capitale; relationship Stato stato_di relationship set <Città> città_in inverse Stato:: città_in; } inverse Città:: stato_di; } scod è un attributo di tipo string, capitale di tipo Città, ccod di tipo string città_in stato_di Stato Città dati semistrutt / XML 12 6

7 Dati semistrutturati / oggetti esempio ODMG class Stato (extent stati) class Città (extent città) { attribute string scod; { attribute string ccod; attribute Città capitale; relationship Stato stato_di relationship set<città> città_in inverse Stato:: città_in; } inverse Città:: stato_di; } {stati: { stato: &s1 {scod: IT, capitale: &c1, città_in: {Città: &c1, Città: &c3, }}, stato: &s2 {scod: FR, capitale: &c2, città_in: {Città: &c2, }}, }, città: { unacittà: &c1 {ccod: RM, stato_di: &s1}, unacittà: &c2 {ccod: PR, stato_di: &s2}, unacittà: &c3 {ccod: MI, stato_di: &s1}, }, } dati semistrutt / XML 13 Trasformazione di tabelle e oggetti in semistrutturati Sia le tabelle che insiemi di oggetti possono essere rappresentati nel formalismo dei dati semistrutturati In questo formalismo non c è separazione fra schema e istanza Non si può parlare di struttura del dato in modo indipendente dal dato stesso Un dato è rappresentato come un tutt uno fra il dato vero e proprio e la sua struttura dati semistrutt / XML 14 7

8 Sintassi per dati semistrutturati <value> ::= atomicvalue <complexvalue> <complexvalue> ::= {label: <ssd-expr>,, label: <ssd-expr>} <ssd-expr> ::= <value> OID <value> OID Un OID può essere definito in una espressione ssd, oppure usato in una espressione Regole di consistenza Un OID è definito al massimo una volta in una espressione ssd Se un OID viene usato in una espressione ssd, deve anche essere definito in quella stessa espressione dati semistrutt / XML 15 Alcune caratteristiche dei dati semistrutturati non si parla di schema e istanza flusso di byte che descrivono contestualmente i dati e il loro significato (la loro struttura) dati autodescriventi strutture senza vincoli nel nesting struttura non predeterminata etichette ripetute, identificatori di oggetto dati rappresentati da grafi gli archi sono etichettati con le label i nodi radici di oggetti sono etichettati con OID anche i nodi terminali sono etichettati (con i valori) dati semistrutt / XML 16 8

9 Linguaggi di interrogazione path expression Il modello dei dati per dati semistrutturati è un grafo orientato con etichette sugli archi Come sottocaso troviamo alberi con etichette sui rami Un linguaggio di interrogazione per dati semistrutturati deve poter raggiungere profondità arbitrarie nel grafo dei dati Viene utilizzato il concetto di path expression l 1. l 2. l n è un esempio di path expression ( l i indica una label) Es: biblio.libro.autore Indichiamo con r la radice del grafo e con n i un suo generico nodo Il risultato della valutazione di una path expression l 1. l 2. l n è l insieme di nodi n n tali che nel grafo esistono archi ( r, l 1, n 1 ), ( n 1, l 2, n 2 ),, ( n n-1, l n, n n ) dati semistrutt / XML 17 Path Expression esempio biblio.libro biblio articolo libro libro data autore autore titolo autore titolo data Pippo Basi Dati 2000 Marco Aldo Algoritmi 2002 dati semistrutt / XML 18 9

10 Path Expression esempio biblio.libro.autore biblio articolo libro libro data autore autore titolo autore titolo data Pippo Basi Dati 2000 Marco Aldo Algoritmi 2002 dati semistrutt / XML 19 Path expression sintassi (1) Una path expression può essere definita come una espressione regolare sull alfabeto delle label degli archi e::= l ε _ e.e (e) e e e* e+ e? l indica una label ε è l espressione vuota _ è una wild card è l alternativa e* indica 0 o più ripetizioni di e e+ indica una o più ripetizioni di e e? indica 0 o una occorrenza di e Es: biblio._.autore biblio._*.autore biblio._+.autore dati semistrutt / XML 20 10

11 Path expression sintassi (2) Le etichette possono a loro volta essere specificate con una espressione regolare sull alfabeto dei caratteri ASCII In questo modo, per indicare una label si può usare l intera stringa oppure specificare un pattern per essa In questi esempi viene usata la sintassi del grep (( s S)ection paragraph) (s)? questo pattern si accorda con section, Section, sections, Sections, paragraph, paragraphs.*heading.* Questo pattern si accorda con qualunque stringa che contiene heading preceduta e/o seguita da 0 o più caratteri qualsiasi In grep il carattere. è una wild card dati semistrutt / XML 21 Path expression sintassi (3) Possono essere costruiti pattern per cammini in cui le label sono a loro volta specificate da pattern Negli esempi seguenti il pattern delle label è racchiuso da Il carattere. indica la concatenazione fra archi in un path e una wild card nella specifica di una label biblio. _*. sezione. ( [ tt]itolo paragrafo..*intestazione.* ) viene indicato un path che inizia con la label biblio e finisce con la label sezione seguita o dalla label titolo (Titolo) o dalla label paragrafo seguita a sua volta da una label che contiene la sottostringa intestazione dati semistrutt / XML 22 11

12 Calcolo di una path expression La valutazione di una espressione regolare e su un grafo D è un insieme di nodi Un modo formale per effettuare questo calcolo può essere dato con riferimento alla teoria degli automi Costruzione di un automa A equivalente ad e Costruzione iterativa di un opportuno insieme C di coppie (nodo di D, stato di A) fino al raggiungimento di un punto fisso Il risultato è costituito dai nodi che in C sono accoppiati con uno stato terminale di A Il punto fisso serve a fronteggiare il problema dei cicli in D dati semistrutt / XML 23 Linguaggi di interrogazione Un linguaggio di interrogazione dovrebbe godere della proprietà della composizionalità Il risultato di una query deve poter essere usato come un input per un altra query Questo è essenziale, ad esempio, per poter definire viste Una path expression restituisce un insieme di nodi e non un grafo Inoltre una path expression non permette di costruire nuovi nodi, di effettuare operazioni come il join, di testare valori contenuti nel database Le path expression devono essere usate all interno di veri e propri linguaggi di interrogazione Vediamo alcuni esempi di query in un linguaggio dalla sintassi simile a OQL (Object Query Language, standard proposto da ODMG per le basi dati a oggetti) dati semistrutt / XML 24 12

13 Esempi di query % Query q1 select autore: X from biblio.libro.autore X La query costruisce un nuovo nodo e lo connette con archi etichettati autore a tutti i nodi che risultano dalla valutazione della path expression biblio.libro.autore La query effettua un binding fra la variabile X ed ogni nodo specificato dalla path expression Il risultato è {autore: Pippo, autore: Aldo, autore: Marco } autore autore autore Pippo Aldo Marco dati semistrutt / XML 25 % Query q2 select row: X from biblio._ X where Pippo in X.autore Esempi di query La query costruisce un nuovo nodo e lo connette con archi etichettati row ai nodi (e relativi sottografi) che risultano dalla valutazione della path expression biblio._ (biblio seguita da una label qualsiasi), di questi nodi prende solo quelli da cui, seguendo la label autore si trova la stringa Pippo row row autore titolo data Pippo Basi Dati 2000 dati semistrutt / XML 26 13

14 EXTENSIBLE MARKUP LANGUAGE XML XML è stato progettato per rappresentare un documento con la sua struttura, indipendentemente dalla sua presentazione La rappresentazione contiene dati e tag (markup) Non ha tag predefiniti, i tag sono definiti dall utente Può essere definita a parte la struttura del documento XML si adatta alla descrizione di dati con struttura variabile Sintassi per la descrizione del modello dati semistrutturati precedentemente illustrato Può essere usato per costruire basi dati semistrutturate, possiede linguaggi per la definizione dello schema (anche se deboli) e linguaggi di interrogazione XML è diventato uno standard per lo scambio di informazioni in rete Sintassi per trasmettere dati, in modo indipendente dalla piattaforma hw/sw dati semistrutt / XML 27 XML Elementi Un elemento è una parte di testo limitata da due tag, uno di inizio e uno di fine Il tag di fine deve avere lo stesso nome di quello di inizio Il contenuto di un elemento può essere testo vero e proprio, un altro elemento (sottoelemento), un misto di ambedue Elementi e sottoelementi devono essere annidati, i tag devono essere chiusi nell ordine inverso di quello con cui sono aperti Ci possono essere più elementi con lo stesso tag <stud> <nome>paolo</nome> </stud> <stud> Rappresentante degli studenti <nome>marco</nome> </stud> dati semistrutt / XML 28 14

15 XML Attributi Ad un elemento possono essere associati uno o più attributi, indicandoli dentro il tag di inizio Un attributo è una coppia nome=valore in cui valore è una stringa (racchiusa tra ) Un dato attributo può comparire una volta sola dentro un tag <tabella laboratorio= prova macchine responsabile= Pietro Rossi > <descrizione lingua= inglese >Lab Students</descrizione> </tabella> dati semistrutt / XML 29 XML - Documenti Un documento deve iniziare con <?xml version= 1.0?> Un documento deve avere un elemento radice che racchiude tutti gli altri (nell esempio è <documento> Le linee che precedono l elemento radice vengono chiamate prologo <?xml version= 1.0?> <documento> </documento> dati semistrutt / XML 30 15

16 XML Elementi e attributi - esempio <?xml version= 1.0?> <tabella laboratorio= prova macchine responsabile= Pietro Rossi > <descrizione lingua= inglese >Lab Students</descrizione> <studenti> <stud età= 23 > <nome>maria</nome> </stud> <stud> <nome>paolo</nome> </stud> </studenti> </tabella> dati semistrutt / XML 31 ancora su XML Tutti i dati sono trattati come testo, non esistono altri tipi di dati Questi dati vengono chiamati PCDATA (Parsed Character Data) PCDATA e sottoelementi possono essere mescolati <persona> Questa è la mia amica <nome>maria</nome> </persona> La sintassi dei commenti è <!-- commento --> Un elemento vuoto <tag></tag> si può indicare con <tag/> XML è case sensitive <persona> </Persona> non è corretto I caratteri &, <, >,, non possono essere usati nel testo, de vono essere indicati in modo particolare & < > &apos; " Un documento sintatticamente corretto si dice ben formato dati semistrutt / XML 32 16

17 XML vs dati semistrutturati modellazione dell informazione In XML l informazione può essere modellata con elementi o attributi (ambiguità nella modellazione dell informazione) <persona><nome>paolo</nome><età>28</età></persona> <persona nome= Paolo età= 28 /> <persona età= 28 ><nome>paolo</nome></persona> dati semistrutt / XML 33 XML vs dati semistrutturati trasformazione (1) Trasformazione T da espressione ssd a XML: T(atomicvalue) = atomicvalue T({ l 1 : v 1,, l k : v k }) = <l 1 > T(v 1 ) </l 1 > <l k > T(v k ) </l k > { persona: { nome: Mario Rossi, tel: }, persona: {nominativo: {nome: Paolo, cognome: Verdi }, tel: }} <persona> <nome>mario Rossi</nome> </persona> <persona> <nominativo> <nome>paolo</nome> <cognome>verdi</cognome> </nominativo> <tel> </tel> </persona> dati semistrutt / XML 34 17

18 XML vs dati semistrutturati trasformazione (2) La trasformazione T opera su alberi, se si hanno grafi (OID) devono essere usati altri accorgimenti Possono essere utilizzati gli attributi ID (che identifica un elemento) e IDREF (che punta ad elementi con ID) {stato: &s1 {scod: IT, capitale: &c1}} {unacittà: &c1 {ccod: RM, stato_di: &s1}} <stato id= s1 > <scod>it</scod> <capitale idref= c1 /> </stato> <unacittà id= c1 > <ccod>rm</ccod> <stato_di idref= s1 /> </unacittà> dati semistrutt / XML 35 XML vs dati semistrutturati - ordinamento Il modello di dati semistrutturati si basa su collezioni non ordinate {persona: {nome: Mario, cognome: Rossi }} è equivalente a {persona:{cognome: Rossi, nome: Mario }} In XML gli elementi sono ordinati <persona><nome>mario</nome> <cognome>rossi</cognome></persona> non è equiv. a <persona><cognome>rossi</cognome> <nome>mario</nome></persona> In XML gli attributi non sono ordinati <persona nome= Mario cognome= Rossi /> <persona cognome= Rossi nome= Mario /> è equivalente a dati semistrutt / XML 36 18

19 XML vs dati semistrutturati - trasformazioni Da XML a espressione ssd, nel caso di testo mescolato ad elementi, deve essere aggiunto un qualche tag standard, ad esempio <pcdata>, che poi viene trasformato in una label <persona> Questa è la mia amica <nome>maria</nome> </persona> {persona: { pcdata: Questa è la mia amica, nome: Maria } } dati semistrutt / XML 37 XML: sezioni CDATA Le sezioni CDATA possono contenere testo di tipo qualsiasi, incluso spazi e caratteri riservati, però non possono contenere ]]> Le sezioni CDATA non sono processate dai parser XML <?xml version = 1.0?> <book title = C++ How to Program edition = 3 > <sample> <![CDATA[ if ( this->getx() < 5 && value[0]!= 3 ) cerr << this->displayerror(); ]]> </sample> <sample> if ( this->get(x) < 5 && value[0]!= 3. dati semistrutt / XML 38 19

20 Come XML esprime l informazione (1) XML usa quattro componenti base Tag, Attributi, Data elements, Gerarchie XML aggiunge un contesto ai data elements tramite i tag Dà significato ai data elements tramite i tag I tag descrivono cosa sono i dati Gli attributi ci dicono qualcosa su come interpretare i dati Es, per interpretare correttamente il colore (0, 255, 255) dobbiamo sapere se la risoluzione è a 8 o 16 bit <colorimeter_reading> <RGB resolution=8> <red> 0 </red> <green> 255 </green> <blue> 255 </blue> </RGB> </colorimeter_reading> dati semistrutt / XML 39 Come XML esprime l informazione (2) Quindi abbiamo i singoli dati, sappiamo cosa sono e sappiamo come interpretarli; dobbiamo correlarli fra loro per completare l informazione: gerarchia fra i tag Con la gerarchia diamo un contesto completo ai data elements (non solo il tag e/o attributo più vicino) Notiamo che gli attributi dovrebbero rappresentare metadati e non dati dati semistrutt / XML 40 20

21 Document Type Definition - DTD Una DTD specifica una particolare struttura per documenti XML Un documento valido è un documento che ha associata una DTD e che, oltre ad essere ben formato, rispetta le specifiche di quella DTD Una DTD definisce L elemento radice del documento (!DOCTYPE) Gli elementi ammissibili e la loro struttura (!ELEMENT) Gli attributi degli elementi: il loro tipo ed eventuali vincoli sui valori (!ATTLIST) Tipo degli attributi CDATA tipo testo ID tipo identificatore IDREF tipo riferimento a identificatore, IDREFS a più identificatori Una DTD è una grammatica context-free per il documento + indica una o più occorrenze * indica 0 o più occorrenze? Indica 0 o una occorrenza dati semistrutt / XML 41 ESEMPIO DI DTD <!DOCTYPE tabella [ <!ELEMENT tabella (descrizione, studenti?)> <!ELEMENT descrizione (#PCDATA)> <!ELEMENT studenti (stud*)> <!ELEMENT stud (nome, )> <!ELEMENT nome (#PCDATA)> <!ELEMENT (#PCDATA)> <!ATTLIST tabella laboratorio CDATA #required obbligatorio responsabile CDATA #required > <!ATTLIST descrizione lingua (inglese italiano) italiano > <!ATTLIST stud età CDATA implied> opzionale ]> dati semistrutt / XML 42 21

22 Esempio di DTD con identificatori <!DOCTYPE geo [ <!ELEMENT geo (stati, città)> <!ELEMENT stati (stato*)> <!ELEMENT città (unacittà*)> <!ELEMENT stato (scod, capitale, città_in)> <!ATTLIST stato id ID #REQUIRED> <!ELEMENT scod (#PCDATA)> <!ELEMENT capitale EMPTY> <!ATTLIST capitale idref IDREF #REQUIRED> <!ELEMENT città_in EMPTY> <!ATTLIST città_in idref IDREFS #REQUIRED> <!ELEMENT unacittà (ccod, stato_di)> <!ATTLIST unacittà id ID #REQUIRED> <!ELEMENT ccod (#PCDATA)> <!ELEMENT stato_di EMPTY> <!ATTLIST stato_di idref IDREF #REQUIRED> ]> dati semistrutt / XML 43 Esempio di DTD ricorsiva Descrizione di alberi binari <!ELEMENT nodo (foglia (nodo,nodo))> <!ELEMENT foglia (#PCDATA)> Esempio documento <nodo> <nodo> <nodo> <foglia> aaa </foglia> </nodo> <nodo> <foglia> bbb </foglia> </nodo> </nodo> <nodo> <foglia> ccc </foglia> </nodo> </nodo> dati semistrutt / XML 44 22

23 DTD come schemi Una DTD impone un ordine tra gli elementi Tipi atomici molto limitati: solo PCDATA Una DTD non vincola il tipo di IDREF Ad esempio non possiamo asserire che l attributo idref di capitale deve essere un id di una città dati semistrutt / XML 45 Riferimenti a dati esterni <?xml version 1.0?> <!DOCTYPE didattica [ <!ENTITY %programma SYSTEM /u/ cesarini/basidati/programma > <!ENTITY %esercizi SYSTEM /u/cesarini/esercizi/ basidati_esercizi > ]> <didattica> <caratteristiche CFU= 6 anno= secondo /> <nome_corso>basi Dati e Sistemi Informativi</nome_corso> %programma; %esercizi; </didattica> Programma ed esercizi sono entità definite esternamente Con il loro richiamo, vengono inseriti interamente in didattica, in quella posizione dati semistrutt / XML 46 23

24 XML Path Language - XPath XPath fornisce una sintassi per localizzare specifiche parti di un documento XML Un documento XML è visto concettualmente come un albero in cui ogni parte del documento è rappresentata come un nodo Un documento per XPath ha sette tipi di nodi Radice (root) Elemento (element) Attributo (attribute) Testo (text) Commento (comment) Istruzione da elaborare (Processing Instruction) Spazio dei nomi (namespace) dati semistrutt / XML 47 Albero XML per XPath: esempio (1) <?xml version = 1.0?> <! - - Semplice documento XML da Deitel - - > <book title = C++ How to program edition = 3 > <sample> <! [CDATA [ // C++ comment ] ]> </sample> C++ How to program by Deitel </book> dati semistrutt / XML 48 24

25 Albero XML per XPath: esempio (2) root comment Semplice documento XML da Deitel element book attribute Title C++ How to program attribute edition 3 element sample text C++ How to program by Deitel text // C++ comment dati semistrutt / XML 49 String-value dei nodi Ogni nodo ha uno string value Root: concatenazione degli string-value di tutti i text node discendenti Element: concatenazione degli string-value di tutti i text node discendenti Attribute: il valore dell attributo Text: i caratteri contenuti Comment: il contenuto del commento (escludendo i delimitatori) dati semistrutt / XML 50 25

26 Note agli alberi di XPath Un albero Xpath ha un singolo nodo radice che contiene tutti gli altri nodi dell albero Il nodo root e i nodi element contengono liste ordinate di nodi figli Ogni nodo, eccetto root, ha un nodo padre I soli nodi che possono essere figli sono Element Comment Text Processing Un nodo attributo o namespace non è considerato figlio (anche se ha un nodo padre) La relazione fra nodi padri e figli è di contenimento I nodi attribute e namespace non sono contenuti nel nodo padre, ma danno informazioni circa il nodo padre È importante per la navigazione di padre in figlio dati semistrutt / XML 51 Relazione padre / figlio root ha due figli book ha due figli sample ha un figlio root comment Semplice documento XML da Deitel element book attribute Title C++ How to program attribute edition 3 element sample text C++ How to program by Deitel text // C++ comment dati semistrutt / XML 52 26

27 Nota a root Il nodo root denota l intero documento Root ha un unico figlio di tipo elemento che è l elemento radice della gerarchia degli elementi Questo nodo root è necessario perché in un documento XML l elemento radice può essere preceduto da commenti e/o processing instruction La radice dell albero è indicata nei path esclusivamente con / dati semistrutt / XML 53 Location Path Un location path è un espressione che specifica come navigare in un albero XPath da un nodo all altro Le ricerche in un albero XPath vengono effettuate con riferimento ad un context node ( / indica la radice) Un location path è composto da location steps Ogni location step include Un asse Un test sul nodo Un predicato opzionale racchiuso tra [ ] I location step sono separati da / Gli assi specificano quali nodi devono essere inclusi nella ricerca Negli esempi, che usano una notazione semplificata, si fa riferimento alle relazioni padre/figlio dati semistrutt / XML 54 27

28 Location step: axis, node test Gli assi specificano quali nodi devono essere inclusi nella ricerca Faremo molto riferimento all asse child Altri assi sono self, parent, ancestor, descendant, attribute, L asse child è l asse di default Il context node è indicato con. e il suo padre con.. Un node test può essere * denota un elemento qualsiasi Il nome del nodo node () tutti i nodi text () tutti i nodi testo Esempi child::body seleziona i nodi element body, figli del context node body //body seleziona tutti i nodi element body nell intero documento dati semistrutt / XML 55 Location step: assi, nodi, predicati /libro/parte/capitolo si scende nell albero di padre in figlio selezionando tutti gli elementi a cui si arriva con questo path /libro/* seleziona tutti gli elementi figli dell elemento libro /libro/autore[text () = Pippo ] seleziona gli elementi autore il cui testo è Pippo /libro/parte [count (capitolo) > 2] supponendo che un libro abbia più parti, e una parte abbia più capitoli, vengono selezionate le parti che contengono più di due capitoli (il numero di figli è > 2) /libro/parte [1] seleziona il primo elemento parte contenuto nell elemento libro dati semistrutt / XML 56 28

29 Location step: assi, nodi, predicati seleziona tutti gli attributi di nome titolo / book = 3 ] / sample seleziona gli elementi sample contenuti negli elementi book che hanno l attributo edition uguale a tre dati semistrutt / XML 57 Un altro esempio <?xml version = 1.0 > <books> <book> <title>java How to Program</title> <translation edition = 1 >Spanish</ translation> <translation edition = 1 > Japanese</translation> <translation edition = 2 > Japanese</translation> </book> <book> <title>c++ How to Program</title> <translation edition = 1 >French</ translation> <translation edition = 2 > Spanish</translation> <translation edition = 3 > Japanese</translation> </book> </books> dati semistrutt / XML 58 29

30 Albero del documento root books element book element book element title text JAVA How to Program element title text C++ How to Program element translation element translation element translation element translation element translation element translation attribute edition 1 text Spanish attribute edition 1 text Japanese attribute edition 2 text Japanese attribute edition 2 text Spanish attribute text attribute text edition 1 French edition 3 Japanese dati semistrutt / XML 59 Esempi di location path. indica il nodo contesto.. indica il padre del nodo contesto / books / book / translation [. = Japanese ] /.. / title seleziona il titolo dei libri che hanno una traduzione giapponese, il predicato confronta il valore stringa del nodo corrente con la stringa Japanese / books / book / translation [. = Japanese ] seleziona l attributo edition dei libri con traduzione giapponese dati semistrutt / XML 60 30

31 XML Query - XQuery XPath permette di estrarre parti di un documento XQuery è un linguaggio di interrogazione completo XQuery usa path expression di XPath Una interrogazione è formata da quattro parti: clausola for Dichiara variabili con cui si può iterare sugli elementi di un documento clausola let Si possono dichiarare nuove variabili clausola where Per selezionare gli elementi che formano il risultato della query clausola return Per definire la struttura e il contenuto del risultato Le query sono dette espressioni FLWR dati semistrutt / XML 61 XQuery - esempi FOR $x IN document ( libro.xml ) // autore RETURN $x Viene dichiarata la variabile $x $x assume come valore il risultato della valutazione della path expression che segue IN La path expression ritrova tutti gli elementi di tipo autore Viene restituito $x che è l insieme degli elementi autore ritrovati Il risultato può essere <autore>pippo</autore> <autore>marco</autore> <autore>aldo</autore> dati semistrutt / XML 62 31

32 XQuery : esempi FOR $x IN document ( libro.xml ) // autore RETURN <autori> $x </autori> Il risultato può essere <autori> <autore>pippo</autore> <autore>marco</autore> <autore>aldo</autore> </autori> dati semistrutt / XML 63 XQuery: esempi FOR $x IN document ( catalogo.xml ) // libro WHERE $x = McGraw-Hill AND $x = paperback RETURN $x Restituisce i libri per cui gli attributi editore e formato hanno rispettivamente valore McGraw-Hill e paperback dati semistrutt / XML 64 32

33 XQuery: esempi FOR $x IN document ( catalogo.xml ) // autore LET $y := document ( catalogo.xml ) // libro [autore = $x] WHERE COUNT($y) > 5 RETURN $x Restituisce gli autori che hanno scritto più di 5 libri dati semistrutt / XML 65 Documenti XML e DBMS relazionali Un documento XML può essere memorizzato come una singola entità Rispetto all essere un file in un file system, è nel contesto di un DBMS e per es. può esservi fatto accesso con le stesse modalità di permessi delle altre strutture Può essere memorizzato come un insieme di pezzi collegati fra loro Questo approccio è utile se abbiamo a che fare con la rappresentazione di un vero e proprio documento (paragrafi di testo, eventualmente mescolati a tag) Può essere scomposto nelle sue componenti di base e queste essere memorizzate in tabelle È in genere necessario un mapping esplicito fra la struttura XML e le tabelle del database dati semistrutt / XML 66 33

4 - XML e basi di dati

4 - XML e basi di 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

Dettagli

Tecnologie per XML. Tecnologie per XML

Tecnologie per XML. Tecnologie per XML Progetto di sistemi informatici 2004 - Tecnologie per XML Paolo Papotti papotti@dia.uniroma3.it Lab. basi di dati Cosa vedremo oggi Richiami di XML Rappresentazione dati Sintassi Schemi Tecnologie per

Dettagli

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

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 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 XML e Basi di Dati Corso di Basi di Dati 2 Cos è XML XML è l

Dettagli

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

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it La struttura: DTD Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino laura.farinetti@polito.it L. Farinetti - Politecnico di Torino 1 Modello di struttura I tag annidati danno origine

Dettagli

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

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice Indice 4. XML Extensible Markup Language...2 4.1 Usi di XML...3 4.2 Caratteristiche di XML...3 4.3 Elementi...5 4.4 Attributi...5 4.4.1 Documento XML ben formato...6 4.5 Informazioni di controllo...6 4.5.1

Dettagli

extensible Markup Language

extensible Markup Language XML a.s. 2010-2011 extensible Markup Language XML è un meta-linguaggio per definire la struttura di documenti e dati non è un linguaggio di programmazione un documento XML è un file di testo che contiene

Dettagli

Modellazione e Gestione di Informazioni non Strutturate

Modellazione e Gestione di Informazioni non Strutturate Università della Calabria, Corso di Laurea Specialistica in Ingegneria Gestionale Progettazione di Sistemi Informativi Docente: Alfredo Cuzzocrea Modellazione e Gestione di Informazioni non Strutturate

Dettagli

Inquadramento XML. Il problema dell Information- Integration. Esempio

Inquadramento XML. Il problema dell Information- Integration. Esempio 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

Dettagli

Introduzione a XML. Language

Introduzione a XML. Language Introduzione a XML 1 Che cos è XML? XML: Extensible Markup Language anguage: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto digitale è uno strumento potente

Dettagli

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

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni: XML: DTD Da un punto di vista cronologico, il primo approccio per la definizione di grammatiche per documenti XML è rappresentato dai Document Type Definition (DTD). Un DTD è un documento che descrive

Dettagli

Tecnologie Web T Introduzione a XML

Tecnologie Web T Introduzione a XML Tecnologie Web T Introduzione a Home Page del corso: http://www-db.deis.unibo.it/courses/tw/ Versione elettronica: 2.01..pdf Versione elettronica: 2.01.-2p.pdf 1 Che cos è? : Extensible Markup Language:

Dettagli

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

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 Introduzione ad XML 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 XML XML (Extensible Markup Language) è un insieme standard di regole sintattiche per modellare la struttura di

Dettagli

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

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione HTML e Linguaggi Politecnico di Facoltà del Design Bovisa Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://home.dei.polimi.it/cugola Indice Il linguaggio del

Dettagli

Linguaggi per il web oltre HTML: XML

Linguaggi per il web oltre HTML: XML Linguaggi per il web oltre HTML: XML Luca Console Con XML si arriva alla separazione completa tra il contenuto e gli aspetti concernenti la presentazione (visualizzazione). XML è in realtà un meta-formalismo

Dettagli

XML e Sistemi per la Gestione di Basi di Dati Relazionali

XML e Sistemi per la Gestione di Basi di Dati Relazionali Basi di Dati Distribuite a.a. 2004/2005 XML e Sistemi per la Gestione di Basi di Dati Relazionali Luca Noce - luxnox2000@yahoo.it Elisa Marino - marino_elisa@hotmail.com Obiettivi Necessità di conciliare

Dettagli

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language:

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language: XML Parte VI - Introduzione e nozioni fondamentali di sintassi XML: cosa è XML: Extensible Markup Language: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto

Dettagli

Dati relazionali e XML

Dati relazionali e XML Dati relazionali e Introduzione (1) Memorizzazione dei dati Utilizzo dei dati Applicazione DBMS relazionale Applicazione Applicazione 2 Introduzione (2) Memorizzazione dei dati Utilizzo dei dati Applicazione

Dettagli

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

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. 2011-2012. Language) Stylesheet. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 XSL (extensible( Stylesheet Language) Eufemia TINELLI Contenuti XSL = XSLT + XSL-FO (+ XPath)

Dettagli

Risoluzione efficiente di interrogazioni XPath su documenti XML con attributi e riferimenti

Risoluzione efficiente di interrogazioni XPath su documenti XML con attributi e riferimenti Università degli Studi G.D Annunzio Chieti - Pescara FACOLTÀ DI ECONOMIA Corso di Laurea in Economia Informatica Risoluzione efficiente di interrogazioni XPath su documenti XML con attributi e riferimenti

Dettagli

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

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language a.a. 2004/05 Tecnologie Web 1 XML - I XML (exstensible Markup Language): XML è un formato standard,

Dettagli

Sommario. Settimana - Gli elementi fondamentali... 1. Introduzione...xv. Giorno 1 - I linguaggi di markup...3

Sommario. Settimana - Gli elementi fondamentali... 1. Introduzione...xv. Giorno 1 - I linguaggi di markup...3 000B-XML-Somm.fm Page iii Wednesday, June 12, 2002 9:25 AM Sommario Introduzione...xv A chi si rivolge questo libro...xvi Convenzioni usate in questo libro...xvi Settimana - Gli elementi fondamentali...

Dettagli

APPENDICE C extensible Markup Language

APPENDICE C extensible Markup Language APPENDICE C extensible Markup Language C.1 extensible Markup Language, concetti di base XML è un dialetto di SGML progettato per essere facilmente implementabile ed interoperabile con i suoi due predecessori

Dettagli

a cura di Maria Finazzi

a cura di Maria Finazzi Esercitazioni di XML a cura di Maria Finazzi (11-19 gennaio 2007) e-mail: maria.finazzi@unipv.it pagine web: Il trattamento dell'informazione Testo a stampa: Come

Dettagli

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati INTRODUZIONE Accesso ai dati tramite DBMS Livelli di astrazione Modello dei dati: schema / istanza / metadati Alcuni modelli dei dati Linguaggi per DBMS Architettura di base di un DBMS cesarini - BDSI

Dettagli

XML. (extensible Markup Language) Seconda parte

XML. (extensible Markup Language) Seconda parte XML (extensible Markup Language) Seconda parte XML Schema: motivazione XML è lo strumento ideale per esprimere documenti di testo, ma è anche molto di più è uno strumento per trasferire DATI STRUTTURATI

Dettagli

SVILUPPARE TEMPLATE CON ARIADNE WCM. Linguaggi e tecnologie per sviluppare siti web

SVILUPPARE TEMPLATE CON ARIADNE WCM. Linguaggi e tecnologie per sviluppare siti web SVILUPPARE TEMPLATE CON ARIADNE WCM Linguaggi e tecnologie per sviluppare siti web 1 Le componenti da considerare XML XSL + XPATH TEMPLATE REPOSITORY ACM 2 Sviluppare Template con Ariadne WCM 1. INTRODUZIONE

Dettagli

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

XML. Concetti principali. Risultato possibile. Differenze tra XML e HTML Concetti principali Un documento XML contiente delle istruzioni particolari chiamate tag scritte in forma di coppia di parentesi (metalinguaggio con parentesi) Daniele Marini XML questa

Dettagli

Tecniche Multimediali

Tecniche Multimediali Un programma di computer fa quello che gli dici, non quello che vuoi. Legge di Greer (Leggi di Murphy applicate all informatica) Tecniche Multimediali Corso di Laurea in «Informatica» - aa 2010-2011 Prof.

Dettagli

Linguaggi per la descrizione dei documenti

Linguaggi per la descrizione dei documenti SGML (Standard General Markup Language) Linguaggi per la descrizione dei documenti SGML,HTML,XML Molteplicità di documenti di tipo diverso (es. web): articoli, cataloghi, rubriche, tabelle di dati etc..

Dettagli

Il linguaggio XML. Capitolo 3. 3.1 Introduzione al linguaggio XML

Il linguaggio XML. Capitolo 3. 3.1 Introduzione al linguaggio XML Capitolo 3 Il linguaggio XML 3.1 Introduzione al linguaggio XML Il linguaggio XML (extensible Markup Language) è stato sviluppato nel 1996 da XML Working Group, gruppo di lavoro organizzato dal World Wide

Dettagli

Tecniche Multimediali

Tecniche Multimediali Chiedersi se un computer possa pensare non è più interessante del chiedersi se un sottomarino possa nuotare Edsger Dijkstra (The threats to computing science) Tecniche Multimediali Corso di Laurea in «Informatica»

Dettagli

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Applicazioni e Architetture Internet 1 Introduzione Introduzione alle architetture a tre livelli Formati di dati per il Web HTML, XML, DTD 2 Componenti dei sistemi dataintensive Tre tipi separati di funzionalità:

Dettagli

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Introduzione ai Sistemi di Gestione di Basi di Dati XML Introduzione ai Sistemi di Gestione di Basi di Dati Introduzione ai Sistemi di Gestione di Basi di Dati Obiettivi Memorizzare ed estrarre documenti da RDBMS. Trasformare dati tabellari in dati e viceversa.

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Sistemi Informativi e Basi di Dati

Sistemi Informativi e Basi di Dati Sistemi Informativi e Basi di Dati Laurea Specialistica in Tecnologie di Analisi degli Impatti Ecotossicologici Docente: Francesco Geri Dipartimento di Scienze Ambientali G. Sarfatti Via P.A. Mattioli

Dettagli

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_5 V1.11. JSP parte E

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_5 V1.11. JSP parte E Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_5 V1.11 JSP parte E Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e

Dettagli

XSLT WWW. Fabio Vitali 14 aprile 2000

XSLT WWW. Fabio Vitali 14 aprile 2000 XSLT Fabio Vitali 14 aprile 2000 Introduzione Oggi esaminiamo in breve: XSLT, ovvero il linguaggio di stile di XML. 2 XSL: un linguaggio di stylesheet Poiché nessun elemento di XML possiede un significato

Dettagli

Università della Calabria

Università della Calabria Università della Calabria Facoltà d Ingegneria Dipartimento di Elettronica, Informatica e Sistemistica Tesi di Laurea Ingegneria Informatica Tecniche di gestione di Dati Semi Strutturati Relatore Prof.

Dettagli

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

XQuery. è lo standard adottato dal W3C per la XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare i contenuti XML ;4XHU\ XQuery Il linguaggio XQuery è lo standard adottato dal W3C per la manipolazione e ristrutturazione di documentid XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

Dettagli

Linguaggi ed Applicazioni mul1mediali

Linguaggi ed Applicazioni mul1mediali Linguaggi ed Applicazioni mul1mediali 06.05 XLST Maurizio Maffi ISTI Informa1on Science and Technology Ins1tute Da XSL a XSLT XSL o extensible Stylesheet Language, è un linguaggio XML creato inizialmente

Dettagli

XML: La nascita del linguaggio

XML: La nascita del linguaggio XML: introduzione alla codifica dei testi Con la codifica dei testi si intende la rappresentazione dei testi stessi su un supporto digitale in un formato utilizzabile dall'elaboratore (Machine Readable

Dettagli

ma l XML va ben al di là dell HTML: serve per descrivere

ma l XML va ben al di là dell HTML: serve per descrivere Il metalinguaggio XML 1 Introduzione all'xml Il futuro dei linguaggi di markup: XML = EXtensible Markup Language è una versione semplificata dell SGML Nasce con l'intento di superare alcune limitazioni

Dettagli

Document Type Definition (DTD)

Document Type Definition (DTD) Laboratorio di Programmazione Distribuita Document Type Definition () Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi Relazione tra classi e oggetti

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

Laboratorio di Programmazione Distribuita. Introduzione a XML. Dott. Marco Bianchi Università degli Studi di L'Aquila

Laboratorio di Programmazione Distribuita. Introduzione a XML. Dott. Marco Bianchi Università degli Studi di L'Aquila Laboratorio di Programmazione Distribuita Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi Cos'è XML? XML = extensible Markup Language E' un meta-linguaggio

Dettagli

Informatica I per la. Fisica

Informatica I per la. Fisica Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

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

XML: sintassi. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1 XML: sintassi Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1 Cosa è XML 1 XML (Extensible Markup Language ) è un linguaggio di markup È stato progettato per lo scambio e la interusabilità di documenti

Dettagli

SQL IL LINGUAGGIO DI INTERROGAZIONE

SQL IL LINGUAGGIO DI INTERROGAZIONE SQL IL LINGUAGGIO DI INTERROGAZIONE SQL! Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM! Significato originario Structured Query Language! Standard de facto! Attuale standard ANSI/ISO è SQL:1999

Dettagli

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26 Uso delle variabili di alias SQL slide aggiuntive Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione educazione Non solo per disambiguare la notazione

Dettagli

ITI Galilei Salerno Corso Database ed SQL

ITI Galilei Salerno Corso Database ed SQL ITI Galilei Salerno Corso Database ed SQL prof Carmine Napoli Introduzione Database: Si definisce Database un insieme di dati, di solito di notevoli dimensioni, raccolti, memorizzati ed organizzai in modo

Dettagli

Applicazioni web-based. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (prima parte) Gli Standard Web

Applicazioni web-based. Progettazione di Sistemi Interattivi. Implementazione di sistemi interattivi web-based (prima parte) Gli Standard Web Progettazione di Sistemi Interattivi Implementazione di sistemi interattivi web-based (prima parte) Docente: Daniela Fogli Applicazioni web-based Il World Wide Web (W3C) [www.w3.org]: Fondato da Tim Berners-Lee

Dettagli

Prefazione. Piersalvo Ortu 1

Prefazione. Piersalvo Ortu 1 Prefazione Questa tesi ha come obiettivo principale descrivere in che modo i documenti XML possano essere utilizzati per essere visualizzati su diversi apparati, dai browser Web ai dispositivi cellulari,

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

XML exstensible Markup Language

XML exstensible Markup Language XML exstensible Markup Language Metalinguaggio Orientamento al web Enorme diffusione 1 GML 1969 C.Goldfarb (IBM) SGML 1975 C. Goldfarb Genesi di XML HTML 1989 Tim- Berners Lee (CERN) W3C 1995 Nasce il

Dettagli

Introduzione alla codifica XML per i testi umanistici

Introduzione alla codifica XML per i testi umanistici Introduzione alla codifica XML per i testi umanistici Daniele Silvi, Domenico Fiormonte, Fabio Ciotti fiormont@uniroma3.it - silvi@lettere.uniroma2.it - ciotti@lettere.uniroma2.it 1 La digitalizzazione

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati

Dettagli

Terminologia. Laboratorio di sistemi interattivi. XML: descrivere caratteristiche arbitrarie di un documento. Lezione 11: Introduzione a XML

Terminologia. Laboratorio di sistemi interattivi. XML: descrivere caratteristiche arbitrarie di un documento. Lezione 11: Introduzione a XML Laboratorio di sistemi interattivi Lezione 11: Introduzione a XML 1 Terminologia XML = extensible Markup Language DTD = Document Type Definition XSL = extensible Stylesheet Language XSLT = extensible Stylesheet

Dettagli

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

Dettagli

XML e TEI: introduzione alla codifica dei testi letterari. La nascita del linguaggio. Il concetto di metalinguaggio di codifica SGML

XML e TEI: introduzione alla codifica dei testi letterari. La nascita del linguaggio. Il concetto di metalinguaggio di codifica SGML XML e TEI: introduzione alla codifica dei testi letterari Con la codifica dei testi si intende la rappresentazione dei testi stessi su un supporto digitale in un formato utilizzabile dall'elaboratore (Machine

Dettagli

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database

Basi di dati. Microsoft Access. Cosa è. Pietro Pala (pala@dsi.unifi.it) Come iniziare. Aprire un database. Creare un database. Creare un database Cosa è Basi di dati Pietro Pala (pala@dsi.unifi.it) Microsoft Access Access è un DBMS relazionale in grado di supportare: Specifica grafica dello schema della base dati Specifica grafica delle interrogazioni

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

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

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

Dettagli

2 Reti di Calcolatori XML

2 Reti di Calcolatori XML 2 3 4 5 6 7 8 root element Risultati Basi di dati 10 Dicembre 2003 Mario Rossi Corso Data List a_st

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 Classe: 5^A inf Prof.ssa C. Lami Prof. S. Calugi Materia: INFORMATICA GENERALE, APPLICAZIONI TECNICO SCIENTIFICHE

Dettagli

XML. XML è contemporaneamente: XML non è:

XML. XML è contemporaneamente: XML non è: XML XML è contemporaneamente: Linguaggio di annotazione (Markup) che permette di creare gruppi di marcatori (tag set) personalizzati (MathML, XHTML, chemicalml, ecc..) Formato standard per lo scambio dei

Dettagli

Basi Di Dati, 09/12/2003

Basi Di Dati, 09/12/2003 Basi Di Dati, 09/12/2003 Una concessionaria di auto nuove ed usate vuole automatizzare alcune delle sue attività. L attività che la concessionaria vuole automatizzare riguarda la gestione delle auto nuove,

Dettagli

Linguaggi per la descrizione dei documenti SGML,HTML,XML

Linguaggi per la descrizione dei documenti SGML,HTML,XML Linguaggi per la descrizione dei documenti SGML,HTML,XML SGML (Standard General Markup Language) Molteplicità di documenti di tipo diverso (es. web): articoli, cataloghi, rubriche, tabelle di dati etc..

Dettagli

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

Creare documenti XML. La natura epistemologica della codifica. Perché comprare XML? La struttura gerarchica ordinata. Riassumendo le componenti Lez. 7 Creare documenti XML La codifica deve raggiungere 2 traguardi: Accessibilità tecnica Permanenza a lungo termine 05/03/12 Perché comprare XML La natura epistemologica della codifica HTML Descrive

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB MODULO 5 DATA BASE MODULO 5 - DATA BASE 1 PROGRAMMA Introduzione: concetti generali di teoria Progettazione rapida introduzione alla progettazione di DB Utilizzo di Access pratica sulla creazione e l utilizzo

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Cultura Tecnologica di Progetto

Cultura Tecnologica di Progetto Cultura Tecnologica di Progetto Politecnico di Milano Facoltà di Disegno Industriale - DATABASE - A.A. 2003-2004 2004 DataBase DB e DataBase Management System DBMS - I database sono archivi che costituiscono

Dettagli

XML e standard connessi. XML, XML-Names, XSL, XPointer, XLink

XML e standard connessi. XML, XML-Names, XSL, XPointer, XLink XML e standard connessi XML, XML-Names, XSL, XPointer, XLink 1 Sommario Introduzione XML 1.0 XML-Names XSL XPointer e XLink 2 XML XML (Extensible Markup Language [sic!]) è un meta-linguaggio di markup,

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

Dettagli

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9 Prefazione... 1 Contenuti... 1 Ringraziamenti... 2 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 1.1 Dichiarazione di funzioni e procedure... 3 1.2 Istruzioni PSM... 4 2 Vincoli e Trigger...

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Introduzione al linguaggio XML, extensible Markup Language

Introduzione al linguaggio XML, extensible Markup Language Introduzione al linguaggio XML, extensible Markup Language Lezione del Corso Interazione Uomo Macchina 1, Docente Francesco Mele Corso di Laurea in Informatica Università di Napoli Federico II, Anno Accademico

Dettagli

Introduzione ai database

Introduzione ai database Fluency Introduzione ai database Capitolo 13 Database vs. tabella Significato dei dati Tabella canada 32805041 1.61 5

Dettagli

Formati di interscambio

Formati di interscambio Università degli Studi di Brescia Elementi di informatica e Programmazione Dipartimento di Ingegneria Meccanica e Industriale EXCEL Docente: Marco Sechi E-mail: marco.sechi@unibs.it Vers. 11/10/2015 Formati

Dettagli

Oracle 9i oracle text

Oracle 9i oracle text Argomenti trattati: Oracle 9i oracle text Rappresentare documenti di testo in un DBMS testuale Gestione di testi in Oracle 9i Corso di Laboratorio di Basi di dati II Autori: Myriam Mapelli, Guido Valente

Dettagli

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS CSS e XML Per formatare i documenti XML è possibile seguire due strade: Quando non c è bisogno della potenza elaborativa di XSL, l utilizzo

Dettagli

XSLT. Testo di riferimento. Cos'è XSLT. Come funziona XSLT

XSLT. Testo di riferimento. Cos'è XSLT. Come funziona XSLT XSLT Moreno Marzolla INFN Sezione di Padova moreno.marzolla@pd.infn.it http://www.dsi.unive.it/~marzolla Testo di riferimento Erik T. Ray, Learning XML, O'Reilly, First Edition, January 2001 ISBN: 0-59600-046-4,

Dettagli

Programmazione in Ambienti Distribuiti A.A. 2004-05. Il web è costituito da:

Programmazione in Ambienti Distribuiti A.A. 2004-05. Il web è costituito da: XML Programmazione in Ambienti Distribuiti A.A. 2004-05 Motivazioni Il web è costituito da: Un insieme di protocolli per lo scambio di informazioni e documenti (HTTP/TCP/IP ) Un insieme enorme di calcolatori

Dettagli

Ricorsione in SQL-99. Introduzione. Idea di base

Ricorsione in SQL-99. Introduzione. Idea di base Ricorsione in SQL-99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione

Dettagli

Sistemi Informativi Aziendali II

Sistemi Informativi Aziendali II Modulo 2 Sistemi Informativi Aziendali II 1 Corso Sistemi Informativi Aziendali II - Modulo 2 Modulo 2 La gestione delle informazioni strutturate nell impresa: La progettazione di un Data Base; Le informazioni

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

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

XML e Database. Giuseppe Della Penna Università degli Studi di L Aquila. Giuseppe.DellaPenna@univaq.it http://www.di.univaq. XML e Database Giuseppe Della Penna Università degli Studi di L Aquila Giuseppe.DellaPenna@univaq.it http://www.di.univaq.it/gdellape Engineering IgTechnology Info92 Maggioli Informatica Micron Technology

Dettagli

MANUALE D'USO (VER. 0.5)

MANUALE D'USO (VER. 0.5) MANUALE D'USO (VER. 0.5) NOTA BENE PER ESEGUIRE XGATE È NECESSARIO CHE SIA INSTALLATO SUL COMPUTER IL FRAMEWORK.NET VERSIONE 2.0 PREFAZIONE Questa applicazione è stata creata per facilitare l'approccio

Dettagli

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

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

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Simonotti Graziano DATABASE

Simonotti Graziano DATABASE DATABASE 1 - Che cos'è un database? Il database è un archivio di dati, che può essere gestito con sistemi informatici oppure in modo manuale. 2 - Come si chiamano i programmi che gestiscono gli archivi?

Dettagli

Facoltà di Farmacia - Corso di Informatica

Facoltà di Farmacia - Corso di Informatica Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito

Dettagli

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML XML 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML XML è un linguaggio di marcatura proposto dal W3C XML definisce una sintassi generica per contrassegnare i dati di un documento elettronico con marcatori

Dettagli