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
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
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
http://www.cs.unibo.it/~difelice/dbsi/
 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
4
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
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
Lead
ATTIVITA’ STRATEGICHE
Pianificazione Strategica
ATTIVITA’ TATTICHE
Programmazione e Controllo
ATTIVITA’ OPERATIVE
Operativita’ Corrente
Un esempio (classico) di organizzazione aziendale …
9
Obiettivi 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,
contabilità, etc
10
Obiettivi del Corso
Gran parte delle aziende dispongono di un
sistema informativo per la gestione dei dati.
Dati di sintesi sull’andamento aziendale
Necessità 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
11
Obiettivi 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 un sistema di comunicazione.
Programmazione  linguaggi e metodi per realizzare
sistemi software in grado di gestire dati persistenti
memorizzati su file esterni all’applicazione.
12
Obiettivi 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.
13
Obiettivi 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!
14
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 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.
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
16
Sito Web aziendale
Obiettivi 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)
17
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
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.
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
24
Contenuti del Corso
In pratica, una base di dati di medio/grandi dimensioni
può 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
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
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
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
Modulo
precedente
Implementazione
Validazione
Funzionamento
34
Ciclo di vita
di un sistema Informativo
Oggetto di
studio
del
modulo
corrente
Contenuti del Corso
Analisi dei requisiti e progettazione in dettaglio …
Fasi della progettazione
Risultati
SCHEMA
CONCETTUALE
Progettazione concettuale
SCHEMA
LOGICO
Progettazione logica
SCHEMA
FISICO
Progettazione fisica
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.
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
…
…
37
Contenuti del Corso
Analisi dei requisiti e progettazione in dettaglio …
Studio/analisi dei requisiti
Fasi della progettazione
Risultati
SCHEMA
LOGICO
Progettazione logica
SCHEMA
FISICO
Progettazione fisica
38
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
39
…
Contenuti del Corso
Analisi dei requisiti e progettazione in dettaglio …
Studio/analisi dei requisiti
Fasi della progettazione
Risultati
SCHEMA
CONCETTUALE
Progettazione concettuale
SCHEMA
FISICO
Progettazione fisica
40
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
41
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)
42
Contenuti del Corso
Analisi dei requisiti e progettazione in dettaglio …
Studio/analisi dei requisiti
Fasi della progettazione
Risultati
SCHEMA
CONCETTUALE
Progettazione concettuale
SCHEMA
LOGICO
Progettazione logica
43
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
44
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].
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)
2. Parametri
1. HTTP request
Browser
(client)
6. HTTP response
3. SQL Query
DBMS
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
SQL query
Dati
Libreria Java Database Connection (JDBC)
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)
54
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 …
55
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 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
 …
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
20K30K
5
Basso
2
SI
SI
20K30K
5
Basso
3
NO
NO
10K-20K 2
57
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
58
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
1
SI
NO
20K-30K 5
Basso
2
SI
SI
20K-30K 5
Basso
3
NO
NO
10K-20K 2
Alto
59
#Anni
Lavoro
Rischio
Contenuti del Corso
Quali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classi
predefinite, cercando di scoprire pattern sui dati …
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
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
62
Esame del Corso
L’esame consiste di:




Prova scritta (obbligatoria)
Progetto (obbligatoria)
Prova orale (facoltativa)
Punti bonus (?) (esercizi durante il corso)
Calcolo del voto finale (senza orale):
Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto
63
Esame del Corso
Vincoli d’esame:
 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.
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 socialmedia (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
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
69
Competenze Professionali
Q. Come posso utilizzare le competenze del corso?






Database Administrator
Progettista di Database
Analista/Sviluppatore SQL
Database Specialist
Business Intelligence Specialist
…
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 informatici di varia dimensione e
complessita’ (es. OracleNO!
vs SQLite) …
ASSOLUTAMENTE
 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 di
in Informaticadi
edricerca…
affini … 
Esempi
diLaurea
applicazioni/ambiti
 Conclusioni: disciplina statica ed un pò vetusta?
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 users
Fonte: Ravi Kalakota – Sizing Mobile+Social Big Data Stats
74
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
Varietà
Velocità
Valore
75
Fonte: http://www.datameer.com/product/big-data.html
Contenuti del Corso
BIG DATA
HYPE CYCLE
2014
76
Fonte: http://www.gartner.com/technology/research/hype-cycles/
Contenuti del Corso
Contenuti del Corso
Un esempio di sorgente di Big-Data: Reti di sensori
77
Contenuti del Corso
Source: Cisco IBSG, April 2011
From an Internet of Humans … to an Internet of Things …
78
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
79
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/
80
Contenuti del Corso
Nei big data, una grande quantità di dati può voler
dire anche una grande quantità di informazioni
nascoste da reperire!!
Social Net Analysis
Sentiment Analysis
Es: Analisi dei social media
Profiling di utenti
81
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 Regolamento d’esame
 A che serve studiare questo corso?
 Qualche suggerimento …
82
Suggerimenti
 Seguire ATTIVAMENTE le lezioni in
aula.
 Controllare con regolarità il sito del
corso.
 Utilizzare gli orari di ricevimento.
 Essere propositivi & motivati!
83