Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali"

Transcript

1 Basi di dati multimediali 1 Basi di dati multimediali Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: testi arbitrari immagini audio video dati tradizionali (relazionali, orientati ad oggetti) 2 Basi di dati multimediali 3 Un sistema di gestione dati multimediali (MMDBMS) permette la rappresentazione e la gestione di diversi tipi di dati, potenzialmente rappresentati secondo diversi formati Un MMDBMS deve permettere di: rappresentare dati corrispondenti a diverse tipologie di media interrogare dati rappresentati in formati diversi in modo uniforme interrogare dati in formati diversi simultaneamente nel contesto della stessa query recuperare gli oggetti dal supporto su cui risiedono, compatibilmente con il tipo di media che rappresentano 1

2 MMDBMS: aspetti da considerare Rappresentazione i dati sono tipicamente non strutturati si vuole analizzare il contenuto come è possibile rappresentare il contenuto di un documento multimediale? Come si fa a capire che un immagine contiene una certa persona Query un linguaggio di query per MMDBMS deve avere caratteristiche particolari query processing deve analizzare il contenuto degli oggetti 4 MMDBMS: aspetti da considerare 5 Memorizzazione: quali supporti utilizzare? (dischi, CD-ROM, nastri) che operazioni supportare: non solo lettura/scrittura ma anche (video/audio) playback rewind fast forward pause Indici: come indicizzare gli oggetti multimediali? Analizzeremo solo i primi due aspetti Rappresentazione Un oggetto multimediale in genere può essere composto da diversi sotto-oggetti, ciascuno relativo ad un particolare media le relazioni tra oggetti e sotto-oggetti possono essere modellate utilizzando un approccio orientato ad oggetti o relazionale ad oggetti rimane il problema di come rappresentare il contenuto di un oggetto corrispondente ad un singolo media 6 2

3 Rappresentazione Nelle basi di dati relazionali ad oggetti, i dati multimediali vengono memorizzati secondo due distinte modalità: internamente al sistema come valori non strutturati in campi LOB (Large Object) esternamente al sistema, mantendo all interno del DBMS solo il riferimento alla posizione del file 7 Rappresentazione Oggetto multimediale DBMS LOB riferimento Oggetto multimediale 8 Rappresentazione - LOB Facilitano la memorizzazione di dati multimediali (documenti, immagini, audio, ecc.) Possono contenere fino a 4GB di dati (di solito i RDBMS non vanno oltre 2-32KB) Il DBMS non associa alcuna interpretazione a questi dati 9 3

4 Rappresentazione - LOB Si distinguono in: BLOB (Binary Large Object) CLOB (Character Large Object) Supportati da SQL-99 Sono fisicamente memorizzati esternamente alle tabelle ma internamente al DB 10 Rappresentazione - ORDBMS Gli ORDBMS forniscono inoltre nuovi tipi di dato complessi che supportano: la rappresentazione del dato multimediale Metodi per la manipolazione dei dati multimediali Predicati e funzioni per l interrogazione dei dati multimediali 11 Rappresentazione 12 Gli oggetti multimediali sono completamente non strutturati per poterli interrogare in modo ragionevole, è necessario sovraimporre a ciascun oggetto una rappresentazione concettuale (surrogato) insieme di dati strutturati (attributi) che descrivono l oggetto multimediale dal punto di vista della struttura e del contenuto semantico ogni oggetto dello stesso tipo (per esempio, stesso media) sarà descritto dallo stesso tipo di surrogato il surrogato dell oggetto multimediale non descrive pienamente il contenuto informativo dell oggetto ma costituisce una sua sintesi i surrogati rappresentano gli oggetti sui quali definire le tecniche di indice I surrogati rappresentano metadati 4

5 Rappresentazione Surrogato composto da due tipi di attributi: descrittivi associano informazioni descrittive (relazionali) a ciascun oggetto vengono associati manualmente all oggetto content-based (anche chiamati features) associano informazioni relative al contenuto vengono estratti direttamente dal sistema 13 Rappresentazione - esempio Attributi descrittivi nome: Villa Medici località:roma Features: forma: 14 Rappresentazione Oggetti multimediali Generazione metadati (automatica + manuale) Features + attributi I sistemi mettono a disposizione funzionalità per estrarre feature e per utilizzare tali feature nel contesto delle interrogazioni 15 5

6 Rappresentazione Conseguenza i documenti multimediali potranno essere confrontati solo rispetto agli attributi e alle feature feature uguali non sempre si riferiscono ad oggetti uguali Esempio si puo riferire sia ad una villa che ad un industria 16 Query processing: idea di base Oggetti multimediali Meccanismo di interrogazione Generazione metadati 2 3 Features + attributi La query viene eseguita sui metadati (attributi + features) 2. dai metadati si risale ai documenti originali 3. i documenti originali vengono restituiti all utente Query processing: caratteristiche 1. Le query devono potere essere eseguite su diversi tipi di media contemporaneamente 2. devono considerare attributi e features 3. devono supportare query per similitudine 4. devono associare un valore di rilevanza ad ogni oggetto restituito 5. devono poter essere pesate 18 6

7 2. Attributi e feature Le query interrogano gli oggetti multimediali considerando gli attributi e le feature ad essi associati Esempio: ritrova tutte le immagini di abitazioni importanti in Liguria assumo di avere estratto le forme dalle immagini assumo di avere associato informazione descrittiva (luogo, tipo abitazione) Query per similitudine Poiché il contenuto degli oggetti viene espresso attraverso feature e poiché le feature non rappresentano pienamente il contenuto semantico di un oggetto, le condizioni di selezione sugli oggetti multimediali non sempre sono certe ciò significa che le condizioni non sono in generale condizioni di uguaglianza ma di similitudine le condizioni in genere sono verificate in una certa misura, data dalla similitudine tra ciò che stiamo cercando e ciò che abbiamo trovato Query per similitudine il linguaggio e il query processing devono permettere di esprimere ed eseguire query di questo tipo Esempio Determina tutte le immagini in cui appare una certa persona, presente in una specifica foto difficilmente verranno restituite tutte le immagini che contengono questa persona molto probabilmente verranno trovate anche immagini in cui compaiono persone che, per qualche motivo (dipende dalle feature considerate) assomigliano alla persona cercata 21 7

8 4. Ranking Una conseguenza della necessità di eseguire query per similitudine è quello di decidere i criteri di rilevanza di un oggetto rispetto ad una interrogazione: ranking Il ranking è un ordinamento degli oggetti restituiti da una interrogazione che riflette il grado di rilevanza dei documenti rispetto all interrogazione I criteri per effettuare il ranking dipendono dal media considerato e dal modello utilizzato per la sua rappresentazione e interrogazione Esempio: ritrova le 5 immagini in cui più probabilmente appare una certa persona, presente in una specifica foto Query pesate In alcuni casi può essere utile pesare le varie condizioni nel contesto di una query questo permette di associare un livello di importanza alla condizione nel determinare la similarità degli oggetti Esempio: determinare le immagini che contengono una persona (0.7) non contengono alberi (0.3) la similarità viene pesata 23 Approcci alla specifica delle query Si estende un query language con operazioni specifiche per l interrogazione di dati multimediali ad esempio, si estende SQL con condizioni specifiche da applicare ad oggetti multimediali tipico DBMS estesi alla gestione di dati multimediali Si fornisce un oggetto di esempio e si vogliono determinare tutti gli oggetti simili query by example: esempio: si fornisce la fotografia del viso di una persona e si vogliono ritrovare tutti i visi simili tipico di sistemi dedicati alla gestione di un solo tipo di media 24 8

9 Nel seguito... Considereremo due media: testo immagini per ciascuno illustreremo rappresentazione del contenuto query in alcuni sistemi 25 Basi di dati testuali 26 Basi di dati testuali Sono in grado di memorizzare, gestire ed interrogare documenti testuali non strutturati I database di testi sfruttano tecniche sviluppate per i sistemi di Information Retrieval (IR) L ambito dell IR ha prodotto negli ultimi 20 anni: Modelli per la rappresentazione di documenti Architetture e linguaggi Interfacce e metodi di visualizzazione Nonostante questo l area dell IR è sempre stata di interesse limitato L avvento del Web ha cambiato le cose 27 9

10 Scopo Lo scopo è di reperire tutti e soli quei documenti che interessano l utente Un sistema con tali caratteristiche non può però essere realizzato in pratica Per tale motivo si valuta un sistema tanto più efficace quanto più e in grado di avvicinarsi a tale requisito 28 Criteri di valutazione Precisione (precision) Permette di quantificare quanto bene un sistema soddisfa la proprieta : Solo i documenti rilevanti vengono restituiti Richiamo (recall) Permette di quantificare quanto bene un sistema soddisfa la proprieta : Tutti i documenti rilevanti vengono restituiti 29 Criteri di valutazione Rilevanti Restituiti Non rilevanti restituiti Rilevanti Non restituiti Non rilevanti Non restituiti Documenti contenuti nel database 30 10

11 Criteri di valutazione: richiamo Il potere di richiamo è la percentuale di documenti rilevanti restituiti rispetto al totale di documenti rilevanti presenti nel sistema Rilevanti Restituiti Richiamo = Totale Rilevanti 31 Criteri di valutazione: Richiamo Il potere di richiamo ideale è uguale ad uno In generale il potere di richiamo sarà un valore inferiore ad uno perché il numero di documenti pertinenti restituiti è inferiore al numero di documenti pertinenti presenti nel sistema 32 Criteri di valutazione: Precisione La precisione è la percentuale di documenti rilevanti sul totale dei documenti restituiti Precisione = Rilevanti Restituiti Totale Restituiti 33 11

