1
Corso di Basi di Dati
Corso di Laurea in Informatica per il ManagementUniversità di Bologna
Docente: Marco Di Felice
Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/
2
Presentazione Obiettivi del corsoContenuti del corsoA che serve studiare le basi di dati? Qualche suggerimento …
INDICE
3
DocenteProf. Marco Di FeliceDipartimento di Informatica – Scienza e Ingegneria (DISI)
Via M. Anteo Zamboni 7, 40126 Bologna
Email: [email protected], [email protected]
Sito web: http://www.cs.unibo.it/~difeliceOrario di ricevimento:
Martedì, ore 9.30-13.30 (mail richiesta)
4
Orari del Corso
Lunedì, ore 16.30-18.30, Aula Ercolani 1 Martedì, ore 13.30-15.30, Aula Ercolani 1 Venerdì, ore 8.30-10.30, Aula Ercolani 2
Durata corso: 21 Settembre –18 Dicembre 2015(72 ore circa di lezioni frontali) – 9 c.f.u
http://www.cs.unibo.it/~difelice/dbsi/
5
Esame del Corso
Prova scritta (obbligatoria) Progetto (obbligatorio) Prova orale (facoltativa) Punti bonus (facoltativi)
L’esame consiste di:
Calcolo del voto finale (senza orale):
Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto + Punti Bonus
6
Esame del CorsoIl progetto consiste nella progettazione
ed implementazione di un Web Information System (database + interfaccia Web).
Il progetto può essere svolto individualmente o in gruppi di max 3 unità, su traccia proposta dallo studente o dal docente.
Date di consegna del progetto per l'a.a. 2015/2016: 1 Febbraio 2016, 1 Marzo 2016, 1 Aprile 2016, 1
Maggio 2016, 1 Giugno 2016, 1 Luglio 2016, 15 Settembre 2016.
7
Esame del Corso
1. Se la proposta viene dallo studente Email al docente con subject [DB1] Proposta Progetto DB 2016 indicando specifiche + lista partecipanti.
2. Consegna via email con subject: "[DB2] Consegna Progetto DB 2015”, allegando: (i) tutti i sorgenti del progetto; (ii) relazione.
3. Discussione del progetto presentazione powerpoint, in presenza di tutti i componenti del gruppo + demo del software.
STEP DEL PROGETTO
8
Esame del Corso
SEI appelli dello scritto per anno accademico NON sono definiti vincoli di validità temporale
sul voto del progetto e dell'esame scritto. NON ci sono restrizioni sul numero di prove che
si possono sostenere TUTTAVIA … … Chi si presenta ad una prova, perde
l'eventuale voto precedentemente acquisito. NON è possibile consultare testi, dispense,
appunti, etc durante lo svolgimento della prova.
REGOLAMENTO D’ESAME
9
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 letturasono riportati nel sito-web del corso …
10
Presentazione Obiettivi del corsoContenuti del corsoA che serve studiare le basi di dati? Qualche suggerimento …
INDICE
11
Obiettivi del Corso1. 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.
12
Obiettivi del CorsoSource: http://www.atkearney.it/
13
Obiettivi del Corso Perchè i dati sono importanti?
R1. DATI come risorsa aziendale, alla stessa maniera del capitale, degli impanti di produzione, delle persone, e dei beni prodotti dall’azienda.
Personale
Direzione
ATTIVITA’ OPERATIVEOperatività Corrente
ATTIVITA’ TATTICHEProgrammazione e Controllo
ATTIVITA’ STRATEGICHE Pianificazione StrategicaLead
PIRAMID
E di ANTH
ON
Y
14
Obiettivi del Corso Perchè i dati sono importanti?
R1. DATI come risorsa aziendale, alla stessa maniera del capitale, degli impanti di produzione, delle persone, e dei beni prodotti dall’azienda.
Personale
Direzione
Lead
PIRAMID
E di ANTH
ON
Y
Dati di dettaglio: ordini, dati fatturazioni,
bilancio, contabilità, etc
Dati di sintesi di supporto al processo decisionale
Dati di sintesi sull’andamento aziendaleNecessità ad ogni livellodi strumenti software per
custodire, manipolare, analizzare i dati!
15
Obiettivi del Corso Perchè i dati sono importanti?
R2. DATI come bene prodotto dall’azienda e fonte di profitto!
http://retweets.pro/buy-twitter-tweets
16
Obiettivi del Corso Perchè i dati sono importanti?
R3 DATI = informazione = conoscenza = supporto alle decisioni!
Source: http://www.conbusinessintelligence.com/
BUSINESS INTELLIGENCE (BI) (def.) Insieme di processi aziendali, metodologie tool per raccogliere i dati di un’azienda, ed estrarre informazioni di supporto alla decisioni strategiche.
17
Obiettivi del Corso
Sistemi Operativi algoritmi e tecniche per rappresentare i dati digitali ed organizzarli all’interno della memoria secondaria (file system).
Architettura di Internet 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 …
18
Obiettivi del Corso
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 CONTROLLOLOGICA di
GESTIONE DATIFILE
Lettura/Scrittura
MODELLO DI SVILUPPO DI APPLICAZIONI VISTO FIN QUI
19
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.PROBLEMI:
1) Scalabilità? gestione di grandi moli di dati?2) Concorrenza? accesso da parte di utenti/applicazioni?
DATI
20
Obiettivi del Corso
In questo corso, studieremo: modelli, linguaggi, e strumenti
softwareal fine di: progettare, implementare ed analizzare collezioni (Basi) di Dati (DB) che siano: Persistenti Potenzialmente grandi Potenzialmente condivise (tra
utenti/applicazioni)
FOCUS sui DATI
21
Presentazione Obiettivi del corsoContenuti del corsoA che serve studiare le basi di dati? Qualche suggerimento …
INDICE
22
Contenuti del CorsoNel 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].
23
Contenuti del CorsoNel 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].
24
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 …
25
Contenuti del CorsoPROBLEMA: 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?
26
Contenuti del Corso Un modello di dati è un insieme di concetti
utilizzati per organizzare i dati di interesse utilizzando un DBMS.
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 FeliceProgrammazione
1213 C. Laneve
Sistemi Operativi
1455 D. Sangiorgi
{Righe=Record
Colonne=Campi del record
27
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.
28
Contenuti del Corso
NomeCorso CodiceCorso Nome DocenteBasi di dati 0121 M. Di FeliceProgrammazione 1213 C. LaneveSistemi Operativi 1455 D. Sangiorgi
Esempio di operazioni sui dati: Implementare una procedura per recuperare in maniera automatica il codice del corso di “Basi di Dati”.
CORSI
29
Contenuti del CorsoCon 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 …
30
Contenuti del Corso
Usando DBMS ed il linguaggio SQL
Select CodiceCorsoFrom CORSIWhere (NomeCorso=“Basi di dati”);
Completa astrazione da come/dove i dati sono memorizzati su memoria secondaria!!!
31
Programma del Corso
Parte I: Modelli e Linguaggi per Basi di Dati Caratteristiche dei DBMS Il modello relazionale: concetti di base,
vincoli di integrità 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
32
Contenuti del CorsoNel 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].
33
Contenuti del CorsoEsempio: 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.
SPECIFICA dei REQUISITI sui DATI
34
Contenuti del CorsoEsempio: Progettazione di una base di dati per un ente che eroga corsi di formazione.
Inserimento di un nuovo studente Inserimento di un nuovo docente Inserimento di un nuovo corso Stampa di tutti i corsi attivi Stampa di tutti igli studenti dell’ultimo anno …
SPECIFICA delle OPERAZIONI sui DATI
35
Contenuti del CorsoPROBLEMA: Progettazione di un sistema informativo per gestire i dati di un’azienda/organizzazione …Q. Come procedere?
A. L’implementazione dipende dal caso specifico, tuttavia esistono metodologie di ingegneria del software che possono essere adottate per una “buona base di dati”.
36
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMACONCETTUALE
SCHEMALOGICO
SCHEMAFISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
37
Contenuti del CorsoPasso1: 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 Entità-Relazione (ER)
Codice … Nome …
38
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMACONCETTUALE
SCHEMALOGICO
SCHEMAFISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
39
Contenuti del CorsoPasso2: 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 SistemiOperativi
12/3/2013
13/5/2013
1215 Sangiorgi
Unibo
Più soluzioni sono possibili … Quale scegliere? Soluzione 1 (pessima). Utilizzo di una sola tabella …
40
Contenuti del CorsoPasso3: Analizzare la qualità dello schema 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 SistemiOperativi
12/3/2013
13/5/2013
1215 Sangiorgi
Unibo
Ridondanze dei dati costi aggiuntivi (memoria utilizzata)
41
Contenuti del Corso
Studio/analisi dei requisiti
Progettazione concettuale
Progettazione logica
Progettazione fisica
SCHEMACONCETTUALE
SCHEMALOGICO
SCHEMAFISICO
Fasi della progettazioneRisultati
Analisi dei requisiti e progettazione in dettaglio …
42
Contenuti del CorsoQ. Come memorizzare i dati di una tabella su memoria secondaria? Quali strutture dati e metodologie utilizzare?
NomeCorso Codice
Docente
Basi di dati 0121 M. Di FeliceProgrammazione
1213 C. Laneve
Sistemi Operativi
1455 D. Sangiorgi
0001000
111010
101110
FILE1.dat
Struttura sequenziale Struttura ad accesso calcolato (hash) Struttura ad albero
43
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 qualità.
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.
44
Contenuti del CorsoNel 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].
45
Contenuti del CorsoNel Web, gran parte dei siti di organizzazioni ed aziende gestiscono i contenuti attraverso un DBMS (Web Information System).
46
Contenuti del CorsoComponenti 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. Parametri 3. SQL Query
4. Dati
5. Pagina Web
(dinamica)
47
Contenuti del CorsoLinguaggi/Tecnologie di scripting server-side ASP.NET PHP Python + Django Ruby on Rails Java Server Pages (JSP) and Java
Servlet Common Gateway Interface (CGI) …
48
Contenuti del Corso
Parte III: SQL per Applicazioni [cenni]
Web Information System (WIS): Esempi con tecnologia AMP (Apache/MySQL/PHP), Esempi con tecnologia NOSQL + Node.js,
Esempi con tecnologia .NET SQL e Java: Java Database Connectivity
(JDBC)
49
Contenuti del CorsoNel 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].
50
Contenuti del Corso Nei precedenti moduli, abbiamo visto
come tradurre informazioni in dati (es. progettando un DB a partire dalle specifiche).
In questo modulo, vedremo al contrario tecniche per estrarre informazioni da grande quantità di dati (es. Web o social media)
CORRELAZIONI/ASSOCIAZIONI
UTILI?
0101010110101010101021111110
51
Contenuti del CorsoData 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 …
52
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)
53
Contenuti del CorsoQuali info possono essere estratte da un DB?
Apprendimento supervised: Costruire modelli di classificazione a partire da esempi noti, al fine di classificare nuovi istanze …Codice Casa? Macchin
a?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
54
Contenuti del CorsoQuali info possono essere estratte da un DB?
Apprendimento supervised: Costruire modelli di classificazione a partire da esempi noti, al fine di 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????
55
Contenuti del CorsoQuali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classipredefinite, al fine di identificare 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
56
Contenuti del CorsoQuali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classipredefinite, al fine di identificare pattern sui dati …
CLUSTER1: Rischio basso, casa: SI, Reddito: 30K-40K
57
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, applicazioni con software WEKA
Esempi di applicazioni: estrazione & data-mining nei social media
58
Presentazione Obiettivi del corsoContenuti del corsoA che serve studiare le basi di
dati? Qualche suggerimento …
INDICE
59
Competenze Professionali
Database Administrator Progettista di Database Analista/Sviluppatore SQL Database Specialist Business Intelligence Specialist …
Q. Come posso utilizzare le competenze del corso?
60
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?
61
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 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…
62
Contenuti del CorsoOgni minuto 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
63
Contenuti del CorsoBig Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali.
Font
e: h
ttp://
www.
data
mee
r.com
/pro
duct
/big
-dat
a.ht
ml
Le 3 “V” dei Big-Data:
Volume Varietà Velocità Valore
64
Contenuti del CorsoUn esempio di sorgente di Big-Data: Reti di sensori
65
Contenuti del CorsoFrom an Internet of Humans … to an Internet of Things …
Sour
ce: C
isco
IBSG
, Apr
il 20
11
66
Contenuti del CorsoUn 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. PROVIDESERVICES
67
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 utenti
68
Presentazione Obiettivi del corsoContenuti del corsoA che serve studiare le basi di dati? Qualche suggerimento …
INDICE
69
Suggerimenti Seguire ATTIVAMENTE le lezioni Usare conoscenze pregresse per
integrare quanto visto nel corso … Controllare con regolarità il sito
Web del corso. Utilizzare il ricevimento. Essere propositivi & motivati!