basi di dati e sistemi informativi corso di laurea in informatica per il management universita di...

65
Basi di Dati e Sistemi Informativi 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/

Upload: graziano-fortunato

Post on 02-May-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Basi di Dati e Sistemi

Informativi

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: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 3: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Orari del Corso

Mercoledi’, ore 15.30-18.30, Aula Ercolani 2

Giovedi’, ore 16.30-18.30, Aula Ercolani 2

Venerdi’, ore 10.30-13.30, Aula Ercolani 2

Durata corso: 26 Settembre – 20 Dicembre 2012

(80 ore circa di lezioni frontali) – 12 c.f.u

Page 4: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 metologie per l'integrazione di basi di dati all'interno di un sistema informatico.

Page 5: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Un Sistema Informativo (SI) e’ una componente di un’organizzazione il cui scopo e’ quello di gestire le informazioni utili ad i fini dell’organizzazione stessa.

Organizzazione Azienda, Ufficio, Ente, Universita’, etc

Page 6: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Obiettivi 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 7: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

L’esistenza di un Sistema Informativo e’ indipendente dalla sua automatizzazione.

Biblioteca reale di Alessandria d’EgittoIV-I secolo a.C

400000 rotoli presenti.

Page 8: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

L’esistenza di un Sistema Informativo e’ indipendente dalla sua automatizzazione.

Censimenti e Registro Anagrafe.

Nell’Antica Roma, i censimenti venivano effettuati dalla fine del IV secolo a.c. Gli elenchi dei censiti, distinti secondo il possesso o meno dei diritti civili e politici, la classe patrimoniale e l'età, venivano utilizzati come liste elettorali, ruoli per l’esazione dei tributi e liste di leva.

Page 9: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

La porzione automatizzata di un sistema informativo prende il nome di Sistema Informatico.

All’interno di un sistema informatico, le informazioni sono rappresentate da dati, che hanno bisogno di essere interpretati per fornire informazioni.

SISTEMA

SISTEMA INFORMATIVO

SISTEMA INFORMATICO

DATI

Page 10: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

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

Dato (def): elementi di informazione constituiti da simboli che devono essere elaborati.

NOTA: Senza interpretazione, il dato non e’ molto utile!

FERRARI, 8

Page 11: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Approccio convenzionale: files per memorizzare i dati in modo persistente le informazioni nella memoria di massa.

Approccio del corso: dati gestiti attraverso sistemi software specifici noti come Data Base Management System (DBMS).

Una base di dati e’ una collezione di dati che rappresentano le informazioni di un’organizzazione.

Da qui in avanti nel corso Una base di dati e’ una collezione di dati gestita da un DBMS.

Page 12: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

DB grandi dipende dall’organizzazione, ma si puo’ arrivare all’ordine dei giga/tera-bytes ed oltre.

DB condivisi applicazioni ed utenti diversi devono poter accedere a dati comuni, in maniera consistente tra gli accessi.

DB persistenti memorizzazione su memoria secondaria.

DB affidabili alta tolleranza ad i guasti, con funzionalita’ avanzate di ripristino e backup.

DB sicuri meccanismi di autenticazione degli utenti.

DB efficienti performance accettabili per l’utente.

Un DBMS e’ un sistema software che e’ in grado di gestire collezioni di dati che sono grandi, condivise e persistenti, assicurando la loro affidabilita’ e privatezza.

Page 13: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso Solo nel 2011, il mercato dei DMBS ha avuto una

crescita del 6.5% con ricavi complessivi pari a 33.9 billioni di dollari.

Il mercato dei DBMS e’ dominato da 4 vendor, che da soli occupano una percentuale di ricavi pari al 75% del totale:

Oracle (10 billioni di dollari di ricavi nel 2011). IBM Microsoft SAP

Oltre a queste 4 aziende, 14 altri vendor hanno ricavato profitti pari a 100 milioni di dollari (ciascuno).

Fonte: IDC

Page 14: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

4th DimensionAdabas DAlpha FiveApache DerbyAster DataAltibaseBlackRayCA-DatacomClarionClustrixCSQLCUBRIDDaffodil databaseDataEaseDatabase Management Dataphor

Java DBEmpress Embedded DatabaseEnterpriseDBeXtremeDBFileMaker ProFirebirdGreenplumGroveSiteH2Helix databaseHSQLDBIBM DB2IBM Lotus ApproachInfobrightInformix

IngresInterBaseInterSystems CachéGT.MLinterMariaDBMaxDBMicrosoft AccessMicrosoft Jet Database Engine (part of Microsoft Access)Microsoft SQL Server

Lista (parziale) dei DBMS piu’ utilizzati.

Page 15: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoMicrosoft SQL Server ExpressMicrosoft Visual FoxProMimer SQLMonetDBmSQLMySQLNetezzaNonStop SQLOpenbaseOpenLink Virtuoso OpenLink Virtuoso ServerOpenOffice.org BaseOracleOracle Rdb for OpenVMSPanoramaPostgreSQLProgress Software

RDM ServerSAND CDBMSSav ZigzagScimoreDBSmallSQLSQLBaseSQLiteSybase SQL AdvantageServerTeradataTimesTentxtSQLUnisys RDMS 2200UniDataUniVerseVerticaVMDSVISTADB

Lista (parziale) dei DBMS piu’ utilizzati.

Page 16: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Fonte: Winter Corporation, 2005

Numero di righe presenti nel data-base …

Page 17: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoNel corso, forniremo un’introduzione al mondo dei Sistemi Informativi e delle Basi di dati (DB) da quattro punti di vista differenti:

Utente come usare un DB (aggiungere/modificare informazioni, recuperare informazioni da un DB, etc).

