Corso di Basi di Dati
Corso di Laurea in Informatica per il Management Università di Bologna
!Docente: Marco Di Felice
!Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
1
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
2
Docente
Dr. Marco Di Felice
Dipartimento di Scienze dell’Informazione
Via M. Anteo Zamboni 7, 40126 Bologna
Email: [email protected], [email protected]
Sito web: http://www.cs.unibo.it/~difelice
Orario di ricevimento: ➢ Martedì, ore 9.30-13.30 (mail richiesta)
3
Orari del Corso
!!
➢ Lunedì, ore 14.30-17.30, Aula Ercolani 1
➢ Venerdì, ore 8.30-11.30, Aula Ercolani 2
!Durata corso: 29 Settembre –19 Dicembre 2014
(70 ore circa di lezioni frontali) – 9 c.f.u
Esame: Scritto + Progetto
http://www.cs.unibo.it/~difelice/dbsi/
4
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
5
Obiettivi del Corso
1. Fornire le basi dell'utilizzo e della progettazione di basi di dati basate sul modello relazionale.
2. Introdurre le caratteristiche principali dei moderni software di gestione delle basi di dati (DBMS)
3. Introdurre gli strumenti e le metodologie per l'integrazione di una base di dati all'interno di un sistema informatico.
6
Obiettivi del Corso
➢Informazione: notizia, elemento che consente di avere conoscenza più 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
7
Obiettivi del Corso
Perchè 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!
8
Obiettivi del Corso
PIRAMIDE di ANTHONY
Personale
Direzione
ATTIVITA’ OPERATIVE Operativita’ Corrente
ATTIVITA’ TATTICHE Programmazione e Controllo
ATTIVITA’ STRATEGICHE Pianificazione StrategicaLead
Un esempio (classico) di organizzazione aziendale …9
Obiettivi del Corso
Gran parte delle aziende dispongono di un sistema informativo per la gestione dei dati.
PIRAMIDE di ANTHONY
Personale
Direzione
Dati di dettaglio: ordini, dati fatturazioni, bilancio,
contabilità, etc
Dati di sintesi di supporto al processo decisionale
Dati di sintesi sull’andamento aziendaleLead
10
Obiettivi del Corso
Gran parte delle aziende dispongono di un sistema informativo per la gestione dei dati.
PIRAMIDE di ANTHONY
Personale
Direzione
Dati di dettaglio: ordini, dati fatturazioni, bilancio, contabilita’,
fatturazione, etc
Dati di sintesi di supporto al processo decisionale
Dati di sintesi sull’andamento aziendaleLeadNecessità ad ogni livello
di strumenti software per
custodire, manipolare, analizzare i dati!
11
Obiettivi del Corso
!➢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 un sistema di comunicazione. !
➢Programmazione à linguaggi e metodi per
realizzare sistemi software in grado di gestire dati persistenti memorizzati su file esterni all’applicazione.
Conoscenze sui dati dai corsi precedenti …
12
Obiettivi del Corso
➢ 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.
APPLICAZIONE
LOGICA di CONTROLLO
LOGICA di GESTIONE DATI
FILELettura/Scrittura
13
Obiettivi 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 necessità 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 dimensione dati)
➢ World Data Centre for Climate (WDCC) Max Planck Institute for Meteorology !1142 TB di dati, di cui 600 sul web!
http
://w
ww
.dkr
z.de
/dat
en-e
n/w
dcc
14
Obiettivi 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 necessità 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)
➢Trasferimenti di denaro tramite Internet !➢7.7 milioni di pagamenti al giorno
15
Obiettivi 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 necessità 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 aziendale16
Obiettivi del Corso
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)
FOCUS sui DATI
17
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
18
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].
19
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].
20
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 è in grado di gestire BD grandi, condivise e persistenti, in maniera efficiente e sicura.
➢ Da qui in avanti, per noi una base di dati è una collezione di dati gestita da un DBMS …
21
Contenuti del Corso
Dato un DB gestito da un DBMS (es. DB che gestisce i dati di studenti/docenti dell’università 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 ➢…
22
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? 23
Contenuti del Corso
Un modello di dati è 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.
Corso Codice Corso Nome Docente
Basi di dati 0121 M. Di Felice
Programmazione 1213 C. Laneve
Sistemi Operativi 1455 D. Sangiorgi{Righe=
Record
Colonne=Campi del record
24
Matricola Cognome Nome Data Nascita
4324235245 Rossi Giorgio 12/12/1987
6247673587 Bianchi Michele 04/12/1987
9854456565 Verdi Marco 11/04/1988
In pratica, una base di dati di medio/grandi dimensioni può essere costituita da molte tabelle…
Nome Corso Codice Corso
Codice Docente
Basi di dati 0121 00
Programmazione 1213 01
Sistemi Operativi 1455 02
Corso Studente Voto
0121 4324235245 30L
1213 4324235245 25
1213 9854456565 18
CORSIESAMI
STUDENTI
Contenuti del Corso
25
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.
26
Contenuti del Corso
NomeCorso CodiceCorso Nome DocenteBasi di dati 0121 M. Di Felice
Programmazione 1213 C. Laneve
Sistemi Operativi 1455 D. Sangiorgi
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
27
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 …
28
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!
29
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.
➢ Oltre il modello relazionale: approcci NOSQL
30
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].
31
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.
32
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 ingegneria del sotware che possono essere adottati per progettare una “buona base di dati”. !
33
Contenuti del Corso
Studio di fattibilita’
Raccolta/analisi requisiti
Progettazione
Implementazione
Validazione
Funzionamento
Cic
lo d
i vit
a
di u
n si
stem
a In
form
ativ
o{Oggetto di
studio del
modulo corrente
Modulo precedente
34
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMA CONCETTUALE
SCHEMA LOGICO
SCHEMA FISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
35
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 società 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, età, 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.
SPECIFICA dei REQUISITI sui DATI
36
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 ➢ … ➢ …
SPECIFICA delle OPERAZIONI sui DATI
37
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMA CONCETTUALE
SCHEMA LOGICO
SCHEMA FISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
38
Contenuti del Corso
Passo1: Produrre uno schema concettuale dei dati e delle relazioni tra dati che compongono il sistema informativo.
Studente
Corso Docente
Docenza
Insc
rizi
one
Codice…
Modello Entita’-Relazione (ER)
Codice … Nome …
39
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMA CONCETTUALE
SCHEMA LOGICO
SCHEMA FISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
40
Contenuti del Corso
Passo2: Traduzione del modello concettuale nel modello logico relazionale …
Codice Studente
Codice Fiscale
Cognome Eta Sesso Codice Corso
Titolo Inizio Fine Codice Prof
Cognome Afferenza
323 NULL Di Matteo 23 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
123 NULL Poli 24 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
143 NULL Giusti 25 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
163 NULL Di Cinzio 27 M 214 Sistemi Operativi
12/3/2013
13/5/2013
1215 Sangiorgi Unibo
➢ Piu’ soluzioni sono possibili … Quale scegliere?
➢ Soluzione 1 (pessima). Utilizzo di una sola tabella …
41
Contenuti del Corso
Passo3: Analizzare la qualita’ dello schema DB prodotto, ed ottimizzarlo/ristrutturarlo …
Codice Studente
Codice Fiscale
Cognome Eta Sesso Codice Corso
Titolo Inizio Fine Codice Prof
Cognome Afferenza
323 NULL Di Matteo 23 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
123 NULL Poli 24 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
143 NULL Giusti 25 M 212 Basi di Dati 10/3/2012
10/5/2012
1212 DiFelice Unibo
163 NULL Di Cinzio 27 M 214 Sistemi Operativi
12/3/2013
13/5/2013
1215 Sangiorgi Unibo
Ridondanze dei dati àcosti aggiuntivi (memoria utilizzata)
42
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMA CONCETTUALE
SCHEMA LOGICO
SCHEMA FISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
43
Contenuti del Corso
Q. Come memorizzare i dati di una tabella su memoria secondaria? Quali strutture dati e metodologie utilizzare?
NomeCorso Codice DocenteBasi di dati 0121 M. Di Felice
Programmazione 1213 C. Laneve
Sistemi Operativi 1455 D. Sangiorgi
0001000 111010 101110
FILE1.dat
➢ Struttura sequenziale ➢ Struttura ad accesso calcolato (hash) ➢ Struttura ad albero
44
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].
45
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].
46
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).
47
Contenuti del Corso
Componenti di un’applicazione web: !➢ Web-server (HTTP-based) ➢ Linguaggio di scripting server-side ➢ DBMS (relazionale)
DBMSBrowser (client)
Web-server
MT1. HTTP request
6. HTTP response
2. Parametri3. SQL Query
4. Dati
5. Pagina W
eb
(dinamica)
48
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) ➢ … !! 49
Contenuti del Corso
In maniera simile, è possibile scrivere applicazioni stand-alone che si interfacciano con DB gestiti da un DBMS relazionale.
Codice Java DBMS
Libreria Java Database Connection (JDBC)
SQL query
Dati
50
Contenuti del Corso
In questo caso, il codice SQL è 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);
51
Contenuti del Corso
Parte III: SQL per Applicazioni [cenni] !➢ Esempi di DBMS: MySQL, SQL Server (?) ➢ Web Information System (WIS): Esempi con
tecnologia AMP (Apache/MySQL/Php), Esempi con tecnologia .NET (?)
➢ SQL e Java: Java Database Connectivity (JDBC)
52
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].
53
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 quantità di dati (es. Web o social media)
CORRELAZIONI/ ASSOCIAZIONI
UTILI?
0101010 1101010 1010102 1111110
54
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 …
55
Contenuti del Corso
➢ Previsioni di dati temporali (es. vendite) ➢ Market Basket Analysis (vi siete mai chiesti come
mai tanti tornei di golf sono sponsorizzati da società 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 ➢ …
ESEMPI di APPLICAZIONI (aziendali)
56
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 20K- 30K
5 Basso
2 SI SI 20K- 30K
5 Basso
3 NO NO 10K-20K 2 Alto
57
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 20K- 30K
5 Basso
2 SI SI 20K- 30K
5 Basso
3 NO NO 10K-20K 2 Alto
CASA: SI, #ANNI LAVORO: 1, REDDITO: 20K-30K
RISCHIO EROGAZIONE PRESTITO di 5K????
58
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
59
Contenuti del Corso
Quali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classi predefinite, cercando di scoprire pattern sui dati …
CLUSTER1: Rischio basso, casa: SI, Reddito: 30K-40K
60
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
61
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
62
Esame del Corso
➢ Prova scritta (obbligatoria) ➢ Progetto (obbligatoria) ➢ Prova orale (facoltativa) ➢ Punti bonus (?) (esercizi durante il corso)
L’esame consiste di:
Calcolo del voto finale (senza orale): !Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto
63
Esame del Corso
➢ SEI appelli dello scritto per anno accademico ➢ NON sono definiti vincoli di validita' temporale sul
voto del progetto e dell'esame scritto. ➢ NON c’è restrizione sul numero di prove che si
possono sostenere TUTTAVIA … ➢ … 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.
Vincoli d’esame:
64
Esame del Corso
➢ Il progetto consiste nella progettazione ed implementazione di un'applicazione (Web) che integri un piccolo sistema informativo. !
➢ Il progetto può essere svolto individualmente o in gruppi di max 3 unità.
!➢ Il progetto può essere proposto dal gruppo stesso, previa
approvazione della proposta dal docente. !
➢ Inviare email con subject: "[DB1] Proposta Progetto DB 2015”, indicando i nomi dei partecipanti.
65
Esame del Corso!➢ Consegna via email con subject: "[DB2] Consegna
Progetto DB 2015”, allegando: (i) tutti i sorgenti del progetto; (ii) una breve relazione. !
➢ Date di consegna del progetto per l'a.a. 2014/2015: !
1 Febbraio 2015, 1 Marzo 2015, 1 Aprile 2015, 1 Maggio 2015, 1 Giugno 2015, 1 Luglio 2015, 15 Settembre 2015.
!➢ In seguito alla consegna, si riceverà 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.
! 66
Esame del Corso
Proposte di progetto alternative (da concordare con il docente): !➢Estrazione ed analisi di dati da social-
media (es. Twitter/Facebook) ➢Progetto integrato Basi di Dati +
Laboratorio Applicazioni Mobili ➢… !
Possibilita’ di tesi/tirocini/etc …67
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 è consigliata la lettura sono riportati nel sito-web del corso …
68
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
69
Competenze Professionali
➢ Database Administrator ➢ Progettista di Database ➢ Analista/Sviluppatore SQL ➢ Database Specialist ➢ Business Intelligence Specialist ➢ …
Q. Come posso utilizzare le competenze del corso?
70
Contenuti del Corso
➢ Le basi di dati sono presenti in quasi tutti i sistemi informatici di varia dimensione e complessità (es. Oracle vs SQLite) … !
➢ Modelli logici, linguaggi e tool per basi di dati sviluppati già nella fine degli anni ‘60 … !
➢ Il corso di Basi di Dati è presente in quasi tutti i corsi di Laurea in Informatica ed affini … !
➢ Conclusioni: disciplina statica ed un pò vetusta?71
Contenuti del Corso
➢ Le basi di dati sono presenti in quasi tutti i sistemi i n f o r m a t i c i d i v a r i a d i m e n s i o n e 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 pò vetusta?
ASSOLUTAMENTE NO!
!➢ Applicazioni vastissime ed in continua evoluzione ➢ Investimenti da parte delle maggiori aziende in ambito IT
➢ Area di ricerca “caldissima”
!Esempi di applicazioni/ambiti di ricerca… à
72
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)
73
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 usersFonte: Ravi Kalakota – Sizing Mobile+Social Big Data Stats
74
Contenuti del Corso
Big Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali.
Fon
te: h
ttp:
//w
ww
.dat
amee
r.com
/pro
duct
/big
-dat
a.ht
ml
Le 3 “V” dei Big-Data: !
➢ Volume ➢ Varietà ➢ Velocità ➢ Valore
75
Contenuti del Corso
Fon
te: h
ttp:
//w
ww
.gar
tner
.com
/tec
hnol
ogy/
rese
arch
/hyp
e-cy
cles
/BIG DATA
HYPE CYCLE 201476
Contenuti del Corso
From an Internet of Humans … to an Internet of Things …
Sour
ce: C
isco
IB
SG, A
pril
2011
78
Contenuti del Corso
Un esempio di sorgente di Big-Data: Dispositivi mobili
Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010
1. SENSE
2. SHARE
3. ANALYZE
4. PROVIDE SERVICES
79
Contenuti del Corso
Esempi di applicazioni basate su data crowdsourcing
➢ Navigazione stradale assistita WAZE: http://it.waze.com/
➢ Geolocalizzazione OpenStreetMap: http://www.openstreetmap.org/
➢ Urban sensing MetroSense: http://metrosense.cs.dartmouth.edu/
80
Nei big data, una grande quantità di dati può voler dire anche una grande quantità di informazioni nascoste da reperire!!
Contenuti del Corso
Es: Analisi dei social media
Social Net Analysis
Sentiment Analysis
Profiling di utenti81
➢Presentazione
➢Obiettivi del corso
➢Contenuti del corso
➢Regolamento d’esame
➢A che serve studiare questo corso?
➢Qualche suggerimento …
INDICE
82