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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Costruire un database con Apache, PHP e MySql

2. Costruire un database con Apache, PHP e MySql 2. Costruire un database con Apache, PHP e MySql Lo scopo di questa esercitazione è realizzare un server web e costruire un database accessibile attraverso Internet utilizzando il server Apache, il linguaggio

Dettagli

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

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 29/03/2014 SQL : Structured Query Language

Dettagli

6. XML E RAPPRESENTAZIONE DEL FORMATO DI RISPOSTA

6. XML E RAPPRESENTAZIONE DEL FORMATO DI RISPOSTA 6. XML E RAPPRESENTAZIONE DEL FORMATO DI RISPOSTA Il permesso di fare copie digitali o fisiche di tutto o parte di questo lavoro per uso di ricerca o didattico è acconsentito senza corrispettivo in danaro,

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

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

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università

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

OR true null false true true true true null true null null false true null false NOT

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Linguaggi ed Applicazioni mul1mediali

Linguaggi ed Applicazioni mul1mediali Università degli Studi di Urbino "Carlo Bo" Linguaggi ed Applicazioni mul1mediali 06.01- Introduction to mark-up. 06.02- classification 06.03- SGML 06.04- XML Hypertext Maurizio Maffi ISTI Informa1on Science

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

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni

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

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista

Dettagli

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

Dettagli

Introduzione ai database I concetti fondamentali Database e DBMS Per comprendere appieno cos'è un Database e quali sono i vantaggi legati al suo impiego, soprattutto nel settore gestionale, è necessario

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

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

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server! SQL Server è un RDBMS (Relational DataBase Management System)! Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,

Dettagli

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

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

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

XML Schema Definition (XSD)

XML Schema Definition (XSD) Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 XML Schema Definition (XSD) Eufemia TINELLI Contenuti XML Schema e DTD Formato XML Schema Tipi

Dettagli

TECN.PROG.SIST.INF. XML. Roberta Gerboni

TECN.PROG.SIST.INF. XML. Roberta Gerboni Roberta Gerboni Introduzione Lo sviluppo tecnologico relativo alle reti il crescente sviluppo della distribuzione di hardware per la comunicazione hanno reso necessaria Semantic Web significa un Web comprensibile

Dettagli

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

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

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

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 Road Map Cos è XML La Struttura dell XML DTD XML Schema CSS e XML XSL,XSLT XLink Applicazioni XML (DOM, SAX) Oggi Mercoledì 12 Ottobre Mercoledì

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI Il Database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi

Dettagli

ESEMPIO: RITARDI & BIGLIETTI

ESEMPIO: RITARDI & BIGLIETTI ESEMPIO: RITARDI & BIGLIETTI Fatto Ritardi: l analisi a livello volo giornaliero, considerando l aeroporto di partenza, la città e lo stato di arrivo e la compagnia Fatto Biglietti: l analisi deve considerare

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 1 Raffaella Gentilini 1 / 67 Sommario 1 Introduzine al Linguaggio SQL Concetti Preliminari 2 3 2 / 67 Concetti Preliminari Il linguaggio SQL SQL Acronimo per

Dettagli

XQuery in DB2, Oracle ed SQL Server

XQuery in DB2, Oracle ed SQL Server XQuery in DB2, Oracle ed SQL Server Introduzione l Analizziamo il supporto allo standard XQuery fornito dai DBMS più diffusi, evidenziando eventuali differenze tra lo standard e le sue implementazioni.

Dettagli

extensible Markup Language XML

extensible Markup Language XML Operatore informatico giuridico A.A 2003/2004 I Semestre extensible Markup Language XML Dr. Raffaella Brighi Limiti di HTML Non consente la descrizione dei dati: i marker HTML specificano come visualizzare

Dettagli

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

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Sommario - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Introduzione - Un database è un archivio strutturato di dati che può essere manipolato con dei comandi nel linguaggio

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli