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

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

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

LISTA TITOLI ACCESSI

LISTA TITOLI ACCESSI LISTA TITOLI ACCESSI La Lista Unica Titoli di Accesso, così come definita dal Provvedimento al punto 1.1.2, è memorizzata, come raggruppamento degli eventi del giorno, secondo tracciati ASCII a campi fissi

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Dal modello concettuale al modello logico

Dal modello concettuale al modello logico Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

Esercitazione su SQL

Esercitazione su SQL Esercizio 1. Esercitazione su SQL Si consideri la base di dati relazionale composta dalle seguenti relazioni: impiegato Matricola Cognome Stipendio Dipartimento 101 Sili 60 NO 102 Rossi 40 NO 103 Neri

Dettagli

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi I semestre 03/04 Inidirizzi IP e Nomi di Dominio Domain Name System Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

Dettagli

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

Il linguaggio SQL Basi di dati 1. Il linguaggio SQL. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 1 Il linguaggio SQL Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL Basi di dati 2 Introduzione SQL (Structured Query Language)

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

PHP: form, cookies, sessioni e. Pasqualetti Veronica

PHP: form, cookies, sessioni e. Pasqualetti Veronica PHP: form, cookies, sessioni e mysql Pasqualetti Veronica Form HTML: sintassi dei form 2 Un form HTML è una finestra contenente vari elementi di controllo che consentono al visitatore di inserire informazioni.

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Fondamenti di Teoria delle Basi di Dati

Fondamenti di Teoria delle Basi di Dati Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 6: Potenza espressiva del calcolo Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": tante variabili! espressioni

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Basi di Dati. S Q L Lezione 5

Basi di Dati. S Q L Lezione 5 Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse Cos è Excel Uno spreadsheet : un foglio elettronico è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse I dati contenuti nelle celle possono essere elaborati ponendo

Dettagli

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon)

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) Sed & Awk Sed e Awk sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) awk: linguaggio per l'elaborazione di modelli orientato ai campi (1977, Bell

Dettagli

Appunti di Logica Matematica

Appunti di Logica Matematica Appunti di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Una proposizione è un affermazione che esprime un valore di verità, cioè una affermazione che è VERA oppure FALSA. Ad esempio: 5

Dettagli

Logica del primo ordine

Logica del primo ordine Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_4 V1.3 Logica del primo ordine Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Editor vi. Editor vi

Editor vi. Editor vi Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta

Dettagli

Database Manager Guida utente DMAN-IT-01/09/10

Database Manager Guida utente DMAN-IT-01/09/10 Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Ricorsione. Rosario Culmone. - p. 1/13

Ricorsione. Rosario Culmone. - p. 1/13 Ricorsione Rosario Culmone - p. 1/13 Induzione e Ricorsione Spesso utilizzeremo le definizioni induttive. Sono forme di definizione compatte che descrivono un numero infinito di elementi. I contesti di

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

Lezione III: Oggetti ASP e interazione tramite form HTML

Lezione III: Oggetti ASP e interazione tramite form HTML Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI di Luca Carnini Tesina presentata per la discussione del diploma di laurea in Ingegneria informatica Politecnico di Milano sede

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

Progettazione di Database

Progettazione di Database Progettazione di Database Progettazione Concettuale: strutturazione della realtà che si vuole rappresentare secondo uno schema concettuale Dallo schema concettuale si ricava lo schema del database relazionale

Dettagli

I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED

I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED I FILTRI SED, GREP (e AWK) Tratto da http://www.pluto.it/files/ildp/guide/abs/textproc.html SED SED è un programma in grado di eseguire delle trasformazioni elementari in un flusso di dati di ingresso,

Dettagli

1) Le Espressioni regolari

1) Le Espressioni regolari ESPRESSIONI REGOLARI e FILTRI SED, GREP e AWK 1) Le Espressioni regolari Un'espressione regolare è un modello che descrive un insieme di stringhe. Le espressioni regolari sono costruite, in maniera analoga

Dettagli

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Analisi di massima: L utente dovrà inserire un numero limite, e tramite vari calcoli verrà stampato a video la sequenza.

Analisi di massima: L utente dovrà inserire un numero limite, e tramite vari calcoli verrà stampato a video la sequenza. Relazione tecnica Fibonacci ANDENA GIANMARCO Traccia: Creare un algoritmo che permetta, dato un valore intero e positivo, di stabilire la sequenza utilizzando la regola di fibonacci dei numeri fino al

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE

Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE Specifiche tecnico-funzionali per comunicazione e conservazione dati da parte dei Sistemi Controllo Accessi. INDICE 1.1 CARATTERISTICHE DEL SUPPORTO IMMODIFICABILE E SUO FILE-SYSTEM... 2 1.2 SICUREZZA

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. Albero semantico Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. A differenza dell albero sintattico (che analizza la formula da un punto di vista puramente

Dettagli

SQL Injection: le tecniche, i tool ed esempi pratici OWASP. The OWASP Foundation

SQL Injection: le tecniche, i tool ed esempi pratici OWASP. The OWASP Foundation SQL Injection: le tecniche, i tool ed esempi pratici SMAU E- Academy 2006 Antonio Parata collaboratore -Italy http://www.ictsc.it antonio.parata@ictsc.it http://www.owasp.org/index.php/italy Copyright

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete.

Dal punto di vista organizzativo sono possibili due soluzioni per il sistema di rete. Premessa. La traccia di questo anno integra richieste che possono essere ricondotte a due tipi di prove, informatica sistemi, senza lasciare spazio ad opzioni facoltative. Alcuni quesiti vanno oltre le

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

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

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it

Gli asteroidi. Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Esempio sull'utilizzo dell'osservatorio Virtuale Gli asteroidi Informazioni e contatti: http://vo-for-education.oats.inaf.it - iafrate@oats.inaf.it Distribuzione degli asteroidi Il Sistema Solare è composto

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA

MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA Allegato 1 al bando di gara SCUOLA TELECOMUNICAZIONI FF.AA. CHIAVARI REQUISITO TECNICO OPERATIVO MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA MASTER DI 2 LIVELLO 1. DIFESA

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita;

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita; .netbin. è un potentissimo strumento SVILUPPATO DA GIEMME INFORMATICA di analisi dei dati con esposizione dei dati in forma numerica e grafica con un interfaccia visuale di facile utilizzo, organizzata

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

MANUALE DI UTILIZZO SMS MESSENGER

MANUALE DI UTILIZZO SMS MESSENGER MANUALE DI UTILIZZO SMS MESSENGER (Ultimo aggiornamento 14/05/2014) 2013 Skebby. Tutti i diritti riservati. INDICE INTRODUZIONE... 1 1.1. Cos è un SMS?... 1 1.2. Qual è la lunghezza di un SMS?... 1 1.3.

Dettagli

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

NAVIGAORA HOTSPOT. Manuale utente per la configurazione NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli