PPT - Dipartimento di Informatica - Scienza e Ingegneria

annuncio pubblicitario
Corso di Basi di Dati
Corso di Laurea in Informatica per il Management
Università di Bologna
Docente: Prof. Marco Di Felice
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
1
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 A che serve studiare le basi di dati?
 Qualche suggerimento …
2
Docente
Prof. Marco Di Felice
Dipartimento 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/~difelice
Orario di ricevimento:
 Mercoledì, ore 10-12 (mail richiesta)
3
Orari del Corso
http://www.cs.unibo.it/~difelice/dbsi/
 Lunedì, ore 15.30-18.30, Aula Ercolani 1
 Giovedì, ore 16.30-18.30, Aula Ercolani 1
 Venerdì, ore 8.30-10.30, Aula Ercolani 1
Durata corso: 19 Settembre –19 Dicembre 2016
(62 ore circa di lezioni frontali) – 9 c.f.u
4
Esame del Corso
L’esame consiste di:




Prova scritta (obbligatoria)
Progetto (obbligatorio)
Prova orale (facoltativa)
Punti bonus (facoltativi)
Calcolo del voto finale (senza orale):
Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto
+ Punti Bonus
5
Esame del Corso
Il 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. 2016/2017:
1 Febbraio 2017, 1 Marzo 2017, 1 Aprile 2017, 1 Maggio 2017,
1 Giugno 2017, 1 Luglio 2017, 15 Settembre 2017.
6
Esame del Corso
STEP DEL PROGETTO
1. Se la proposta viene dallo studente  Email al
docente con subject [DB1] Proposta Progetto DB 2017
indicando specifiche + lista partecipanti.
2. Consegna via email con subject: "[DB2] Consegna
Progetto DB 2017”, 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.
7
Esame del Corso
REGOLAMENTO D’ESAME
 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.
8
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 …
9
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 A che serve studiare le basi di dati?
 Qualche suggerimento …
10
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.
11
Obiettivi del Corso
Source: http://www.atkearney.it/
12
Obiettivi del Corso
 Chi produce questi dati?
1. Sistemi Informativi aziendali
1. Social media
1. Sorgenti di big-data
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.
sintesi livello
sull’andamento aziendale
Necessità Dati
ad diogni
Lead
di strumenti software
per
Dati di sintesi di supporto al
processo decisionale
custodire, manipolare, analizzare
i dati!
Dati di dettaglio: ordini, dati
fatturazioni, bilancio,
contabilità, etc
14
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
15
Obiettivi del Corso
 Perchè i dati sono importanti?
R3  DATI = informazione = conoscenza = supporto alle decisioni!
 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.
Source: http://www.conbusinessintelligence.com/
16
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).
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.
17
Obiettivi del Corso
MODELLO DI SVILUPPO DI APPLICAZIONI VISTO FIN QUI
APPLICAZIONE
LOGICA di
CONTROLLO
LOGICA di
GESTIONE DATI
FILE
 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.
18
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?
19
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)
20
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 A che serve studiare le basi di dati?
 Qualche suggerimento …
21
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].
22
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].
23
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 …
24
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?
25
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.
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
26
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.
27
Contenuti del Corso
Esempio di operazioni sui dati: 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
28
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());
}
PROBLEMI:
reader.close();
- Codice alquanto elaborato
- Necessario conoscere il path del file
- Accesso sequenziale al file …
29
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 memoria secondaria!!!
30
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.
 Il linguaggio SQL: interrogazioni, definizione
di viste, transazioni, trigger (MySQL)
 Oltre il modello relazionale: approcci NOSQL
MongoDB e Cassandra
31
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].
32
Contenuti del Corso
Esempio: Progettazione di una base di dati per un
ente che eroga corsi di formazione.
SPECIFICA dei REQUISITI sui DATI
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.
33
Contenuti del Corso
Esempio: Progettazione di una base di dati per un
ente che eroga corsi di formazione.
SPECIFICA delle OPERAZIONI sui DATI






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
…
34
Contenuti del Corso
PROBLEMA: 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”.
35
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
36
Contenuti del Corso
Passo1: Produrre uno schema concettuale dei
dati e delle relazioni tra dati che compongono il
sistema informativo.
Codice
…
Studente
Inscrizione
Modello Entità-Relazione (ER)
Docenza
Corso
Codice
Docente
…
Nome
37
…
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
38
Contenuti del Corso
Passo2: Traduzione del modello concettuale nel
modello logico relazionale …
 Più 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
39
Contenuti del Corso
Passo3: Analizzare la qualità dello schema
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)
40
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
41
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
42
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 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.
43
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].
44
Contenuti del Corso
Nel Web, gran parte dei siti di organizzazioni
ed aziende gestiscono i contenuti attraverso
un DBMS (Web Information System).
45
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
46
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)
…
47
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)
48
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].
49
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)
50
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 …
51
Contenuti del Corso
Quali 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
20K30K
5
Basso
2
SI
SI
20K30K
5
Basso
3
NO
NO
10K-20K 2
52
Alto
Contenuti del Corso
Quali 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
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
53
Rischio
Alto
Contenuti del Corso
Quali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classi
predefinite, al fine di identificare 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
54
#Anni
Lavoro
Rischio
Contenuti del Corso
Quali info possono essere estratte da un DB?
Apprendimento unsupervised: Costruire modelli senza classi
predefinite, al fine di identificare pattern sui dati …
55
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 & datamining nei social media e nell’Internet of
Things
56
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 A che serve studiare le basi di dati?
 Qualche suggerimento …
57
Competenze Professionali
Q. Come posso utilizzare le competenze del corso?






Database Administrator
Progettista di Database
Analista/Sviluppatore SQL
Database Specialist
Business Intelligence Specialist
…
58
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?
59
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?
60
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
61
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
62
Contenuti del Corso
Source: Cisco IBSG, April 2011
From an Internet of Humans … to an Internet of Things …
63
Contenuti del Corso
Un esempio di sorgente di Big-Data: Dispositivi mobili
3. ANALYZE
2. SHARE
Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010
64
4. PROVIDE
SERVICES
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
65
INDICE
 Presentazione
 Obiettivi del corso
 Contenuti del corso
 A che serve studiare le basi di dati?
 Qualche suggerimento …
66
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!
67
Scarica