12 Criteri di valutazione: considerazioni La condizione ideale è avere il 100% di precisione e richiamo In generale, aumentando il numero di documenti restituiti: si aumenta il potere di richiamo in quanto si aumenta potenzialmente il numero di rilevanti restituiti si potrebbe ridurre la precisione in quanto l incremento del numero di documenti restituiti in genere a maggiore dell incremento del numero dei documenti rilevanti restituiti 34 Rappresentazione di documenti testuali 35 Features Nel caso di documenti testuali le feature sono i termini utilizzati come indici durante la ricerca Sia i documenti che le interrogazioni vengono rappresentati in termini di insiemi di indici Gli indici possono essere: Una parola chiave o un insieme di parole chiave Un insieme di concetti che caratterizzano il contenuto informativo del documento 36 12

13 Uso dei termini indice Docs Index Terms doc Information Need match Ranking 37 query Modelli Classici Concetti Base Si basano sulla rappresentazione dei documenti e delle interrogazioni come insiemi di termini indice Non tutti i termini che compaiono in un documento sono egualmente rappresentativi del suo contenuto informativo: di solito i termini troppo frequenti non sono buoni candidati per diventare indici L importanza di un indice è rappresentata da un peso ad esso associato 38 Modelli Classici Concetti Base Sia K un insieme di termini indice con cardinalita t k i un termine indice in K d j un documento w ij il peso associato a k i nel documento d j w ij quantifica l importanza dell indice k i per descrivere il contenuto informativo del documento d j w ij = 0 indica che k i non compare in d j 39 13

14 Modelli Classici Concetti Base vec(d j ) = (w 1j, w 2j,, w tj ) è il vettore di pesi associati al documento dj, dove t è la cardinalita di K g i (vec(d j )) = w ij è una funzione che restituisce il peso di k i nel documento d j 40 Modelli Classici Concetti Base Si assume che i pesi degli indici siano indipendenti Questa assunzione è una semplificazione perché esistono delle correlazioni tra termini che compaiono in un documento Questo facilita la definizione dei pesi ma rende meno precisa la ricerca: Es: computer network 41 Modelli classici: proposte Modello booleano Modello vettoriale Modello probabilistico Ogni modello specifica Come rappresentare i pesi come rappresentare le interrogazioni Come calcolare la similarita tra due documenti (tra un documento e un interrogazione) 42 14

15 Modello booleano: i pesi E un modello semplice basato sulla teoria degli insiemi I pesi assumono valori binari: w ij ε {0,1} Un peso uguale a uno indica che il termine compare nel documento Un peso uguale a zero indica che il termine non compare nel documento 43 Modello booleano: le interrogazioni Le interrogazioni sono espressioni booleane Semantica precisa Formalismo consolidato Formule atomiche Termini indici Classici connettivi:,, La negazione di un termine indica che il termine non deve comparire nei documenti cercati Esempio q = ka (kb kc) 44 Modello Booleano: le interrogazioni Per garantire uniformita di rappresentazione, le interrogazioni vengono tradotte in un insieme di vettori Ogni interrogazione viene rappresentata come se fosse un insieme di documenti Idea Query booleana q Si riscrive q in forma normale disgiuntiva, ottenendo una nuova query booleana qdnf equivalente a q Ogni congiunzione impone condizione su termini che si vuole che appaiano/non appaiano nei documenti cercati 45 Si riscrive qdnf in un insieme di vettori sull insieme di termini indice K q che compaiono nella query Ogni vettore viene chiamato componenti congiuntive della query q (qcc) 15

16 Modello booleano: esempio 46 Esempio Interrogazione boolena: q = ka (kb kc) Interrogazione in forma disgiuntiva qdnf = (ka kb) (ka kc) Ogni congiunzione viene riscritta in un insieme di vettori sull insieme dei termini indice che compaiono nella query K q = (ka,kb,kc) (ka kb) riscritto in {(1,1,0), (1,1,1)}, in quanto non si fanno ipotesi su kc (ka kc) riscritto in {(1,0,1), (1,1,0)}, in quanto non si fanno ipotesi su kb Viene restituita l unione di tutti i vettori vec(qdnf)= {(1,1,1), (1,1,0), (1,0,0)} Modello Booleano: similarità sim(q,dj) = 1 se vec(qcc) t.c. vec(qcc) vec(qdnf) k i K q g i (vec(d j )) = g i (vec(qcc))) 0 altrimenti Un documento viene restituito come risultato di una query solo se la sua similitudine con l interrogazione è pari ad uno 47 Modello Booleano: esempio q=vec(qdnf) = {(1,1,1), (1,1,0), (1,0,0)} d j = (0,1,0,.) non è rilevante per q anche se contiene il termine kb d i = (1,1,0,.) è rilevante per q 48 16

17 Modello booleano: svantaggi 49 Nessuna nozione di matching parziale e quindi nessun meccanismo di ranking Un documento o soddisfa la query o non la soddisfa Vengono restituti solo i documenti che la soddisfano completamente I bisogni informativi di un utente devono essere tradotti in una espressione booleana Le interrogazioni formulate dagli utenti sono spesso troppo vaghe per essere rappresentate in questo modo Il problema principale e dato dal fatto che i pesi sono booleani Modello vettoriale Risolve alcuni problemi del modello booleano utilizzando pesi non booleani I documenti non sono piu rilevanti o non rilevanti rispetto ad una query come nel modello booleano ma hanno un certo grado di rilevanza E quindi possibile determinare matching parziali ed effettuare il ranking del risultato 50 Modello vettoriale: pesi Valori contenuti in [0,1] w ij > 0 quando k i d j w iq > 0 quando k i q vec(d j ) = (w 1j, w 2j,..., w tj ) vec(q) = (w 1q, w 2q,..., w tq ) Piu e alto il peso di un termine indice in un documento, tanto meglio il termine rappresenta il documento 51 17

18 Modello Vettoriale: documenti e interrogazioni Sia t il numero di termini indice Sia la query che il documento sono vettori in uno spazio t-dimensionale j dj Θ q 52 i Modello Vettoriale: similarita Similarita calcolata come correlazione tra i vettori vec(d j ) e vec(q) sim(q,d j ) = cos(θ) = [vec(d j ) vec(q)] / vec(d j ) * vec(q) = wij* wiq i 2 2 wij * wiq i i 53 Modello vettoriale: similarita vec(q) non influenza ranking Uguale per tutti i documenti 0 sim(q,d j ) 1 Grado di rilevanza Un documento è restituito anche se soddisfa solo parzialmente l interrogazione si può decidere di restituire solo i documenti la cui similarità con la query supera una certa soglia 54 18

19 Modello vettoriale: calcolo dei pesi Quali strategie adottare per computare i pesi w ij e w iq? Un buon peso deve tener conto di due fattori: Quanto un termine descrive il contenuto informativo di un documento Term frequency tf(i,j), la frequenza di un termine k i all interno di un documento d j Quanto un termine rende un documento diverso dagli altri Se un termine compare in molti documenti non sara molto utile per distinguere un documento da un altro Inverse document frequency idf(i), l inverso della frequenza di un termine k i tra tutti i documenti considerati 55 Modello vettoriale - pesi w ij = tf(i,j) * idf(i) + tf(i,j) + k i rilevante per d j + idf(i) - rilevante in generale 56 Modello vettoriale Sia: N il numero totale di documenti nel db n i il numero di documenti che contengono k i freq(i,j) la frequenza di k i in d j Il fattore tf normalizzato (f) è: f(i,j) = freq(i,j) / max l=1,...,t (freq(l,j)) il massimo è calcolato su tutti i termini k l che compaiono in d j Il fattore idf è dato da: idf(i) = log (N/n i ) il log è usato per rendere comparabili i valori di tf e idf 57 19

