Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna...

82
Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita’ di Bologna Docente: Marco Di Felice Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Transcript of Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna...

Page 1: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Corso di Basi di Dati

Corso di Laurea in Informatica per il ManagementUniversita’ di Bologna

Docente: Marco Di Felice

Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 3: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Docente

Dr. Marco Di Felice

Dipartimento di Scienze dell’Informazione

Via M. Anteo Zamboni 7, 40126 Bologna

Email: [email protected]

Sito web: http://www.cs.unibo.it/~difelice

Orario di ricevimento: Martedi’, ore 9.30-13.30

Page 4: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Orari del Corso

Martedi’, ore 15.30-18.30, Aula Ercolani 2

Giovedi’, ore 9.30-12.30, Aula Ercolani 2

Durata corso: 24 Settembre –19 Dicembre 2013

(60 ore circa di lezioni frontali) – 9 c.f.u

Esame: Scritto + Progetto

Page 5: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 6: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Obiettivi del Corso

Fornire le basi dell'utilizzo e della progettazione di basi di dati basate sul modello relazionale.

Introdurre le caratteristiche principali dei moderni software di gestione delle basi di dati (DBMS)

Introdurre gli strumenti e le metodologie per l'integrazione di una base di dati all'interno di un sistema informatico.

Page 7: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Informazione: notizia, dato, elemento che consente di avere conoscenza piu’ o meno esatta di fatti, situazioni e modi d’essere.

Dato: rappresentazione digitale di elementi di informazione …

Es. Dati contenuti nel mio PC (all’interno di file/cartelle)

Es. Dati contenutisul Web

Page 8: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Perche’ i dati sono importanti?

I dati costituiscono una risorsa aziendale, alla stessa maniera del capitale, degli impanti di produzione, delle persone, e dei beni prodotti dall’azienda.

In alcuni casi, i dati SONO il bene prodotto dall’azienda e la sua fonte di profitto!

Page 9: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

PIRAMIDE di ANTHONY

Personale

Direzione

ATTIVITA’ OPERATIVEOperativita’ Corrente

ATTIVITA’ TATTICHEProgrammazione e Controllo

ATTIVITA’ STRATEGICHE Pianificazione Strategica

Lead

Un esempio (classico) di organizzazione aziendale …

Page 10: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti 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’, etc

Dati di sintesi di supporto al processo decisionale

Dati di sintesi sull’andamento aziendaleLead

Page 11: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del CorsoGran 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 aziendaleLeadNecessita’ ad ogni livello

di strumenti software percustodire, manipolare, analizzare

i dati!

Page 12: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti 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 una 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 …

Page 13: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti 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

FILE

Lettura/Scrittura

Page 14: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso L’approccio alla gestione dei dati basato

su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati.

… Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni.

UN ESEMPIO ESTREMO (di dimensione dati)

World Data Centre for Climate (WDCC)Max Planck Institute for Meteorology

1142 TB di dati, di cui 600 sul web! htt

p:/

/ww

w.d

krz

.de/d

ate

n-e

n/w

dcc

Page 15: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso L’approccio alla gestione dei dati basato

su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati.

… Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni.

UN ESEMPIO ESTREMO (di concorrenza)

1 bilione di visite al mese100 ore di video uploadate al minuto!

Page 16: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso L’approccio alla gestione dei dati basato

su file funziona bene nel caso di sistemi di piccole dimensioni, prevalentemente single-user, o con scarsa necessita’ di condivisione dei dati.

… Non funziona (o funziona male) nel caso di sistemi con volumi consistenti, con accesso concorrente e/o condiviso tra utenti/applicazioni.

UN ESEMPIO PIU’ COMUNE …

Vetrina dei prodotti disponibili Vendite/prenotazioni

Sito Web aziendale

Page 17: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti 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

Page 18: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 19: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 20: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 21: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Esistono appositi strumenti software, sviluppati fin dagli anni ‘60, per la gestione delle basi di dati.

DataBase Management System (DBMS) sistema software che e’ in grado di gestire BD grandi, condivise e persistenti, in maniera efficiente e sicura. Da qui in avanti, per noi una base di dati

e’ una collezione di dati gestita da un DBMS …

Page 22: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Dato un DB gestito da un DBMS (es. DB che gestisce i dati di studenti/docenti dell’universita’ di Bologna), vedremo come si implementano operazioni di:

Inserimento/modifica (es. inserisci nuovo studente).

Ricerca (es. trova tutti i docenti di un certo dipartimento).

Creazione/modifica dello schema (es. estendi il DB in modo da gestire anche le informazioni dei tecnici)

Creazione di un nuovo DB…

Page 23: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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?

Page 24: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del CorsoUn modello di dati e’ un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore.Modello Relazionale consente di organizzare i dati in record di dimensione fissa mediante tabelle.

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

Page 25: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 puo’ essere costituita da molte tabelle…Nome Corso Codice

CorsoCodice 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

Page 26: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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.

Page 27: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

NomeCorso CodiceCorso Nome Docente

Basi 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

Page 28: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 29: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 disco!

Page 30: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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.

Page 31: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 32: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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.

Page 33: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

PROBLEMA: Progettazione di un sistema informativo per un’organizzazione..

Q. Come procedere?

A. L’implementazione dipende dal caso specifico, tuttavia esistono aspetti metodologici di ingeneria del sotware che possono essere adottati per progettare una “buona base di dati”.

Page 34: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Studio di fattibilita’

Raccolta/analisi requisiti

Progettazione

Implementazione

Validazione

Funzionamento

Cic

lo d

i vit

a

di un

sis

tem

a In

form

ati

vo

{Oggetto di studio

del modulo corrent

e

Modulo precedent

e

Page 35: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 36: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Esempio: Progettazione di una base di dati per un ente che eroga corsi di formazione.

Si vuole progettare una base di dati per una societa’ che eroga corsi, di cui si vogliono rappresentare i dati dei docenti e dgli studenti. Per gli studenti, identificati da un codice, si vuole tenere traccia del codice fiscale, cognome, eta’, sesso, e corsi che stanno seguendo/hanno seguito. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio/fine e numero degli studenti. Per gli insegnanti, si vuole memorizzare il codice, il cognome, l’afferenza, il nome del corso che insegnano/hanno insegnato.

SPECIFICA dei REQUISITI sui DATI

Page 37: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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

Page 38: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 39: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del CorsoPasso1: Produrre uno schema concettuale dei dati e delle relazioni tra dati che compongono il sistema informativo.

Studente

Corso Docente

Docenza

Inscri

zion

e

Codice…

Modello Entita’-Relazione (ER)

Codice … Nome …

Page 40: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 41: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 SistemiOperativi

12/3/2013

13/5/2013

1215 Sangiorgi

Unibo

Piu’ soluzioni sono possibili … Quale scegliere?

Soluzione 1 (pessima). Utilizzo di una sola tabella …

Page 42: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 SistemiOperativi

12/3/2013

13/5/2013

1215 Sangiorgi

Unibo

Ridondanze dei dati costi aggiuntivi (memoria utilizzata)

Page 43: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Passo3: Specificare i vincoli sui dati che devono essere rispettati dallo schema.

Il codice dello studente deve essere univoco.

Il codice del docente deve essere univoco.

Il codice fiscale di uno studente puo’ non essere specificato.

Per un dato corso, identificato dal codice, data inizio e data fine, deve esistere solo un docente.

Page 44: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 45: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 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

Page 46: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 47: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 48: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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).

Page 49: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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. Pagin

a Web

(din

amica

)

Page 50: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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) …

Page 51: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

In maniera simile, e’ 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

Page 52: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

In questo caso, il codice SQL e’ immerso nel codice del linguaggio ospite (es. Java).String url = "jdbc:mysql://hostname/database”;Class.forName("com.mysql.jdbc.Driver").newInstance();Connection c = DriverManager.getConnection(url, properties);…int id = ... get ID from somewhere ...String sql = "SELECT Name FROM Users WHERE Id = " + id;ResultSet rs = st.executeQuery(sql);

Page 53: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Parte III: SQL per Applicazioni [cenni]

Esempi di DBMS: MySQL Web Information System (WIS): Esempi

con tecnologia AMP (Apache/MySQL/Php)

SQL e Java: Java Database Connectivity (JDBC)

Page 54: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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].

Page 55: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Nei precedenti moduli, abbiamo visto come tradurre informazioni in dati (es. progettando un DB a partire dalle specifiche funzionali …)

In questo modulo, vedremo al contrario tecniche per estrarre informazioni da grande quantita’ di dati (es. Web o social media)

CORRELAZIONI/ASSOCIAZIONI

UTILI?

0101010110101010101021111110

Page 56: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 57: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 societa’ di brokeraggio? )

Scoperta di truffe (es. clonazioni di carte di credito)

Campagne pubblicitarie mirate Churn Analysis (analisi della clientela che

potrebbe passare alla concorrenza) Segmentazione della clientela …

ESEMPI di APPLICAZIONI (aziendali)

Page 58: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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

Page 59: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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????

Page 60: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Quali info possono essere estratte da un DB?

Apprendimento unsupervised: Costruire modelli senza classipredefinite, 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

Page 61: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Quali info possono essere estratte da un DB?

Apprendimento unsupervised: Costruire modelli senza classipredefinite, cercando di scoprire pattern sui dati …