Progettista come progettare un DB.

Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI].

Progettista di DBMS come e’ fatto un DBMS [CENNI].

Page 18: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoNel corso, forniremo un’introduzione al mondo dei Sistemi Informativi e delle Basi di dati (DB) da quattro punti di vista differenti:

Utente come usare un DB (aggiungere/modificare informazioni, recuperare informazioni da un DB, etc).

Progettista come progettare un DB.

Programmatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI].

Progettista di DBMS come e’ fatto un DBMS [CENNI].

Page 19: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 20: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Per conseguire tali competenze, e’ necessario studiare due aspetti complementari:

1. Come sono strutturati i dati all’interno di un DBMS, ossia il modello logico dei dati.

2. Come si interagisce con il modello logico per eseguire operazioni di accesso ai dati/modifica/ricerca/etc, ossia il linguaggio per la specifica delle operazioni sui dati.

Page 21: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 22: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Modello Relazionale: overview

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

Page 23: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 24: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 25: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 26: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 27: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma del Corso

Parte I: Modelli e Linguaggi per Basi di Dati

Il modello relazionale: concetti di base, vincoli di integrita' e chiavi.

Algebra e calcolo relazionali (cenni): operatori algebrici, calcolo relazionale su domini

Il linguaggio SQL: definizione dei dati, modifica dei dati, interrogazioni, definizione di viste, transazioni.

Page 28: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoNel corso, forniremo un’introduzione al mondo dei Sistemi Informativi e delle Basi di dati (DB) da quattro punti di vista differenti:

Utente come usare un DB (aggiungere/modificare informazioni, recuperare informazioni da un DB, etc).

Progettista come progettare un DB.

Sviluppatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI].

Progettista di DBMS come e’ fatto un DBMS [CENNI].

Page 29: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 30: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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

Q. Come procedere?

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

Page 31: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 32: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 33: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 34: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 35: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 36: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 37: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 38: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 40: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 41: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 42: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 43: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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.

Page 44: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoNel corso, forniremo un’introduzione al mondo dei Sistemi Informativi e delle Basi di dati (DB) da quattro punti di vista differenti:

Utente come usare un DB (aggiungere/modificare informazioni, recuperare informazioni da un DB, etc).

Progettista come progettare un DB.

Sviluppatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI].

Progettista di DBMS come e’ fatto un DBMS [CENNI].

Page 45: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma 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 46: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma 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 47: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma del Corso

Il Web Meta-Tier (MT) contiene un interprete di linguaggi di scripting server side. Tali linguaggi dispongono di librerie per:

Interfacciarsi con un DBMS, ed inserire codice SQL all’interno di uno script.

Generare dinamicamente il codice HTML, che deve essere poi visualizzato sul browser del client.

Page 48: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma 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 49: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma 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 50: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma 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 51: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma del Corso

Parte III: SQL per Applicazioni [cenni]

Esempi di DBMS: PostgreSQL, MySQL. Basi di Dati ed Applicazioni Web. SQL e Java: Java Database Connectivity

(JDBC)

Page 52: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del CorsoNel corso, forniremo un’introduzione al mondo dei Sistemi Informativi e delle Basi di dati (DB) da quattro punti di vista differenti:

Utente come usare un DB (aggiungere/modificare informazioni, recuperare informazioni da un DB, etc).

Progettista come progettare un DB.

Sviluppatore come sviluppare applicazioni Web/stand-alone che si interfaccino con un DB [CENNI].

Progettista di DBMS come e’ fatto un DBMS [CENNI].

Page 53: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 54: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Alcune operazioni su DB sono particolarmente delicate, e devono essere gestite in maniera opportuna, secondo la regola del tutto o niente.

Page 55: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Contenuti del Corso

Transazione unita’ elementare di lavoro in un DBMS (DBMS transazionali).

Proprieta’ ACIDE delle transazioni: Atomicita’ Consistenza Isolamento Persistenza

Come garantire tali proprieta’ in un DBMS?

Page 56: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Programma del Corso

Parte IV: Progettazione fisica e Struttura di un DBMS [cenni]

Strutture dati per la memorizzazione di tuple su memoria secondaria.

Transazioni: proprieta' ed implementazione.

Page 57: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Motivazioni del Corso

Q. Come posso utilizzare le competenze del corso?

SQL

Database

Java

.NET

Microsoft

Linux

Oracle

0 50 100 150 200 250 300 350

333

201

236

135

232

179

283

# di Offerte di Lavoro

Numero di risultati

Paro

la

Chia

ve d

ella R

icerc

a

Page 58: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Competenze Professionali

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

Q. Come posso utilizzare le competenze del corso?

Page 59: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Obiettivi del Corso

Fonte: Gartner, 2012

Page 60: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Esame del Corso

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

L’esame consiste di:

Calcolo del voto finale (senza orale):

Voto_Finale=0.75* Voto_Scritto + 0.25 * Voto_Progetto

Page 61: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 62: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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 2013”, indicando i nomi dei partecipanti.

Page 63: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

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

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

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

1 Febbraio 2013, 1 Marzo 2013, 1 Aprile 2013, 1 Giugno 2013, 1 Luglio 2013, 1 Ottobre 2013, 1 Dicembre 2013.

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 64: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Libri di Testo

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

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: Architetture ed evoluzione, 2ed, McGraw-Hill

Page 65: Basi di Dati e Sistemi Informativi Corso di Laurea in Informatica per il Management Universita di Bologna Docente: Marco Di Felice Home page del corso:

Suggerimenti

Seguire le lezioni in aula.

Controllare con regolarita’ la mailing list ed il sito del corso.

Utilizzare gli orari di ricevimento.

Essere propositivi!