20 Modello vettoriale Il metodo più utilizzato è quello di usare come peso: w ij = f(i,j) * log(n/n i ) Tale strategia è chiamata schema di pesatura tf-idf 58 Modello vettoriale Per i pesi da utilizzare nelle interrogazioni, Salton & Bucley propongono w iq = (0.5 + [0.5 * freq(i,q) / max(freq(l,q)]) * log(n/n i ) 59 Modello vettoriale Vantaggi: I pesi migliorano la qualità delle risposte alle interrogazioni Possibilità di matching parziale La formula per il ranking ordina i documenti in base alla rilevanza che hanno per l interrogazione Svantaggi: Considera tutti gli indici come indipendenti Attualmente, e il metodo piu utilizzato 60 20

21 k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 Contenuto celle = freq(i,j) k3 k1 k2 k3 d d d d d d d q k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 62 Calcoliamo TF-IDF per i documenti, supponendo contenuto celle = freq(i,j) d1 K1: ((2/2)*(log (7/5)) =.33 K2: (0*(log (7/4))) = 0 K3: ((1/2)*(log (7/3))) =.42 per gli altri: [ ], [ ], [ ], [ ], [ ], [0.56 0] k3 k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 Calcoliamo TF-IDF per la query K1: (.5 + (.5 * 1/3))*(log (7/5) K2: (.5 + (.5 * 2/3))*(log (7/4) K3: (.5 + (.5 * 3/3))*(log (7/3) quindi: [ ] k

22 Esempio 64 Calcoliamo similarità per ogni documento sim(d1,q) d1* q = (.33 *.22) + (0 *.47) + (.42 *.85) =.43 d1 = sqrt((.33^2) + (.42^2)) =.53 q = sqrt((.22^2) + (.47^2) + (.85^2)) = 1.0 sim(d1,q) =.43 / ( ) =.28 d2:.06 d3:.43 d4:.06 d5:.46 d6:.19 d7:.17 Ranking: d5 >d3>d1>d6>d7>d2=d4 k1 d2 d6 d7 k2 Esempio d4 d1 d5 d3 Pesi documenti e query booleani k1 k2 k3 d d d d d d d k3 65 q Viene restituito solo d5 Modello Probabilistico L obiettivo è quello di utilizzare tecniche di calcolo delle probabilità Data una interrogazione esiste sempre un insieme di documenti che costituiscono la risposta ideale La specifica dell interrogazione consiste nel definire le caratteristiche della risposta ideale Query processing come processo di specifica delle caratteristice ideali della risposta 66 22

23 Modello Probabilistico Il problema è capire quali sono tali caratteristiche Sappiamo solo che i termini indice devono essere utilizzati per fissare tali caratteristiche All inizio viene effettuata una ipotesi su quali queste caratteristiche possono essere e viene eseguita la query L utente poi decide quali documenti ottenuti come risposta sono rilevanti Il sistema usa questa informazione per raffinare la rappresentazione della risposta ideale e procedere 67 Modello Probabilistico Data una query q e un documento d j, il modello probabilistico cerca di stimare la probabilità che l utente consideri il documento d j rilevante Il modello assume che tale probabilità dipenda solo dalla interrogazione e dal modo in cui il documento è rappresentato I documenti sono ordinati in ordine descrescente rispetto alla probabilità di rilevanza Non si tengono in considerazione i fattori tf e idf 68 Modelli classici - confronto Il modello Booleano è il meno potente in quanto non consente il matching parziale Risultati sperimentali indicano che il modello vettoriale ha prestazioni migliori del modello probabilistico 69 23

24 Determinazione termini indice Docs Analisi lessicale stopwords Noun groups stemming Manual indexing Riconoscimento struttura struttura Full text Index terms 70 Estrazione di Feature dal Testo Consideriamo un testo come una sequenza di caratteri Quattro fasi principali: Analisi lessicale del testo Eliminazione delle stopword Normalizzazione delle parole rimanenti Selezione dei termini caratterizzanti (indici) 71 Analisi lessicale L obiettivo è quello di trasformare il testo da una sequenza di caratteri ad una sequenza di parole, candidate ad essere utilizzate come termini indice Eliminazione della punteggiatura Spesso elimnazione di sequenze numeriche (in genere troppo vaghe per essere significative) Conversione da maiuscolo a minuscolo 72 24

25 Eliminazione delle stopword Stopword: parola troppo frequenti nei documenti (ad esempio che compaiono in più dell 80% dei documenti) non utile per determinare il risultato di una interrogazione Esempi di stopword sono articoli, proposizioni e congiunzioni L eliminazione delle stopword consente di ridurre notevolmente le dimensioni del documento originale Spesso anche del 40% In genere i sistemi mantengono una lista di stopworlds che puo essere estesa dall utente L eliminazione delle stopword può però ridurre il potere di richiamo: to be or not to be rimane solo be viene ridotto l insieme dei documenti rilevanti restituiti 73 Normalizzazione (stemming) Spesso l utente specifica un termine in una query ma i documenti rilevanti ne contengono una sua variante Plurali, gerundi, passati, La fase di normalizzazione sostituisce le varianti di una stessa parola con la loro radice comune (stem)(es: connesso per connesso, connettere, connessione,ecc.) Anche lo stemming riduce la dimensione del documento 74 Normalizzazione (stemming) Non esiste consenso comune sull utilizzo della fase di normalizzazione Molti Web search engines non usano lo stemming 75 25

26 Selezione degli indici Due alternative: full-text index: tutte le parole sono utilizzate per caratterizzare il contenuto informativo del documento a volte le stopword non vengono eliminate selezione dei termini rilevanti: 1. Specialisti 2. Mediante un processo automatico 3. Usando un thesaurus 76 Selezione degli indici: processo automatico Un metodo consolidato è quello di identificare sostantivi o gruppi di sostantivi all interno del testo (es. computer science) Un gruppo di nomi è un insieme di nomi la cui distanza nel testo non supera una soglia predefinita (es: 3) Vengono eliminati verbi, aggettivi, avverbi, ecc. 77 Thesaurus L idea e quella di usare un vocabolario noto per stabilire quali sono i termini indice Un thesaurus e quindi una sorta di vocabolario che consiste di: un insieme di vocaboli ed espressioni-chiave rilevanti per un particolare dominio un insieme di sinonimi per ogni vocabolo nell insieme 78 26

27 Thesaurus La fase di indicizzazione e di ricerca avviene solo facendo riferimento ai termini del thesaurus L utilizzo di thesauri è vantaggioso per domini in cui è possibile la standardizzazione dei termini di ricerca (esempio: ambito medico, legale,ecc.) I thesauri sono di solito definiti da esperti di un certo dominio applicativo e vengono utilizzati soltanto in tale dominio Non chiaro come possano essere utilizzati in contesti generici come il Web 79 Thesaurus: termini indice Ogni termine indice rappresenta un concetto significativo in un certo dominio applicativo Parole, gruppi di parole, frasi Spesso singole parole, in genere sostantivi o gerundi Ogni concetto e associato ad una descrizione 80 Thesauri: reti semantiche In un thesaurus che utilizza una rete semantica i termini possono essere strutturati attraverso una rete di collegamenti concettuali Una relazione semantica puo essere: preferenziale gerarchica associativa 81 27

28 Thesauri: relazione preferenziale La relazione preferenziale rappresenta l equivalenza (sinonimia) tra termini: SP (sinonimo preferenziale) USA (è il contrario di SP) Allievo SP Alunno Alunno USA Allievo 82 Thesauri: relazione gerarchica 83 La relazione gerarchica rappresenta la relazione di specializzazione che esiste tra i termini TL (termine largo) TS (termine stretto) Veicolo TL Auto Auto TS Veicolo Il vertice della gerarchia si chiama TA (termine più ampio) Thesauri : relazione associativa 84 La relazione associativa esprime un legame biunivoco tra le componenti lessicali RT (termine in relazione) La tipologia di relazione dipende dal contesto Esempi: antinomia: vittoria--sconfitta concomitanza: sintomo--malattia proprietà: trampolino--altezza inclusione: contenuto--contenente localizzazione: partita--stadio 28

29 Thesauri: reti semantiche Un thesaurus con rete semantica rende più efficienti le interrogazioni perché consente di ricercare automaticamente i termini sinonimi, quelli più ampi o più ristretti ed i termini correlati Permette quindi l espansione della query 85 Interrogazioni Due tipi fondamentali: su stringhe, con caratteri jolly e sottostringhe Trova tutti i documenti che contengono un certo pattern rappresentato da una stringa Pattern + esteso rispetto a quello usato nell operatore LIKE con operatori booleani Combinazione di diversi pattern 86 Interrogazioni su stringhe E possibile ricercare tutti i testi che contengono una certa parola, una sua variante o un suo sinonimo comput? --> computa, computo,... comp* --> computer, compilato, compito, ecc. Varianti: ricerca di frasi ricerche fuzzy ricerca per prossimità (insieme di parole e indicazione della distanza massima che devono avere all interno del testo) 87 29

30 Interrogazioni booleane I termini dell interrogazione possono essere composti mediante gli operatori booleani: p1 AND p2 p1 OR p2 NOT p1 Gli operatori booleani possono essere combinati: (p1 AND p2) OR (p3 AND p4) 88 Indice inverso Per semplificare le ricerche al thesaurus è associato un indice inverso cioè una tabella che per ogni parola contenuta nel thesaurus contiene una lista dei documenti che la contengono 89 Indice inverso termine documenti a 1,3,4,6,7 b c d 1,7 3,7 4,

31 Indici inversi Solitamente gli indici inversi vengono estesi per mantenere per ogni termine non solo i documenti che lo contengono ma anche il numero di occorrenze di tale termine nei vari documenti 91 Sistemi di IR: esempi DIALOG Corporation: offre più di 500 sistemi di IR su svariati argomenti, quali scienze, medicina, economia e giornali elettronici ( LEXIS-NEXIS: ambito legale ed economico ( OCLC (the online computer library center) offre l accesso ad 1.5 milioni di articoli ( H.W. Wilson: offre più di 40 sistemi di IR per scuole ed istituzioni pubbliche ( 92 Sistemi di IR: esempi 93 CA SEARCH: Chemical Abstract. Contiene 14 milioni di documenti con una frequenza di aggiornamento di documenti alla settimana MEDLINE: indicizza articoli provenienti da riviste mediche NewYork Times -- Fulltext: contiene tutte le edizioni del NewYork Times dal 1981 ad oggi PsycINFO: Psycological Abstract. Contiene 1.5 milioni di documenti riguardanti psicologia, sociologia, psichiatria, linguistica ed antroplogia dal 1887 fino ad oggi 31

32 Gestione di testi in Oracle 9i Oracle 9i Text permette di indicizzare testi e documenti memorizzati in Oracle 9i, in file del sistema operativo o URL, in maniera integrata con i dati relazionali tradizionali con possibilità di interrogazioni basate sul contenuto possibilità di utilizzare un thesaurus classificare documenti in base al loro contenuto vedremo solo il primo aspetto 94 Gestione di testi in Oracle 9i 95 Formati File di testo HTML, XML documenti Word PDF Linguaggi per ricerche tematiche, inglese e francese possibilità di estendere i linguaggi caricando opportuni thesauri per il linguaggio di interesse Sviluppo applicazione testuale Caricamento documenti indicizzazione interrogazione operatori thesauri 96 32

33 Esempio create table docs (id number primary key, text varchar2(80)); insert into docs values (1,'first document'); insert into docs values (2, 'second document'); create index doc_index on docs(text) indextype is ctxsys.context; 97 select id from docs where contains(text, 'first') > 0; Rappresentazione documenti A B C 98 Rappresentazione documenti A. Documento contenuto in un campo di tipo CHAR, VARCHAR, VARCHAR2, LONG, LONG RAW, BLOB, CLOB B. Campo di tipo BFILE C. Campo di tipo URIType la tabella deve avere una chiave primaria, utilizzata per identificare i documenti 99 33

34 Caricamento documenti Direttamente con statement INSERT SQL Loader procedure ad hoc OCI 10 0 Indicizzazione documenti 10 1 Oracle supporta diverse tipologie di indice CONTEXT, per ricerche su documenti arbitrari CTXCAT, per ricerche combinate su documenti brevi e dati strutturati MATCHES, per classificazione documenti noi vedremo solo il tipo CONTEXT la creazione dell indice è un passo necessario per l esecuzione di interrogazioni sul documento Indice CONTEXT Determina i termini indice associati ad ogni documento crea il surrogato organizza il surrogato come indice inverso

35 Indicizzazione documenti 10 3 comando per la creazione di indici create index INDEXNAME on TABLE(COLUMN) indextype is ctxsys.context il comando per default assume che: la colonna sia di tipo A il linguaggio sia quello specificato durante l installazione Usa lista di stopword di default Abilita stemming è possibile modificare le impostazioni di base, customizzando il comando CREATE INDEX sistema di preferences Indicizzazione documenti In generale, il comando di creazione di indice esegue un insieme di processi che creano oggetti intermedi per ogni processo è possibile specificare delle preferenze 10 4 Indicizzazione documenti

36 Indicizzazione documenti - processi 10 6 Datastore: scorre le righe della tabella e legge i dati della colonna, restituendo i dati contenuti nel documento Filter: prende i documenti restituiti dal datastore e li trasforma in una rappresentazione testuale non necessaria per plain text, XML o HTML documenti Word, PDF, ecc. Vengono convertiti in un testo con mark-up (esempio HTML) Sectioner: divide l informazione strutturale (markup) dal contenuto Lexer: suddivide il plain text in token (parole) e crea token tematici (in relazione alle preferenze specificate) Indexing engine: crea l inverted index, eliminando stopword, contenute in STOPLIST e crea indici per stemming utilizzando informazioni in WORDLIST Indicizzazione documenti - preferenze per ciascun processo ci sono uno o più oggetti che rappresentano i possibili comportamenti in generale, gli oggetti sono raggruppati in classi: 10 7 Indicizzazione documenti - preferenze tali oggetti non possono essere usati direttamente negli indici: si crea una preference a partire da tali oggetti template la si personalizza settandone gli attributi si usa tale preference per creare l indice

37 Indicizzazione documenti - Esempio ctx_ddl.create_preference('mypref', 'FILE_DATASTORE'); ctx_ddl.set_attribute('mypref', 'PATH', '/docs'); 10 9 create index doc_index on docs(text) indextype is ctxsys.context parameters ('datastore mypref'); Indicizzazione documenti - preferenze 11 0 nella clausola parameters si possono specificare più classi, semplicemente aggiungendo una coppia keyword-preference parameters('datastore mypref filter myfilter') questo meccanismo è usato per tutte le classi tranne SECTION GROUP e STOPLIST, che hanno una API propria esistono dei parametri utilizzati dal sistema di default (quelli per LEXER, WORDLIST e STOPLIST dipendono dal linguaggio) Datastore 11 1 DIRECT_DATASTORE (default) assume che il documento sia memorizzato direttamente nella colonna indicizzata, ne restituisce semplicemente il contenuto FILE_DATASTORE interpreta la colonna come un nome di file, lo apre e ne restituisce il contenuto URL_DATASTORE interpreta la colonna come un URL, effettua una GET e restituisce il contenuto... 37

38 Filter 11 2 NULL_FILTER (default) utilizzato quando il contenuto del documento non è in formato binario, passa semplicemente il testo dal datastore al sectioner CHARSET_FILTER converte i documenti da un insieme di caratteri straniero al character set del database USER_FILTER/PROCEDURE_FILTER filtering ad hoc (es. per convertire tutto in lettere maiuscole) in forma di procedura INSO_FILTER riconosce automaticamente e filtra oltre un centinaio di formati diversi, tra cui Word e Acrobat, producendo HTML come output Lexers BASIC_LEXER: per la maggioranza delle lingue europee, si può modificare il comportamento di default attraverso gli attributi JOINS per specificare caratteri non alfanumerici da trattare come lettere valide PUNCTUATION per specificare i simboli di punteggiatura (importanti per sezioni SENTENCE e PARAGRAPH) per la normalizzazione del testo (es. accenti, maiuscole/minuscole, parole composte) per selezionare indicizzazione di testo o tematica 11 3 Stoplist 11 4 lista delle stopword, che non vengono considerate per l indicizzazione API separata: ctx_ddl.create_stoplist('mylist'); ctx_ddl.add_stopword('mylist', 'the'); stoplist di default, che dipendono dal linguaggio si possono aggiungere stopword all indice senza doverlo ridefinire alter index myidx rebuild parameters ('add stopword AND'); stop classes (es. NUMBERS) e stop themes 38

39 Wordlist 11 5 non ha effetto sull indicizzazione, ma contiene i setting per espansione stem e fuzzy dei termini utilizzati per rispondere alle interrogazioni un solo oggetto BASIC_WORLDLIST con attributi: STEMMER (espansione di una parola a forme differenti, es. ENGLISH, ITALIAN, NULL) FUZZY_MATCH (considera parole mistyped, es. varie lingue e OCR) FUZZY_SCORE (score floor per espansione fuzzy) FUZZY_NUMRESULT (max. numero parole per espansione fuzzy) Section Groups 11 6 La classe section group prende un formato di testo (es. XML o HTML) come input e restituisce i section boundaries e plain text i section group non sono creati con create_preferences, ma con una API separata ctx_ddl.create_section_group('mygroup, 'html_section_group'); il primo argomento è il nome del section group, il secondo è il tipo, che specifica il formato del testo di input e le regole per individuare le sezioni Section Groups 11 7 tipi di section groups: NULL_SECTION_GROUP: da usare quando non ci sono sezioni o ci sono solo sezioni speciali: SENTENCES e PARAGRAPH Default Vedremo solo questo BASIC_SECTION_GROUP: per XML o HTML, rimuove semplicemente i markup tags, che devono essere bilanciati, non supporta attributi e commenti HTML_SECTION_GROUP: per HTML XML_SECTION_GROUP: per XML NEWS_SECTION_GROUP: per newsgroup style postings, rimuove header lines 39

40 Section Groups 11 8 le sezioni hanno tre attributi: TAG: specifica come riconoscere la sezione NAME: specifica come riferirsi alla sezione nelle query (più tag possono essere mappati sullo stesso nome) TYPE: è il tipo di sezione, ci sono tre tipi diversi: ZONE, SPECIAL, FIELD ZONE: si registra dove sono start e end permette query di tipo WITHIN, cioè ricerche all interno di sezioni particolari se una sezione ZONE si ripete viene trattata separatamente nelle query possono essere annidate Section Groups SPECIAL: non sono riconosciute attraverso tag, ma dal lexer attraverso la punteggiatura SENTENCE PARAGRAPH Vedremo solo queste 11 9 Section groups FIELD: il contenuto della sezione è indicizzato separatamente dal resto del documento le query di tipo WITHIN vengono eseguite su questo indice separato sono pensate per sezioni non ripetute e non overlapping

41 Section Groups - esempio Documento: <A>rat</A><A>ox</A> <B>tiger rabbit</b> <C>dragon<C>snake</C></C> Creazione section group ctx_ddl.create_section_group('mygroup', xml_section_group'); aggiunta sezioni di tipo ZONE ctx_ddl.add_zone_section('mygroup', 'asec', 'a'); ctx_ddl.add_zone_section('mygroup', 'bsec', 'b'); ctx_ddl.add_zone_section('mygroup', 'csec', 'c'); 12 1 Section Groups - esempio Documento plain text Creazione section group ctx_ddl.create_section_group('mygroup', null_section_group'); aggiunta sezioni di tipo SPECIAL ctx_ddl.add_special_section('mygroup', SENTENCE'); 12 2 Aggiornamento degli indici L indice creato non viene aggiornato automaticamente dopo ogni operazione DML indicizzare un singolo documento richiede molto tempo gli inverted index si aggiornano meglio su un insieme di documenti per volta le applicazioni in genere sono abbastanza statiche, e non è necessaria una completa consistenza possibilità di ricostruzione totale o parziale Procedura ctx_ddl.sync_index

42 Interrogazioni 12 4 La creazione di un indice di tipo CONTEXT permette di eseguire interrogazioni sul contenuto dei documenti funzione CONTAINS, con vari criteri di selezione logici di prossimità fuzzy stemming thesaurus wildcards ricerche su sezioni Sono case-insensitive per default modificabile con preferenze BASIC_LEXER Interrogazioni - contains select id from texttab where contains(textcol,'query') > 0 il primo argomento è il nome della colonna, il secondo è il testo dell interrogazione (max 2000 byte) restituisce un numero, che quantifica il match 0 = no match 12 5 Interrogazioni - scoring select id, score(1) from texttab where contains(textcol, 'query', 1) > 0 order by score(1) desc 1 è contains label e può essere un qualsiasi numero, utilizzato per matchare lo score nella select list con quello nella clausola where lo score è un numero compreso tra 0 e 100, ed è relativo (significativo solo per la query)

43 Interrogazioni - scoring Modello vettoriale Pesi w ij = 3 f(i,j)(1+log(n/ni)) con N numero totale tuple normalizzati tra 0 e 100 la similarità è un valore tra 0 e 100 Vari operatori di composizione 12 7 Interrogazioni - tipologie 12 8 A. Ricerca di documenti che contengono parole o frasi Per default case insensitive operatori di espansione, di prossimita B. Ricerca all interno di sezioni di documenti (WITHIN) C. Ricerca di documenti che trattano un certo argomento (ABOUT) Operatori logici, operatori di score Interrogazioni A ricerca atomica per parole o frasi 12 9 interrogazioni semplici contains(text, 'dog') > 0 si possono interrogare frasi: contains(text,'dog my cat') > 0 le stopword sono trattate come wildcard (matchano qualsiasi parola) contains(text, 'dog the cat') > 0 restituisce 'dog my cat, 'dog your cat, 'dog the cat' le stopword da sole vengono eliminate dalla query 43

44 Interrogazioni A - operatori di espansione delle parole 13 0 WILDCARD (%_) per pattern matching (come in LIKE di SQL) FUZZY (?) trova parole con spelling simile a quella data (usa wordlist):?termine STEM ($) trova parole con radice comune (usa wordlist): $termine SOUNDEX (!) trova parole con stesso suono (usa una specifica espansione fuzzy):!termine EQUIV (=) permette di indicare esplicitamente varie forme della stessa parola: labradors = alsatians are big dog Si considera indifferentemente labrador o alsatians E possibile applicare questi operatori anche all italiano, settando opportuni parametri Interrogazioni A - operatori di prossimità 13 1 operatore NEAR, che ha due forme dog ; cat ; boat il punteggio dipende da quanto i termini sono vicini l uno all altro, in termini di numero di parole NEAR((dog,boat), 10, TRUE) primo argomento è lista di parole secondo è distanza massima (numero di parole) tra tutte le parole indicate terzo specifica se tenere conto dell ordine in cui appaiono nella lista True: considero ordine Default false 13 2 Interrogazioni B - sezioni WITHIN: limita una query a una particolare sezione Approccio Documento plain text Creazione section group ctx_ddl.create_section_group('mygroup', null_section_group'); aggiunta sezioni di tipo ZONE ctx_ddl.add_special_section('mygroup', SENTENCE'); Creazione indice con preferenza create index myindex on docs(text) parameters (section group mygroup) Query di tipo within contains(text, tiger & cat within sentence') > 0 44

45 Interrogazioni B - esempio <A>rat</A><A>ox</A> <B>tiger rabbit</b> <C>dragon<C>snake</C></C> ctx_ddl.create_section_group('mygroup', 'basic_section_group'); sezione ZONE ctx_ddl.add_zone_section('mygroup', 'asec', 'a'); ctx_ddl.add_zone_section('mygroup', 'bsec', 'b'); ctx_ddl.add_zone_section('mygroup', 'csec', 'c'); 13 3 contains(text, 'rat within asec') > 0 restituisce il documento contains(text, 'tiger within asec') > 0 non restituisce il documento Interrogazioni B - esempio 13 4 ogni istanza è considerata distinta: contains(text, '(tiger and rabbit) within bsec') > 0 trova il documento contains(text, '(rat and ox) within asec') > 0 no contains(text, '(dragon and snake) within csec') > 0 sì nel caso di sezioni FIELD il contenuto di diverse istanze viene unito, quindi la seconda query restituirebbe il documento Interrogazioni tematiche C 13 5 Si vogliono determinare i documenti che trattano un certo concetto ABOUT(frase) la stringa specifica rappresenta il concetto (tema) cercato, rappresentato da frase solo per inglese e francese richiede la presenza di una knowledge base gerarchia di concetti con 6 sottoalberi: scienza-tecnologia, affari e finanza, politica e militare, sociale, geografia, idee astratte E case sensitive l indice deve avere una componente tematica se non ce l ha, l interrogazione viene espansa in una query non tematica 45

46 Interrogazioni tematiche C - esempio contains(text, 'about(canines)') se esiste l indice, può restituire documenti che contengono dog se non esiste, about(go home now) è trasformata in $go,$home,$now 13 6 Interrogazioni C - Thesaurus Possibilità di creare Thesaurus che definiscono sinonimi e relazioni gerarchiche tra parole o frasi il thesaurus non viene installato di default ma deve essere caricato il sistema contiene un thesaurus di default per l inglese il caricamento di un Thesaurus permette di espandere le ricerche ai sinomini di una certa parola o ad altre parole ad essa associate 13 7 Interrogazioni C - Thesaurus 13 8 file con formattazione particolare alcune relazioni considerate SYN: sinonimi PT: preferred term BT: broader term NT: narrower term RT: related term TR: traduzione in altri linguaggi gli stessi identificatori corrispondono a procedure che permettono di utilizzare queste relazioni nelle interrogazioni 46

47 Interrogazioni C - Thesaurus SYN( term [, thesname] ) PT( term [, thesname] ) BT( term [, level [,thesname]] ) NT( term [, level [,thesname]] ) TT( term [, thesname] ) RT( term [,thesname] ) TR( term [,lan [,thesname] ]) 13 9 Livelli di distanza nel thesaurus dal termine considerato Thesname: nome del thesaurus Lan: linguaggio Se non si specifica il thesaurus, si considera quello di default Interrogazioni C - esempio 14 0 Se la query contiene BT(dog) E nel thesaurus dog viene generalizzato con animal la query viene sostituita con dog OR animal Si veda dopo per il significato di OR Interrogazioni - operatori logici 14 1 AND (&): documenti che contengono almeno un occorrenza di ciascun termine indicato Restituisce il punteggio minimo tra quelli degli operandi OR ( ): documenti che contengono almeno un occorrenza di almeno un termine indicato Restituisce il punteggio massimo tra quelli degli operandi NOT (~) è "AND NOT (differenza): 'dog NOT cat' restituisce i documenti che contengono "dog" ma non contendono "cat il punteggio restituito è quello del figlio sinistro 47

48 Interrogazioni - operatori logici 14 2 MINUS (-) sottrae il punteggio dell operando destro a quello del sinistro contains(text, 'tiger MINUS rabbit') > 0 tiger e preferibilmente non rabbit sottrae i punteggi ACCUM (,) raggruppa più parole o frasi e ne accumula i punteggi contains(text, 'tiger ACCUM rabbit)') > 0 tiger e preferibilmente rabbit Peso maggiore a chi contiene tutti i termini. Per documenti che contengono gli stessi termini, si considerano le frequenze Interrogazioni - osservazione 14 3 AND nella logica a due valori, richiede che entrambi gli argomenti siano veri interpretando vero = 1 e falso = 0, viene restituito il valore minimo stesso discorso nel caso di valori compresi tra 0 e 1 ACCUM semplicemente somma i punteggi più termini compaiono, più il documento è rilevante Interrogazioni - osservazione 14 4 OR nella logica a due valori, richiede che almeno un argomento sia vero interpretando vero = 1 e falso = 0, viene restituito il valore massimo stesso discorso nel caso di valori compresi tra 0 e 1 MINUS toglie punteggi un documento è più rilevante se i termini a destra non compaiono 48

49 Interrogazioni - operatori di score WEIGHT (*) moltiplica il punteggio di un termine di ricerca per renderlo più o meno importante nella query (peso tra.1 e 10) contains(text,'(dog*2) AND cat') > 0 Se il valore diventa maggiore di 100, lo si setta a THRESHOLD (>) elimina i documenti sotto una certa soglia contains(text,'(dog*2) AND cat') > 50 Basi di dati per la gestione di immagini 14 6 Problematiche La realizzazione di un sistema per la gestione di immagini deve affrontare le seguenti problematiche rappresentazione delle immagini Misura della similarità Metodi di accesso e ritrovamento

50 Rappresentazione immagini Generazione metadati (automatica + manuale) Features + attributi Quali features e attributi? 14 8 Features Forme (shape) l idea è quella di estrarre delle forme dall immagine possono rappresentare contorni o approssimazione di contorni 14 9 contorno Approssimazione contorno Features - shape Una shape per un oggetto può essere rappresentata in vari modi ad esempio, un contorno può sempre essere visto come una sequenza di punti p1,,pn in uno spazio bidimensionale

51 Features 15 1 Oggetti semantici con oggetto semantico si intende un oggetto significativo dal punto di vista dell applicazione casa, viso, strada se gli oggetti sono chiaramente identificabili e possono essere facilmente riconosciuti, il ritrovamento può essere basato su tali oggetto tipicamente richiedono intervento umano approccio limitato dalle tecniche esistenti di analisi delle immagini Features Texture (tessitura) rappresentano informazioni relative alle regolarità o irregolarità dell immagine dipendono dalla percezione visiva di un immagine si basano sulle cosiddette Tamura features coarseness (rugosità) contrasto direzionalità 15 2 Features 15 3 Colore proprietà globale che non richiede conoscenza degli oggetti contenuti nelle immagini può essere determinato in modo automatico quindi è molto utilizzato spesso si usano istogrammi che rappresentano la composizione di colori in un immagine ogni componente dell istogramma corrisponde ad un colore (256 o 64 componenti) per rappresentare un immagine, si associa ad ogni componente il numero di pixel dell immagine più simili al colore considerato il colore di ogni pixel in genere viene rappresentato come una tripla (R,G,B), dove R indica la percentuale di Rosso, G la percentuale di Green e B la percentuale di Blu 51

52 Un possibile surrogato per le immagini 15 4 In generale, per rappresentare in modo sufficientemente dettagliato un immagine è necessario utilizzare più features In generale, ogni immagine può essere interpretata come un insieme di oggetti interessanti, ciascuno caratterizzato da un descrittore di forma, che rappresenta la shape dell oggetto e/o la zona dell immagine nella quale l oggetto è collocato (approssimazione) proprietà globali un descrittore di proprietà, che descrive le proprietà di un insieme di pixel nell immagine (RGB, livelli di grigio per immagini in bianco e nero, texture) proprietà locali le proprietà sono rappresentate da un nome (Red, Green, Blue) e da un dominio (ad esempio {0,,8}) Esempio 15 5 Esempio 15 6 Si consideri l immagine pic1.gif l immagine contiene due oggetti di interesse - o1 e o2 - le shape di questi oggetti sono rappresentate dai rettangoli presenti nella figura il descrittore di proprietà associato ad un insieme di pixel potrebbe avere la seguente forma Red = 5 Green = 1 Blue = 3 52

53 Descrittori di proprietà Le proprietà vengono in genere associate ad insiemi di pixel In genere, ogni immagine viene associata ad una coppia di interi positivi (m,n), chiamata la griglia di risoluzione dell immagine una griglia (m,n) divide l immagine in (m x n) celle di uguale dimensione, chiamate griglia dell immagine ogni cella è costituita da un insieme di pixel le proprietà possono quindi essere associate a ciascuna cella le proprietà di ogni singola cella possono essere rappresentate come un vettore, in cui ciascuna componente corrisponde ad una determinata proprietà 15 7 Osservazione Le shape si possono interpretare come proprietà globali dell immagine le proprietà sono invece locali a ciascuna singola cella dalle proprietà di ogni singola cella si possono ovviamente inferire le proprietà delle celle che rappresentano i vari oggetti identificati 15 8 Definizione di base di dati di immagini 15 9 Una base di dati di immagini è una tripla (GI, Prop, Rec) dove: GI è un insieme di immagini a cui è stata associata una griglia ogni immagine si può quindi vedere come una terna (Immagine,m,n), dove (m,n) rappresenta la griglia di risoluzione Prop è un insieme di proprietà di celle Rec è una funzione che associa ad ogni immagine un insieme di shape, in base ad una qualche rappresentazione Prop rappresenta le proprietà locali delle immagini Rec rappresenta le proprietà globali delle immagini 53

54 Query per similitudine Le query possono coinvolgere sia proprietà locali che proprietà globali problema: come determino la similitudine tra due immagini? Approccio fondamentale: approccio metrico si assume che esista una distanza metrica d con la quale confrontare ogni coppia di oggetti più bassa è la distanza, più simili sono gli oggetti 16 0 Approccio metrico 16 1 Una funzione da un insieme X a [0,1] è una funzione distanza se soddisfa i seguenti assiomi per ogni x,y,z in X: d(x,y) = d(y,x) d(x,y) <= d(x,z) + d(z,y) d(x,x) = 0 per ogni proprietà associata ad un immagine può essere definita una funzione distanza la distanza tra due immagini si ottiene quindi combinando le distanze tra le varie proprietà (locali e/o globali), ad esempio applicando la distanza Euclidea Esempio applicato alle proprietà globali 16 2 Si consideri un insieme Obj di immagini (256 x 256). Si supponga che ogni cella sia associata a tre attributi (red, green, blue) che assumono un valore in {0,,8} un esempio di funzioni distanza tra due immagini o1 e o2 rispetto alle tre proprietà considerate è il seguente: diffr[i,j] = (o1[i,j].red - o2[i,j].red) 2 diffg[i,j] = (o1[i,j].green - o2[i,j].green) 2 diffb[i,j] = (o1[i,j].blue - o2[i,j].blue) 2 d(o1,o2) = ( i=1,256 i=1,256 ( diffr[i,j] + diffg[i,j] + diffb[i,j])) 1/2 54

55 Approccio metrico per proprietà locali 16 3 La distanza precedente rappresenta la distanza Euclidea tra i due oggetti se si considerano n proprietà locali e t =h x k celle, in base all approccio metrico ogni immagine è vista come un insieme di m punti n-dimensionali f(i) = {P 1,,P t } P i = (x i1,,x in ) per determinare se le immagini I 1 e I 2 sono simili in base alla distanza Euclidea: f(i 1 ) = {P 1,,P t } P i = (x i1,,x in ) f(i 2 ) = {Q 1,,Q t } Q i = (y i1,,y in ) d(i 1,I 2 ) = ( i=1,t d (P i,q i )) 1/2 d (P i,q i ) = (x i1 -y i1 ) (x in -y in ) 2 Approccio metrico per proprietà locali 16 4 L approccio metrico richiede che per ogni proprietà locale venga calcolata la distanza tra celle corrispondenti in immagini distinte ogni immagine è quindi interpretata come un insieme di punti ogni punto è dato dai valori per le proprietà locali di una certa cella se le proprietà sono n, i punti sono n-dimensionali ogni immagine sarà caratterizzata da tanti punti quante sono le celle poiché il numero delle celle spesso è alto esistono approcci (che non vediamo) per mappare le immagini NON in un insieme di punti MA in un singolo punto in uno spazio s-dimensionale, con s <= n Esempio: consideriamo la media degli n punti in questo caso s coincide con n si noti che il punto ottenuto si può interpretare come una proprietà globale dell immagine Indicizzazione per proprietà locali I punti ottenuti possono essere utilizzati come base per definire le tecniche di indicizzazione nel caso limite in cui s = 1, si potrebbero usare I B-tree nel caso in cui s > 1, è necessario utilizzare specifici indici multidimensionali questi indici sono stati definiti nel contesto delle basi di dati spaziali Algo di indiciz. indice DB immagini 16 Spazio 5 n-dimensionale Spazio s-dimensionale 55

56 16 6 Approccio metrico per proprietà globali Anche per gli oggetti (regioni) associati ad un immagine è possibile applicare un approccio metrico in questo caso la distanza deve essere definita sulle shape anche le shape possono essere rappresentate come un insieme di punti Esempio se la shape è rappresentata da una spezzata costituita da n segmenti, la spezzata può essere descritta da una sequenza di n p3 punti bidimensionali p1 p2 p5 p4 Approccio metrico per proprietà globali In questo caso è possibile passare da n punti a 2 punti considerando il minimo rettangolo che contiene la shape (minimum bounding box - MBB) 2 punti si possono vedere come un punto in uno spazio 4-dimensionale (s = 4) 16 7 p1 p2 p3 p5 p4 Indicizzazione per shape Algo di indiciz. indice DB immagini shape Approssimazioni shape

57 Uso della distanza nelle query 16 9 L utilizzo della funzione distanza permette di risolvere in modo formalmente semplice (ma non semplice dal punto di vista di un ottimizzazione efficiente) le query per similitudine Interrogazione di base: data un immagine, trovare le immagini simili a quella in input Rappresentazione immagini nei DBMS 17 0 La gestione delle immagini nei vari DBMS dipende dal sistema prescelto in genere, viene permessa una duplice rappresentazione riferimento esterno: il DB contiene riferimento ai file che contengono le immagini rappresentazione interna: le immagini vengono memorizzati nel DBMS di tipo BLOB (binary large object) i sistemi mettono quindi a disposizione tool per generare i surrogati delle immagini (il tipo di surrogato dipende dal DBMS e dal tool prescelto),per gestire le immagini e per interrogarle Rappresentazione immagini nei DBMS Quindi, per rappresentare un database di immagini IDB=(GI, Prop, Rec) in un DBMS ogni I in GI viene memorizzata in base all approccio prescelto ogni proprietà in Prop verrà implementata dai tool messi a disposizione dal sistema per determinare i valori associati a specifiche proprietà (che dipendono dal sistema scelto) Rec rappresenta le shape degli oggetti riconosciuti utilizzando i tool messi a disposizione del sistema

58 Rappresentazione immagini nei DBMS 17 2 Le proprietà possono riferirsi alle celle o all immagine nel suo complesso e rappresentare, ad esempio, informazioni quali il nome dell immagine, la data di caricamento, ecc. queste informazioni possono essere rese disponibili all utente per effettuare interrogazioni Nel caso dell approccio metrico, il sistema supporterà adeguati indici multidimensionali per supportare le query per similitudine Gestione immagini in Oracle Ogni oggetto multimediale in Oracle può essere memorizzato, manipolato e interrogato utilizzando un particolare tipo di dato definiti nel package ORDSYS (non indicato nel seguito) Per le immagini 17 3 ORDImage: un istanza è costituita da: attributi, che rappresentano il dato sorgente, cioè l immagine proprietà globali come lunghezza, larghezza, dimensione, tipo file (es. TIFF), tipo di compressione (es. JPEG), tipo di contenuto (es. Monocromatico) metodi, che permettono di gestire le immagini ORDImageSignature: un istanza rappresenta le feature (signature) associate ad un immagine Tipi di dato ORDSource + attributi strutturali ORDImage 17 4 features ORDImageSignature 58

59 17 5 Esempio Si supponga di volere creare una tabella contenente delle fotografie in particolare la tabella deve contenere: id fotografia nome fotografo descrizione fotografia la fotografia una possibile dichiarazione di questa tabella è la seguente: CREATE TABLE stockphotos ( photo_id NUMBER, photographer VARCHAR(64), annotation VARCHAR(255), photo ORDImage, photo_sign ORDImageSignature); ORDImage - attributi 17 6 ORDImage - Attributi

60 ORDImage - Costruttori 17 8 Init() immagine memorizzata internamente inizializza l oggetto ponendo tutti gli attributi a NULL esclusi: source.localdata=empty_blob() source.local = 1 (indica che l immagine è caricata nel file system locale) source.updatetime = SYSDATE Esempio insert into stockphotos (1, John Ross, NULL, OrdImage.init()); ORDImage - Costruttori 17 9 Init( srctype IN VARCHAR2 srclocation IN VARCHAR2, srcname IN VARCHAR2) immagine memorizzata all esterno inizializza l oggetto ponendo tutti gli attributi a NULL esclusi: source.localdata=empty_blob() source.local = 0 (indica che l immagine si assume memorizzata nel file system esterno) source.updatetime = SYSDATE source.srctype, source.srclocation, srcname, posti uguali ai valori in input ORDImage - esempio Esempio insert into stockphotos (1, John Ross, NULL, ORDImage.init( FILE, MY_IMAGES, image1.gif ));

61 ORDImage - Caricamento 18 1 I costruttori effettuano solo l inizializzazione degli attributi ma non caricano l immagine nel campo BLOB nel caso in cui si intenda copiare l immagine nel DBMS, sono previsti metodi per il caricamento (e di esportazione) MEMBER PROCEDURE importfrom( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2) RAW: dati che non vengono interpretati da Oracle (simile a LOB), utilizzato durante il caricamento, come buffer temporaneo Aggiorna source il file viene caricato in localdata e local viene posto a 1 inizializzati tutti gli altri campi con valori in INPUT Esempio - caricamento dati nel DBMS 18 2 DECLARE Image ORDSYS.ORDImage; ctx RAW(4000) := NULL; BEGIN FOR UPDATE: lock sulla tupla INSERT INTO stockphotos VALUES (1, John Doe, red plaid, ORDSYS.ORDImage.init(), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 for UPDATE; Image.importFrom(ctx, file, ORDIMGDIR, redplaid.gif ); UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; Esempio - riferimento esterno 18 3 DECLARE Image ORDSYS.ORDImage; BEGIN INSERT INTO stockphotos VALUES (1, John Doe, red plaid, ORDSYS.ORDImage.init( file, ORDIMGDIR, redplaid.gif ), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 FOR UPDATE; aggiornamento info immagine... UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; 61

62 ORDImage- Metodi per la manipolazione Si dividono in diversi gruppi tra cui: metodi di copia metodi di processamento metodi di settaggio attributi metodi di accesso agli attributi (circa uno per attributo) 18 4 Metodi di manipolazione 18 5 Metodo di copia: Copy (dest IN OUT ORDImage) copia l immagine in dest, inclusi i valori di tutti gli attributi metodi di processamento: process(command IN VARCHAR2) command rappresenta una lista di tecniche di image processing da applicare alle immagini esempio: cambiamento scala Metodi di manipolazione 18 6 Metodi di settaggio attributi: setproperties() determina i valori per gli attributi di ORDImage, escluso source importfrom() chiama direttamente setproperties da chiamare manualmente negli altri casi Metodi di accesso: circa uno per ogni attributi (si veda il manuale) getheight() RETURN INTEGER restituisce il valore associato all attributo HEIGHT 62

63 Esempio 18 7 DECLARE Image ORDSYS.ORDImage; BEGIN INSERT INTO stockphotos VALUES (1, John Doe, red plaid, ORDSYS.ORDImage.init( file, ORDIMGDIR, redplaid.gif ), ORDSYS.ORDImageSignature.init()); SELECT photo INTO Image FROM stockphotos WHERE photo_id = 1 FOR UPDATE; Image.setProperties(); UPDATE stockphotos SET photo = Image WHERE photo_id = 1; COMMIT; END; ORDImageSignature Rappresenta le feature calcolate a partire da un immagine l insieme delle features viene chiamato signature unico attributo, di tipo BLOB 18 8 ORDImageSignature - segnatura La segnatura contiene le seguenti features: color: distribuzione di colore nell immagine texture shape: rappresenta gli oggetti (tipicamente forme geometriche) location: tiene conto della posizione delle shape nell immagine e della distribuzione del colore I valori associati alle precedenti proprietà rappresentano un punto: multidimensionale la somma di tali valori per un immagine è

64 ORDImageSignature - segnatura Image1 e Image2 sono simili rispetto al colore globale ma non rispetto alla locazione 19 0 ORDImageSignature - segnatura 19 1 ORDImageSignature - metodi inizializzazione: metodo init() generazione segnatura: metodo generatesignature(ordimage) altri che non vediamo

Interrogazioni. Interrogazioni keyword based. Interrogazioni keyword based semplici

Interrogazioni. Interrogazioni keyword based. Interrogazioni keyword based semplici Interrogazioni Keyword based Pattern matching Basate sui thesauri Query strutturali Per documenti strutturati (HTML,XML, ) Non le vediamo Dato un modello dei dati, ogni query deve essere tradotta nel modello

Dettagli

Indice inverso per modello booleano

Indice inverso per modello booleano Indice inverso per modello booleano termine documenti a 1,3,4,6,7 b c d 1,7 3,7 4,7 97 Indice inverso per modello vettoriale termine a b c d documenti 1[w],3[w],4[w],6[w],7[w] 1[w], 7[w] 3[w], 7[w] 4[w],

Dettagli

Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali. MMDBMS: aspetti da considerare. MMDBMS: aspetti da considerare

Basi di dati multimediali. Basi di dati multimediali. Basi di dati multimediali. MMDBMS: aspetti da considerare. MMDBMS: aspetti da considerare Basi di dati multimediali Basi di dati multimediali Nuove applicazioni richiedono la rappresentazione e la gestione di dati non tradizionali: testi arbitrari immagini audio video dati tradizionali (relazionali,

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

Modelli di recupero. Modello di recupero booleano

Modelli di recupero. Modello di recupero booleano Modelli di recupero L obiettivo è recuperare i documenti che sono verosimilmente rilevanti all interrogazione. Vi sono vari modelli di recupero, che possono essere suddivisi in due grandi famiglie: exact

Dettagli

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML Librerie digitali Uso di XML per memorizzare i metadati Descrizione generale Ad ogni dato associo un file XML che descrive il contenuto del dato stesso Memorizzo su file system sia il dato sia il file

Dettagli

Sistemi di Elaborazione dell informazione II. Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A.

Sistemi di Elaborazione dell informazione II. Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A. Sistemi di Elaborazione dell informazione II Corso di Laurea Specialistica in Ingegneria Telematica II anno 4 CFU Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu

Dettagli

LEZIONE BASI DI DATI I 22/10/2008 XML

LEZIONE BASI DI DATI I 22/10/2008 XML LEZIONE BASI DI DATI I 22/10/2008 XML Il linguaggio XML (Extended Markup Language) è uno standard per la strutturazione dei dati sul web. A differenza di html, che è utilizzato per formattare documenti

Dettagli

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti Microsoft Access Nozioni di base Contatti: Dott.ssa Silvia Bonfanti silvia.bonfanti@unibg.it Introduzione In questa lezione vedremo lo strumento Microsoft Access ed impareremo come realizzare con esso

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

Librerie digitali. Strumenti di ricerca. Ricerca di informazioni nelle Digital library

Librerie digitali. Strumenti di ricerca. Ricerca di informazioni nelle Digital library Librerie digitali Strumenti di ricerca Ricerca di informazioni nelle Digital library Data un interrogazione da parte di un utente gli strumenti di ricerca permetto di identificare i dati che soddisfano

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Sistemi di Information Retrieval. Sistemi di. Argomenti della lezione. Informazioni gestite

Sistemi di Information Retrieval. Sistemi di. Argomenti della lezione. Informazioni gestite Argomenti della lezione Sistemi di Information Retrieval Caratteristiche generali di un sistema di IR Informazioni gestite: informazione in un documento (contenuto, struttura, metadati) Modalità di interazione

Dettagli

Modelli di IR. Modello di IR: definizione generale. Modello di IR: definizione generale. Una tassonomia dei modelli di IR

Modelli di IR. Modello di IR: definizione generale. Modello di IR: definizione generale. Una tassonomia dei modelli di IR Modello di IR: definizione generale Modelli di IR Un modello di IR caratterizza formalmente il processo di IR: Def: Un modello di IR è una quadrupla [D,Q,F,R(q i,d j )] dove: D è un insieme di viste logiche,

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Sesta parte Interrogazione di una

Dettagli

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Introduzione alla Gestione dei Dati Prof. Alberto Postiglione

Dettagli

INTRODUZIONE AI DBMS

INTRODUZIONE AI DBMS Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Introduzione alla Gestione dei Dati Prof. Alberto Postiglione

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ PATENTE EUROPEA DEL COMPUTER 5.0 MODULO 5 Database (Microsoft Access 2007) Parte 3 A cura di Mimmo Corrado Gennaio 2012 MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ Il Modulo 5, richiede che il candidato

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio Indici non tradizionali Indici non tradizionali Nel seguito introdurremo tre particolari tipi di indici: indici bitmap: permettono di valutare efficientemente condizioni multiple indici per dati multidimensionali

Dettagli

Informatica e Bioinformatica: Basi di Dati

Informatica e Bioinformatica: Basi di Dati Informatica e Bioinformatica: Date TBD Bioinformatica I costi di sequenziamento e di hardware descrescono vertiginosamente si hanno a disposizione sempre più dati e hardware sempre più potente e meno costoso...

Dettagli

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS INFORMATICA GENERALE DBMS: Introduzione alla gestione dei dati Bibliografia 4 ott 2011 Dia 2 Curtin, Foley, Sen, Morin Vecchie edizioni: 8.4, 8.5, 8.6, 8.7, 8.8 Edizione dalla IV in poi: 6.5, 21.1, 19.4,

Dettagli

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I DATI E LA LORO INTEGRAZIONE 63 4/001.0 I DATI E LA LORO INTEGRAZIONE 63 4/001.0 L INTEGRAZIONE DEI DATI INTEGRAZIONE DEI DATI SIGNIFICA LA CONDIVISIONE DEGLI ARCHIVI DA PARTE DI PIÙ AREE FUNZIONALI, PROCESSI E PROCEDURE AUTOMATIZZATE NELL AMBITO

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota Corso di Software di produttività personale e database Ing Pasquale Rota Argomenti I programmi di produttività personale Le basi di dati Fogli elettronici Software di produttività personale e database

Dettagli

Pag Politecnico di Torino 1

Pag Politecnico di Torino 1 Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli

CAPITOLO 3 - ALGORITMI E CODIFICA

CAPITOLO 3 - ALGORITMI E CODIFICA FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)

Dettagli

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

PRODOTTO CARTESIANO Caso Generale

PRODOTTO CARTESIANO Caso Generale PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,

Dettagli

PIL Percorsi di Inserimento Lavorativo

PIL Percorsi di Inserimento Lavorativo PIL - 2008 Percorsi di Inserimento Lavorativo Basi di Dati - Lezione 2 Il Modello Relazionale Il modello relazionale rappresenta il database come un insieme di relazioni. Ogni RELAZIONE è una tabella con:

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

record a struttura fissa

record a struttura fissa Modello Relazionale E un modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

CORSO ACCESS PARTE IV

CORSO ACCESS PARTE IV Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella

Dettagli

Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati

Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati Gestione di basi di dati relazionali con SQL (parte I) Gian Pietro Picco Dipartimento di Elettronica e Informazione Politecnico di, Italy picco@elet.polimi.it http://www.elet.polimi.it/~picco Linguaggi

Dettagli

I SISTEMI DI RECUPERO DELL INFORMAZIONE

I SISTEMI DI RECUPERO DELL INFORMAZIONE I SISTEMI DI RECUPERO DELL INFORMAZIONE Sistemi specializzati nella gestione di documenti di testo e nel recupero in base al loro contenuto Sempre più spesso i documenti nascono direttamente in forma elettronica

Dettagli

SQL - Sottointerrogazioni correlate

SQL - Sottointerrogazioni correlate SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : INTRODUZIONE ALLA : INTRODUZIONE ALLA GESTIONE DEI DATI DBMS: Introduzione alla gestione dei

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1 I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice

Dettagli

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO)

Modello Relazionale. Schemi. Schemi. Schemi. In ogni base di dati si possono distinguere: Es. (relazioni INSEGNAMENTO e MANIFESTO) Modello Relazionale Modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Modelli di Information Retrieval

Modelli di Information Retrieval Modelli di Information Retrieval Roberto Basili Basi di Dati Distribuite a.a. 2004-2005 1 Documenti, Informazioni e Struttura 2 Modelli di Retrieval Un modello di IR specifica (almeno) : Rappresentazione

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Linguag gi, Codifica e Rappresentazione dell Informazione P r o f. R a f fa e l e P i z zo l a n t e A. A. 2 0 1 6 / 1 7 Cosa abbiamo visto la volta scorsa Gli elaboratori sono

Dettagli

Select From Where...

Select From Where... Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

Dettagli

Access. P a r t e t e r z a

Access. P a r t e t e r z a Access P a r t e t e r z a 1 Query: Concetti generali (2) Query 1 Tabella Query 2 Le query rappresentano viste differenti sul DB (possono coinvolgere una o più tabelle) 2 Creazione (1) Diverse possibilità,

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

Dettagli

Basi di dati (Sistemi Informativi)

Basi di dati (Sistemi Informativi) Basi di dati (Sistemi Informativi) teoria e pratica con Microsoft Access Basi di dati Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche

Dettagli

MS Access: Tutorial Tabelle, Relazioni

MS Access: Tutorial Tabelle, Relazioni Università Magna Graecia di Catanzaro Informatica MS Access: Tutorial Tabelle, Relazioni Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Microsoft Access Tutorial Tabelle,

Dettagli

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

Organizzazione Fisica dei Dati (Parte II)

Organizzazione Fisica dei Dati (Parte II) Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico

Dettagli

La gestione delle interrogazioni

La gestione delle interrogazioni La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor

Dettagli

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query Corso di Access Modulo L2 A (Access) 2.3.1 Le query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB 2 1 Introduzione

Dettagli

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Indici Un indice consiste di coppie e supporta l efficiente recupero di tutte le etichette con chiave

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

Dettagli

Altri Modelli di Information Retrieval

Altri Modelli di Information Retrieval Altri Modelli di Information Retrieval Fuzzy IR Modello Booleano Esteso Roberto Basili Basi di Dati Distribuite a.a. 2004-2005 1 Modelli Insemistici Il modello booleano e semlice ed elegante ma imone un

Dettagli

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...

Dettagli

La memorizzazione dei dati e delle istruzioni

La memorizzazione dei dati e delle istruzioni La memorizzazione dei dati e delle istruzioni La più piccola unità di informazione memorizzabile (e quindi utilizzabile) è il bit (Binary digit), che può assumere valore 0 o 1. Il dispositivo utilizzato

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti

Dettagli

UD U.D. 1 : Introduzione ai

UD U.D. 1 : Introduzione ai UD U.D. 1 : Introduzione ai DataBase Prof. Giuseppe Di Capua Generalità e definizione i i di un Data Base Introduzione In ogni modello di organizzazione della vita dell uomo vengono trattate INFORMAZIONI

Dettagli

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

Dettagli

La codifica del testo

La codifica del testo La codifica delle informazioni Informatica e sistemi di elaborazione delle informazioni La codifica delle informazioni Informatica e sistemi di elaborazione delle informazioni I slide Informatica e sistemi

Dettagli

INTRODUZIONE ALL INFORMATION RETRIEVAL

INTRODUZIONE ALL INFORMATION RETRIEVAL 1 INTRODUZIONE ALL INFORMATION RETRIEVAL CORSO DI WEB MINING & RETRIEVAL, A.A. 2015-16 Roberto Basili 2 Outline Accesso e Ricerca delle informazioni distribuite Il processo di base dell IR Rilevanza Applicazioni

Dettagli

IL LINGUAGGIO SQL LE BASI

IL LINGUAGGIO SQL LE BASI IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei

Dettagli

Esercitazione 4 SQL: cataloghi e viste

Esercitazione 4 SQL: cataloghi e viste Esercitazione 4 SQL: cataloghi e viste Sistemi Informativi T Versione elettronica: L04.CatView.pdf Cataloghi di sistema Sono insieme di tables e views che descrivono la struttura logica e fisica degli

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Business Intelligence per i Big Data

Business Intelligence per i Big Data Business Intelligence per i Big Data Esercitazione di laboratorio N. 6 (Prima parte) Dati strutturati Il dataset denominato UsersSmall (UsersSmall.xls) è disponibile sul sito del corso (http://dbdmg.polito.it/wordpress/teaching/business-intelligence/).

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Analizzatori Lessicali con JLex. Giuseppe Morelli

Analizzatori Lessicali con JLex. Giuseppe Morelli Analizzatori Lessicali con JLex Giuseppe Morelli Terminologia Tre concetti sono necessari per comprendere la fase di analisi lessicale: TOKEN: rappresenta un oggetto in grado di rappresentare una specifica

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

Dettagli

Informatica Grafica. Basi di dati parte 2

Informatica Grafica. Basi di dati parte 2 Informatica Grafica Corso di Laurea in Ingegneria Edile Architettura Basi di dati parte 2 Michele Lombardi su materiale originario di Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica

Dettagli

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

Dettagli

Notazione e convenzioni in questi lucidi

Notazione e convenzioni in questi lucidi Notazione e convenzioni in questi lucidi Il programma, ovvero la descrizione della funzione da calcolare, è scritto dall utente come una sequenza di caratteri. le sequenze di caratteri sono anche dette,

Dettagli

La connessione ai database MySQL tramite script PHP versione 5.5

La connessione ai database MySQL tramite script PHP versione 5.5 La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione

Dettagli

SQL DDL. Create database. Alter database. Drop database

SQL DDL. Create database. Alter database. Drop database SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi

Dettagli

Reperimento dell'informazione

Reperimento dell'informazione Reperimento dell'informazione Strumenti per il reperimento Indicizzazione e recupero Modelli di reperimento Motori di ricerca FdI 2013/2014 GMDN 2014 1 Reperimento dell'informazione FdI 2013/2014 GMDN

Dettagli

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language) o o o o o DDL (Data Definition Language): consente di creare e modificare schemi di database; DML (Data Manipulation Language): consente di inserire, modificare e gestire i dati memorizzati; DQL (Data

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Matematica, Informatica e Discipline Umanistiche. Salvatore Venticinque

Matematica, Informatica e Discipline Umanistiche. Salvatore Venticinque Matematica, Informatica e Discipline Umanistiche Salvatore Venticinque salvatore.venticinque@unina2.it Distanze siderali: un luogo comune Odio l'italiano Sono Negato per la matematica Forma mentis, predisposizione?

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Biblioteche Digitali Audiovisive

Biblioteche Digitali Audiovisive Capitolo 9 Biblioteche Digitali Audiovisive 9.1 Introduzione I documenti audiovisivi rappresentano un importante sfida per gli sviluppatori di biblioteche digitali. Infatti, questi contenuti sono caratterizzati

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli