Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita’ di Bologna Docente: Marco Di Felice Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Docente Dr. Marco Di Felice Dipartimento di Scienze dell’Informazione Via M. Anteo Zamboni 7, 40126 Bologna Email: [email protected] Sito web: http://www.cs.unibo.it/~difelice Orario di ricevimento: Martedi’, ore 9.30-13.30 Orari del Corso Martedi’, ore 15.30-18.30, Aula Ercolani 2 Giovedi’, ore 9.30-12.30, Aula Ercolani 2 Durata corso: 24 Settembre –19 Dicembre 2013 (60 ore circa di lezioni frontali) – 9 c.f.u Esame: Scritto + Progetto INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Obiettivi del Corso Fornire le basi dell'utilizzo e della progettazione di basi di dati basate sul modello relazionale. Introdurre le caratteristiche principali dei moderni software di gestione delle basi di dati (DBMS) Introdurre gli strumenti e le metodologie per l'integrazione di una base di dati all'interno di un sistema informatico. Contenuti del Corso Informazione: notizia, dato, elemento che consente di avere conoscenza piu’ o meno esatta di fatti, situazioni e modi d’essere. Dato: rappresentazione digitale di elementi di informazione … Es. Dati contenuti nel mio PC (all’interno di file/cartelle) Es. Dati contenuti sul Web Contenuti del Corso Perche’ i dati sono importanti? I dati costituiscono una risorsa aziendale, alla stessa maniera del capitale, degli impanti di produzione, delle persone, e dei beni prodotti dall’azienda. In alcuni casi, i dati SONO il bene prodotto dall’azienda e la sua fonte di profitto! Contenuti del Corso Lead ATTIVITA’ STRATEGICHE Pianificazione Strategica ATTIVITA’ TATTICHE Programmazione e Controllo ATTIVITA’ OPERATIVE Operativita’ Corrente Un esempio (classico) di organizzazione aziendale … Contenuti del Corso Gran parte delle aziende dispongono di un sistema informativo per la gestione dei dati. Dati di sintesi sull’andamento aziendale Lead Dati di sintesi di supporto al processo decisionale Dati di dettaglio: ordini, dati fatturazioni, bilancio, contabilita’, etc Contenuti del Corso Gran parte delle aziende dispongono di un sistema informativo per la gestione dei dati. Dati di sintesi sull’andamento aziendale Necessita’ ad ogni livello Dati di sintesi di supporto al di strumenti software per processo decisionale custodire, manipolare, analizzare i dati! Lead Dati di dettaglio: ordini, dati fatturazioni, bilancio, contabilita’, fatturazione, etc Contenuti del Corso Conoscenze sui dati dai corsi precedenti … Sistemi Operativi algoritmi e tecniche per rappresentare i dati digitali ed organizzarli all’interno della memoria secondaria (file system). Reti di calcolatori algoritmi e tecniche per transmettere i dati in una sistema di comunicazione. Programmazione linguaggi e metodi per realizzare sistemi software in grado di gestire dati persistenti memorizzati su file esterni all’applicazione. Contenuti del Corso APPLICAZIONE LOGICA di CONTROLLO LOGICA di GESTIONE DATI FILE Nessuna distinzione tra dati ed applicazioni. L’applicazione contiene al suo interno la logica di controllo e la logica di gestione dei dati. Il sistema operativo (es. Linux) fornisce le operazioni di base per lettura/scrittura di file su memoria secondaria. Contenuti del Corso UN ESEMPIO ESTREMO (di dimensione dati) World Data Centre for Climate (WDCC) Max Planck Institute for Meteorology 1142 TB di dati, di cui 600 sul web! http://www.dkrz.de/daten-en/wdcc L’approccio alla gestione dei dati basato su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati. … Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni. Contenuti del Corso L’approccio alla gestione dei dati basato su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati. … Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni. UN ESEMPIO ESTREMO (di concorrenza) 1 bilione di visite al mese 100 ore di video uploadate al minuto! Contenuti del Corso L’approccio alla gestione dei dati basato su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati. … Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni. UN ESEMPIO PIU’ COMUNE … Vetrina dei prodotti disponibili Vendite/prenotazioni Sito Web aziendale Contenuti del Corso FOCUS sui DATI In questo corso, studieremo: modelli, linguaggi, e strumenti software al fine di: progettare, implementare ed analizzare collezioni (Basi) di Dati (DB) che siano: Persistenti Potenzialmente grandi Potenzialmente condivise (tra utenti/applicazioni) INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Contenuti del Corso Nel corso, forniremo un’introduzione al mondo delle Basi di dati (DB) da quattro punti di vista: Utente come interagire con un DB (aggiungere/modificare informazioni, recuperare informazioni, etc). Progettista come progettare un DB. Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI]. Analista come reperire informazioni da un DB attraverso tecniche di data-mining [CENNI]. Contenuti del Corso Nel corso, forniremo un’introduzione al mondo delle Basi di dati (DB) da quattro punti di vista: Utente come interagire con un DB (aggiungere/modificare informazioni, recuperare informazioni, etc). Progettista come progettare un DB. Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI]. Analista come reperire informazioni da un DB attraverso tecniche di data-mining [CENNI]. Contenuti del Corso Esistono appositi strumenti software, sviluppati fin dagli anni ‘60, per la gestione delle basi di dati. DataBase Management System (DBMS) sistema software che e’ in grado di gestire BD grandi, condivise e persistenti, in maniera efficiente e sicura. Da qui in avanti, per noi una base di dati e’ una collezione di dati gestita da un DBMS … Contenuti del Corso Dato un DB gestito da un DBMS (es. DB che gestisce i dati di studenti/docenti dell’universita’ di Bologna), vedremo come si implementano operazioni di: Inserimento/modifica (es. inserisci nuovo studente). Ricerca (es. trova tutti i docenti di un certo dipartimento). Creazione/modifica dello schema (es. estendi il DB in modo da gestire anche le informazioni dei tecnici) Creazione di un nuovo DB … Contenuti del Corso PROBLEMA: Molti DBMS disponibili in commercio! Oracle, DB2, Microsoft SQL Server, MySQL, etc Non vedremo nel dettaglio i singoli tool (tranne qualche eccezione), ma studieremo aspetti generali comuni alla maggior parte dei DBMS: Modello Logico Come sono organizzati i dati all’interno di un DBMS? Linguaggi orientati ai dati Come si possono specificare operazioni sui dati? Contenuti del Corso Un modello di dati e’ un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore. Modello Relazionale consente di organizzare i dati in record di dimensione fissa mediante tabelle. Colonne=Campi del record Righe= Record { Corso Codice Corso Nome Docente Basi di dati 0121 M. Di Felice Programmazione 1213 C. Laneve Sistemi Operativi 1455 D. Sangiorgi Contenuti del Corso In pratica, una base di dati di medio/grandi dimensioni puo’ essere costituita da molte tabelle… CORSI Nome Corso Codice Corso Codice Docente Basi di dati 0121 Programmazione Sistemi Operativi ESAMI Corso Studente Voto 00 0121 4324235245 30L 1213 01 1213 4324235245 25 1455 02 1213 9854456565 18 STUDENTI Matricola Cognome Nome Data Nascita 4324235245 Rossi Giorgio 12/12/1987 6247673587 Bianchi Michele 04/12/1987 9854456565 Verdi Marco 11/04/1988 Contenuti del Corso Ogni DBMS mette a disposizione degli appositi linguaggi per le operazioni di definizione dello schema e di manipolazione/accesso ai dati stessi. Linguaggi testuali ad hoc, specifici del DBMS in uso. Interfacce grafiche (es. Access). Linguaggio SQL (Structured Query Language) standard di riferimento per il modello dati relazionale. Contenuti del Corso Esempio di operazioni sui dati: data la tabella con le informazioni relative ai corsi attivi per il primo semestre, implementare una procedura per recuperare in maniera automatica il codice del corso di “Basi di Dati”. CORSI NomeCorso CodiceCorso Nome Docente Basi di dati 0121 M. Di Felice Programmazione 1213 C. Laneve Sistemi Operativi 1455 D. Sangiorgi Contenuti del Corso Con gli strumenti tradizionali (Java+file): String s; BufferedReader reader=new BufferedReader(new FileReader(“myfile”)); while (s=reader.readLine()) ! =null) { StringTokenizer token=new StringTokenizer(s); if (token.nextToken().equals(“Basi di dati”)) System.out.println(token.nextToken()); } reader.close(); PROBLEMI: - Codice alquanto elaborato - Necessario conoscere il path del file - Accesso sequenziale al file … Contenuti del Corso Usando DBMS ed il linguaggio SQL Select CodiceCorso From CORSI Where (NomeCorso=“Basi di dati”); Completa astrazione da come/dove i dati sono memorizzati su disco! Programma del Corso Parte I: Modelli e Linguaggi per Basi di Dati Caratteristiche dei DBMS Il modello relazionale: concetti di base, vincoli di integrita' e chiavi. Algebra relazionale (cenni): operatori algebrici, interrogazioni. Il linguaggio SQL: definizione dei dati, modifica dei dati, interrogazioni, definizione di viste, transazioni. Contenuti del Corso Nel corso, forniremo un’introduzione al mondo delle Basi di dati (DB) da quattro punti di vista: Utente come interagire con un DB (aggiungere/modificare informazioni, recuperare informazioni, etc). Progettista come progettare un DB. Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI]. Analista come reperire informazioni da un DB attraverso tecniche di data-mining [CENNI]. Contenuti del Corso PROBLEMA: Progettazione di un sistema informativo per un’organizzazione … (Es. progettare il sistema informativo di un ente di formazione che eroga corsi). Progettazione dell’applicazione. Progettazione della base di dati. Contenuti del Corso PROBLEMA: Progettazione di un sistema informativo per un’organizzazione.. Q. Come procedere? A. L’implementazione dipende dal caso specifico, tuttavia esistono aspetti metodologici di ingeneria del sotware che possono essere adottati per progettare una “buona base di dati”. Contenuti del Corso { Studio di fattibilita’ Raccolta/analisi requisiti Progettazione Modulo precedente Implementazione Validazione Funzionamento Ciclo di vita di un sistema Informativo Oggetto di studio del modulo corrente Contenuti del Corso Analisi dei requisiti e progettazione in dettaglio … Risultati Fasi della progettazione SCHEMA CONCETTUALE Progettazione concettuale SCHEMA LOGICO Progettazione logica SCHEMA FISICO Progettazione fisica Contenuti del Corso Esempio: Progettazione di una base di dati per un ente che eroga corsi di formazione. Si vuole progettare una base di dati per una societa’ che eroga corsi, di cui si vogliono rappresentare i dati dei docenti e dgli studenti. Per gli studenti, identificati da un codice, si vuole tenere traccia del codice fiscale, cognome, eta’, sesso, e corsi che stanno seguendo/hanno seguito. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio/fine e numero degli studenti. Per gli insegnanti, si vuole memorizzare il codice, il cognome, l’afferenza, il nome del corso che insegnano/hanno insegnato. Contenuti del Corso Esempio: Progettazione di una base di dati per un ente che eroga corsi di formazione. Inserimento di un nuovo studente (in media, ogni mese) Inserimento di un nuovo docente (in media, ogni anno) Inserimento di un nuovo corso (in media, ogni anno) Stampa di tutti i corsi attivi (ogni giorno) Stampa di tutti igli studenti dell’ultimo anno … … Contenuti del Corso Analisi dei requisiti e progettazione in dettaglio … Studio/analisi dei requisiti Risultati Fasi della progettazione SCHEMA LOGICO Progettazione logica SCHEMA FISICO Progettazione fisica Contenuti del Corso Passo1: Produrre uno schema concettuale dei dati e delle relazioni tra dati che compongono il sistema informativo. Codice … Studente Inscrizione Modello Entita’-Relazione (ER) Docenza Corso Codice Docente … Nome … Contenuti del Corso Analisi dei requisiti e progettazione in dettaglio … Studio/analisi dei requisiti Risultati Fasi della progettazione SCHEMA CONCETTUALE Progettazione concettuale SCHEMA FISICO Progettazione fisica Contenuti del Corso Passo2: Traduzione del modello concettuale nel modello logico relazionale … Piu’ soluzioni sono possibili … Quale scegliere? Soluzione 1 (pessima). Utilizzo di una sola tabella … Codice Studente Codice Fiscale Cogno me Eta Sesso Codice Corso Titolo Inizio Fine Codice Prof Cognom e Afferenza 323 NULL Di Matteo 23 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 123 NULL Poli 24 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 143 NULL Giusti 25 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 163 NULL Di Cinzio 27 M 214 Sistemi Operativi 12/3/20 13 13/5/ 2013 1215 Sangiorgi Unibo Contenuti del Corso Passo3: Analizzare la qualita’ dello schema DB prodotto, ed ottimizzarlo/ristrutturarlo … Codice Studente Codice Fiscale Cogno me Eta Sesso Codice Corso Titolo Inizio Fine Codice Prof Cognom e Afferenza 323 NULL Di Matteo 23 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 123 NULL Poli 24 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 143 NULL Giusti 25 M 212 Basi di Dati 10/3/20 12 10/5/ 2012 1212 DiFelice Unibo 163 NULL Di Cinzio 27 M 214 Sistemi Operativi 12/3/20 13 13/5/ 2013 1215 Sangiorgi Unibo Ridondanze dei dati costi aggiuntivi (memoria utilizzata) Contenuti del Corso Passo3: Specificare i vincoli sui dati che devono essere rispettati dallo schema. Il codice dello studente deve essere univoco. Il codice del docente deve essere univoco. Il codice fiscale di uno studente puo’ non essere specificato. Per un dato corso, identificato dal codice, data inizio e data fine, deve esistere solo un docente. … Contenuti del Corso Analisi dei requisiti e progettazione in dettaglio … Studio/analisi dei requisiti Risultati Fasi della progettazione SCHEMA CONCETTUALE Progettazione concettuale SCHEMA LOGICO Progettazione logica Contenuti del Corso Q. Come memorizzare i dati di una tabella su memoria secondaria? Quali strutture dati e metodologie utilizzare? FILE1.dat NomeCorso Codice Docente Basi di dati 0121 M. Di Felice Programmazione 1213 C. Laneve Sistemi Operativi 1455 D. Sangiorgi Struttura sequenziale Struttura ad accesso calcolato (hash) Struttura ad albero 0001000 111010 101110 Programma del Corso Parte II: Progettazione di Basi di Dati Progettazione concettuale: il modello E/R, raccolta ed analisi di requisiti, strategie di progettazione concettuale, verifica di qualita'. Progettazione logica: ristrutturazione degli schemi E/R, traduzione nel modello relazionale. Tecniche di normalizzazione: forme normali (Boyce-Codd, terza forma normale), decomposizione in forma normale. Progettazione fisica [CENNI]. Contenuti del Corso Nel corso, forniremo un’introduzione al mondo delle Basi di dati (DB) da quattro punti di vista: Utente come interagire con un DB (aggiungere/modificare informazioni, recuperare informazioni, etc). Progettista come progettare un DB. Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI]. Analista come reperire informazioni da un DB attraverso tecniche di data-mining [CENNI]. Contenuti del Corso Nel Web, gran parte dei siti di organizzazioni ed aziende gestiscono i dati attraverso un DB gestito da un DBMS (Sito web Applicazione web). Contenuti del Corso Componenti di un’applicazione web: Web-server (HTTP-based) Linguaggio di scripting server-side DBMS (relazionale) 2. Parametri 1. HTTP request Browser (client) 6. HTTP response 3. SQL Query DBMS Contenuti del Corso Linguaggi/Tecnologie di scripting server-side ASP.NET PHP Python + Django Ruby on Rails Java Server Pages (JSP) and Java Servlet Common Gateway Interface (CGI) … Contenuti del Corso In maniera simile, e’ possibile scrivere applicazioni stand-alone che si interfacciano con DB gestiti da un DBMS relazionale. Codice Java SQL query Dati Libreria Java Database Connection (JDBC) Contenuti del Corso In questo caso, il codice SQL e’ immerso nel codice del linguaggio ospite (es. Java). String url = "jdbc:mysql://hostname/database”; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection c = DriverManager.getConnection(url, properties); … int id = ... get ID from somewhere ... String sql = "SELECT Name FROM Users WHERE Id = " + id; ResultSet rs = st.executeQuery(sql); Contenuti del Corso Parte III: SQL per Applicazioni [cenni] Esempi di DBMS: MySQL Web Information System (WIS): Esempi con tecnologia AMP (Apache/MySQL/Php) SQL e Java: Java Database Connectivity (JDBC) Contenuti del Corso Nel corso, forniremo un’introduzione al mondo delle Basi di dati (DB) da quattro punti di vista: Utente come interagire con un DB (aggiungere/modificare informazioni, recuperare informazioni, etc). Progettista come progettare un DB. Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI]. Analista come reperire informazioni da un DB attraverso tecniche di data-mining [CENNI]. Contenuti del Corso Nei precedenti moduli, abbiamo visto come tradurre informazioni in dati (es. progettando un DB a partire dalle specifiche funzionali …) In questo modulo, vedremo al contrario tecniche per estrarre informazioni da grande quantita’ di dati (es. Web o social media) CORRELAZIONI/ ASSOCIAZIONI UTILI? 0101010 1101010 1010102 1111110 Contenuti del Corso Data Mining: tecniche di apprendimento computerizzato per analizzare ed estrarre conoscenze da collezioni di dati. Pattern e relazioni non note a priori e non immediatamente identificabili. Disciplina complessa: utilizzo di tecniche di machine learning, intelligenza artificiale e statistiche … Contenuti del Corso ESEMPI di APPLICAZIONI (aziendali) Previsioni di dati temporali (es. vendite) Market Basket Analysis (vi siete mai chiesti come mai tanti tornei di golf sono sponsorizzati da societa’ di brokeraggio? ) Scoperta di truffe (es. clonazioni di carte di credito) Campagne pubblicitarie mirate Churn Analysis (analisi della clientela che potrebbe passare alla concorrenza) Segmentazione della clientela … Contenuti del Corso Quali info possono essere estratte da un DB? Apprendimento supervised: Costruire modelli di classificazione a partire da esempi per classificare nuovi istanze … Codice Casa? Macchina? Reddito #Anni Lavoro Rischio 1 SI NO 20K30K 5 Basso 2 SI SI 20K30K 5 Basso 3 NO NO 10K-20K 2 Alto Contenuti del Corso Quali info possono essere estratte da un DB? Apprendimento supervised: Costruire modelli di classificazione a partire da esempi per classificare nuovi istanze … Codice Casa? Macchina? Reddito #Anni Lavoro 1 SI NO 20K5 Basso CASA: SI, #ANNI LAVORO: 1, REDDITO: 20K-30K 30K 2 SI SI 20K5 Basso RISCHIO EROGAZIONE 30K PRESTITO di 5K???? 3 NO NO 10K-20K 2 Rischio Alto Contenuti del Corso Quali info possono essere estratte da un DB? Apprendimento unsupervised: Costruire modelli senza classi predefinite, cercando di scoprire pattern sui dati … Codice Casa? Macchina? Reddito #Anni Lavoro Rischio 1 SI NO 20K-30K 5 Basso 2 SI SI 20K-30K 5 Basso 3 NO NO 10K-20K 2 Alto Contenuti del Corso Quali info possono essere estratte da un DB? Apprendimento unsupervised: Costruire modelli senza classi predefinite, cercando di scoprire pattern sui dati … Programma del Corso Parte IV: Introduzione al Data-Mining Concetti di base: Business intelligence, data ware-housing, data-mining Cenni di tecniche di classificazione e clustering Esempi di applicazioni: estrazione di dati e data-mining nei social media INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Esame del Corso L’esame consiste di: Prova scritta (obbligatoria) Progetto (obbligatoria) Prova orale (facoltativa) Calcolo del voto finale (senza orale): Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto Esame del Corso Vincoli d’esame (pochi): NON sono definiti vincoli di validita' temporale sul voto del progetto e dell'esame scritto. NON c'e' alcuna restrizione sul numero di prove che si possono sostenere. Chi si presenta ad una prova, perde l'eventuale voto precedentemente acquisito. NON e' possibile consultare testi, dispense, appunti, etc durante lo svolgimento della prova. Esame del Corso Il progetto consiste nella progettazione ed implementazione di un'applicazione (Web) che integri un piccolo sistema informativo. Il progetto puo' essere svolto individualmente o in gruppi di max 3 unita'. Il progetto puo' essere proposto dal gruppo stesso, previa approvazione della proposta dal docente. Inviare email con subject: "[DB1] Proposta Progetto DB 2014”, indicando i nomi dei partecipanti. Esame del Corso Consegna via email con subject: "[DB2] Consegna Progetto DB 2014”, allegando: (i) tutti i sorgenti del progetto; (ii) una breve relazione. Date di consegna del progetto per l'a.a. 2013/2014: 1 Febbraio 2014, 1 Marzo 2014, 1 Aprile 2014, 1 Maggio 2014, 15 Giugno 2014, 15 Luglio 2014, 15 Settembre 2014. In seguito alla consegna, si ricevera' una email dal docente con la convocazione per la discussione del progetto, che consiste in una presentazione (tenuta da tutti i componenti del gruppo) del progetto + demo. Esame del Corso Proposte di progetto alternative (da concordare con il docente): Estrazione ed analisi di dati da socialmedia (es. Twitter/Facebook) Progetto integrato Basi di Dati + Laboratorio Applicazioni Mobili … Possibilita’ di tesi/tirocini/etc … Libri di Testo P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: Modelli e Linguaggi di interrogazione, 4ed, McGraw-Hill Altri testi di cui e’ consigliata la lettura sono riportati nel sito-web del corso … INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Competenze Professionali Q. Come posso utilizzare le competenze del corso? Database Administrator Progettista di Database Analista/Sviluppatore SQL Database Specialist Business Intelligence Specialist … Contenuti del Corso Le basi di dati sono presenti in quasi tutti i sistemi informatici di varia dimensione e complessita’ (es. Oracle vs SQLite) … Modelli logici, linguaggi e tool per basi di dati sviluppati gia’ nella fine degli anni ‘60 … Il corso di Basi di Dati e’ presente in quasi tutti i corsi di Laurea in Informatica ed affini … Conclusioni: disciplina statica ed un po’ vetusta? Contenuti del Corso Le basi di dati sono presenti in quasi tutti i sistemi informatici di varia dimensione e complessita’ Non direi!!! (es. Oracle vs SQLite) … Applicazioni Modelli logici, linguaggi e tool per basi di dati vastissime ed in continua evoluzione sviluppati gia’ nelladelle finemaggiori degli anni ‘60 in…ambito IT Investimenti da parte aziende Area di ricerca “caldissima” Il corso di Basi di Dati e’ presente in quasi tutti i corsi diesempio Laurea in affini … Qualche di Informatica cosa bolle inedpentola … Conclusioni: disciplina statica ed un po’ vetusta? Contenuti del Corso “ Ogni due giorni produciamo tante informazioni quante ne abbiamo prodotte in tutta la nostra storia fino al 2003” Eric Schmidt (Presidente esecutivo di Google) Contenuti del Corso Ogni 60 secondi nel mondo: Twitter: 98000 tweets Facebook: 695000 status update Google: 698000 ricerche online YouTube: 600 video uploadati 1,820 TB di dati creati 217 nuovi mobile web users Fonte: Ravi Kalakota – Sizing Mobile+Social Big Data Stats Big Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali. Le 3 “V” dei Big-Data: Volume Varieta’ Velocita’ Fonte: http://www.datameer.com/product/big-data.html Contenuti del Corso Contenuti del Corso Un esempio di sorgente di Big-Data: Reti di sensori Contenuti del Corso Un esempio di sorgente di Big-Data: Dispositivi mobili 3. ANALYZE 2. SHARE 1. SENSE Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010 4. PROVIDE SERVICES Contenuti del Corso Esempi di applicazioni basate su data crowdsourcing Navigazione stradale assistita WAZE: http://it.waze.com/ Urban sensing MetroSense: http://metrosense.cs.dartmouth.edu/ Geolocalizzazione OpenStreetMap: http://www.openstreetmap.org/ Contenuti del Corso Nei big data, una grande quantita’ di dati puo’ voler dire anche una grande quantita’ di informazioni nascoste da reperire!! Social Net Analysis Sentiment Analysis Es: Analisi dei social media Profiling di utenti INDICE Presentazione Obiettivi del corso Contenuti del corso Regolamento d’esame A che serve studiare questo corso? Qualche suggerimento … Suggerimenti Seguire le lezioni in aula. Controllare con regolarita’ il sito del corso. Utilizzare gli orari di ricevimento. Essere propositivi!