CLUSTER1: Rischio basso, casa: SI, Reddito: 30K-40K

Page 62: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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

Page 63: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 64: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Esame del Corso

Prova scritta (obbligatoria) Progetto (obbligatoria) Prova orale (facoltativa)

L’esame consiste di:

Calcolo del voto finale (senza orale):

Voto_Finale=2/3* Voto_Scritto + 1/3 * Voto_Progetto

Page 65: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Esame del Corso

NON sono definiti vincoli di validita' temporale sul voto del progetto e dell'esame scritto.

NON c'e' alcuna restrizione sul numero di prove che si possono sostenere.

Chi si presenta ad una prova, perde l'eventuale voto precedentemente acquisito.

NON e' possibile consultare testi, dispense, appunti, etc durante lo svolgimento della prova.

Vincoli d’esame (pochi):

Page 66: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Esame del Corso

Il progetto consiste nella progettazione ed implementazione di un'applicazione (Web) che integri un piccolo sistema informativo.

Il progetto puo' essere svolto individualmente o in gruppi di max 3 unita'.

Il progetto puo' essere proposto dal gruppo stesso, previa approvazione della proposta dal docente.

Inviare email con subject: "[DB1] Proposta Progetto DB 2014”, indicando i nomi dei partecipanti.

Page 67: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Esame del Corso Consegna via email con subject: "[DB2]

Consegna Progetto DB 2014”, allegando: (i) tutti i sorgenti del progetto; (ii) una breve relazione.

Date di consegna del progetto per l'a.a. 2013/2014:

1 Febbraio 2014, 1 Marzo 2014, 1 Aprile 2014, 1 Maggio 2014,

15 Giugno 2014, 15 Luglio 2014, 15 Settembre 2014.

In seguito alla consegna, si ricevera' una email dal docente con la convocazione per la discussione del progetto, che consiste in una presentazione (tenuta da tutti i componenti del gruppo) del progetto + demo.

Page 68: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 …

Page 69: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Libri di Testo

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: Modelli e Linguaggi di interrogazione, 4ed, McGraw-Hill

Altri testi di cui e’ consigliata la letturasono riportati nel sito-web del corso …

Page 70: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 71: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Competenze Professionali

Database Administrator Progettista di Database Analista/Sviluppatore SQL Database Specialist Business Intelligence Specialist …

Q. Come posso utilizzare le competenze del corso?

Page 72: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Le basi di dati sono presenti in quasi tutti i sistemi informatici di varia dimensione e complessita’ (es. Oracle vs SQLite) …

Modelli logici, linguaggi e tool per basi di dati sviluppati gia’ nella fine degli anni ‘60 …

Il corso di Basi di Dati e’ presente in quasi tutti i corsi di Laurea in Informatica ed affini …

Conclusioni: disciplina statica ed un po’ vetusta?

Page 73: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Le basi di dati sono presenti in quasi tutti i sistemi informatici di varia dimensione e complessita’ (es. Oracle vs SQLite) …

Modelli logici, linguaggi e tool per basi di dati sviluppati gia’ nella fine degli anni ‘60 …

Il corso di Basi di Dati e’ presente in quasi tutti i corsi di Laurea in Informatica ed affini …

Conclusioni: disciplina statica ed un po’ vetusta?

Non direi!!!

Applicazioni vastissime ed in continua evoluzione Investimenti da parte delle maggiori aziende in ambito IT Area di ricerca “caldissima”

Qualche esempio di cosa bolle in pentola …

Page 74: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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)

Page 75: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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

Page 76: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Big Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali.

Fonte

: htt

p:/

/ww

w.d

ata

meer.co

m/p

rod

uct

/big

-data

.htm

l

Le 3 “V” dei Big-Data:

Volume Varieta’ Velocita’

Page 77: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Contenuti del Corso

Un esempio di sorgente di Big-Data: Reti di sensori

Page 78: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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. PROVIDESERVICES

Page 79: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

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 sensingMetroSense: http://metrosense.cs.dartmouth.edu/

Page 80: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Nei big data, una grande quantita’ di dati puo’ voler dire anche una grande quantita’ di informazioni nascoste da reperire!!

Contenuti del Corso

Es: Analisi dei social media

Social Net Analysis

Sentiment Analysis

Profiling di utenti

Page 81: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Presentazione

Obiettivi del corso

Contenuti del corso

Regolamento d’esame

A che serve studiare questo corso?

Qualche suggerimento …

INDICE

Page 82: Corso di Basi di Dati Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso: difelice/dbsi

Suggerimenti

Seguire le lezioni in aula.

Controllare con regolarita’ il sito del corso.

Utilizzare gli orari di ricevimento.

Essere propositivi!