Post on 12-Oct-2020
1
Sistemi Informativi L-A
Sistemi Informativi L-A
Anno Accademico 2009-2010
Home Page del corso:http://www-db.deis.unibo.it/courses/SIL-A/
Versione elettronica: Intro2009.pdf
Introduzione Sistemi Informativi L-A 2
Docente
Ilaria BartoliniDEIS - Facoltà di Ingegneria Viale Risorgimento, 2 - 40136, Bologna
Orario di ricevimento: � lunedì 16-18 (previo appuntamento)� c/o palazzina IEIIT (ex-CSITE)
Contatti:� Tel. 051 20 93550� email: i . bar t ol i ni @uni bo. i t� Web: ht t p: / / www- db. dei s. uni bo. i t / ∼∼∼∼i bar t ol i ni /
2
Introduzione Sistemi Informativi L-A 3
Obiettivi del corso
� Il corso intende fornire gli strumenti necessari per imparare a utilizzare le Basi di Dati relazionali, presentando le nozioni di base del modello relazionale e dei linguaggi relativi (algebra relazionale e SQL)
� Il corso è propedeutico a quello di Sistemi Informativi L-B, in cui l’accento viene viceversa posto su aspetti di progettazione e amministrazione di Basi di Dati
utilizzare…
…progettare…
…amministrare
Introduzione Sistemi Informativi L-A 4
Orario
� Orario delle Lezioni:� Giovedì 16-19 aula 6.2 (a partire da GIOVEDI' 01/10/09 utilizzeremo, a
settimane alterne, anche l’ora Q 15-16)� Orario del Laboratorio (LAB3):
� Venerdì 12-15 : esercitazione guidata dal tutor
Si inizia venerdì 06/11/09! �
N.B. È obbligatorio iscriversi mediante la lista UNIWEX entro il25/10/09!!
3
Introduzione Sistemi Informativi L-A 5
L’Home Page del corso
Contiene:� Copia dei lucidi in formato
PDF� Guida al lab.� Testi e soluzioni delle
esercitazioni svolte in lab.� Appelli d’esame� Testi e soluzioni di prove
d’esame� Regole d’esame� Bibliografia� Avvisi� …
ht t p: / / www- db. dei s. uni bo. i t / cour ses/ SI L- A/
Introduzione Sistemi Informativi L-A 6
Programma del corso: in aula
� Lezioni in aula:� Sistemi informativi� Sistemi di gestione di basi di dati (DBMS)� Il modello relazionale dei dati� L'algebra relazionale� Il linguaggio SQL (Structured Query Language) � L'interfaccia JDBC (Java Data Base Connectivity)
� Esercitazioni in aula:� Modello relazionale
� normalizzazione di strutture nidificate� L'algebra relazionale� Il linguaggio SQL � Applicazioni Java basate su JDBC
4
Introduzione Sistemi Informativi L-A 7
Programma del corso: in laboratorio
� Esercitazioni guidate dal tutor in laboratorio:� Il sistema IBM DB2 Universal Database (UDB)� Definizione di tabelle in DB2 UDB � Scrittura di interrogazioni da Command Center� Applicazioni Java basate su JDBC
� N.B. Il Laboratorio è parte integrante del corso!! Frequentarlo è importante:
� Alcune problematiche si capiscono meglio mettendo in pratica i concetti teorici appresi a lezione
� Acquisire manualità nell'uso di strumenti di gestione di basi di dati è fondamentale
Per saperne di più sulle regole generali di laboratorio si prega di consultare la guida sulla home page del corso
Introduzione Sistemi Informativi L-A 8
Testi consigliati
� Per sostenere l'esame è sufficiente il materiale reso disponibile sul sito� Per chiunque voglia comunque avere a disposizione delle fonti in cui gli
argomenti trattati a lezione vengono svolti in maniera più estesa sono consigliati i seguenti testi:
Testo consigliato:� P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. “Basi di Dati: modelli e linguaggi di
interrogazione”, terza edizione, McGraw-Hill Italia, 2009
Altri testi interessanti:� D. Chamberlin: “A Complete Guide to DB2 Universal Database”, Morgan Kaufmann� R. van der Lans: “Introduzione a SQL”, Addison-Wesley, 2001 � N. Gehani: “The Database Book: Principles & Practice using MySQL”, Silicon Press,
2006 � P. Ciaccia, D. Maio: “Lezioni di Basi di Dati”, Esculapio, 2001
5
Introduzione Sistemi Informativi L-A 9
Modalità d’esame (1/2)
� L'esame di Sistemi Informativi L-A viene svolto in laboratorio
� Tipicamente comprende:� scrittura di una semplice applicazione Java con SQL� risoluzione di interrogazioni SQL in modalità interattiva� esercizi di normalizzazione e algebra relazionale� domanda/e di teoria
� L'ammissione all'esame è subordinata all'iscrizione obbligatoria e vincolante dello studente tramite liste UNIWEX entro i termini prestabiliti
� La consegna dell'esame avviene in modalità telematica, mediante l'applicativo Web Esamix
Introduzione Sistemi Informativi L-A 10
Modalità d’esame (2/2)
� Regole generali:� In sede di esame non è possibile consultare testi, dispense, appunti,
ecc. pena l'annullamento della prova � Durante l'esame non è consentito uscire dalla sala terminali � Il voto acquisito in una prova ha validità illimitata nel tempo � Chi si iscrive a una prova perde l'eventuale voto precedentemente
acquisito� L'orale viene svolto su richiesta del docente� I risultati delle prove vengono esposti sul sito Web del corso� La verbalizzazione dei voti avviene periodicamente, in date che
saranno rese note sul sito del corso
6
Introduzione Sistemi Informativi L-A 11
Appelli d’esame
Ciclo Appello Data
I 1 15 Gennaio 2010: ore 9 LAB3
I 2 29 Gennaio 2010: ore 9 LAB3
I 3 19 Febbraio 2010: ore 9 LAB3
… … …
Introduzione Sistemi Informativi L-A 12
Sistemi Informativi
� Un sistema informativo (SI) è un componente di una organizzazione(azienda, ente, …) il cui scopo è gestire le informazioni utili per gli scopi dell’organizzazione stessa
GESTIRE = acquisire, elaborare, conservare, produrre, distribuire
� L’informazione è un bene a valore crescente, necessario per pianificare e controllare con efficacia le attività dell’organizzazione, e rappresenta la materia prima che viene trasformata dai sistemi informativi, così come i semilavorati vengono trasformati dai sistemi di produzione
Processoproduttivo
Sistemainformativo informazione
prodotto finito
7
Introduzione Sistemi Informativi L-A 13
Il valore dell’informazione
� L’informazione è una risorsa alla stessa stregua del capitale, delle materie prime, degli impianti e delle persone, e come queste ha un costo
� È quindi importante capire il valore effettivo dell’informazione
� Il livello più basso nella scala dei valori lo occupano i “dati grezzi”, che possono definirsi informazione solo se interpretati nel giusto contesto
“Mario”, “Rossi” e “12345” sono dati
Lo studente Mario Rossi ha numero di matricola 12345 è informazione
Quantità
Valore indicazioni strategiche
rapporti
informazioni selezionate
Fonti informative primarie
Introduzione Sistemi Informativi L-A 14
Sistemi Informativi e Sistemi Informatici
� Un SI gestisce informazioni, ma ciò non significa necessariamente fare ricorso a strumenti automatici propri della tecnologia dell’informazione (IT)
Banche e servizi anagrafici esistono da secoli!
� La parte automatizzata di un SI viene più propriamente denominata Sistema Informatico
Sistema informativo
Sistema informatico
8
Introduzione Sistemi Informativi L-A 15
Dati e Basi di Dati
� Il modo più comune con cui un sistema informatico gestisce le informazioni è attraverso la rappresentazione codificata dei dati di interesse
� Intuitivamente, una Base di Dati (DB - Data Base o Database) può pensarsi come una collezione di dati che rappresentano le informazioni di interesse per un’organizzazione
� In termini più precisi, un DB è una collezione di dati gestita da un DBMS
DBMS = Data Base Management System
Sistema informativo
Sistema informatico
DBMS
Dati
Introduzione Sistemi Informativi L-A 16
Dati e applicazioni: il ruolo dei DBMS
� In qualsiasi organizzazione sono molteplici le applicazioni del sistema informatico che utilizzano gli stessi dati (o quasi)
I mmat r i col azi one, Regi st r azi oneEsami , DomandaLaur ea, Pi ani di St udi o, …
sono tutte procedure applicative che condividono i dati di uno studente� Un DBMS è un sistema software in grado di gestire collezioni di dati che
sono condivise da più applicazioni e utenti (e molto altro ancora…)
DBMS
Dati
Applicazione Applicazione Applicazione Applicazione
9
Introduzione Sistemi Informativi L-A 17
DBMS: caratteristiche di base
� Le caratteristiche di un DBMS non si limitano ovviamente alla sola condivisione dei dati e verranno trattate nel seguito con maggior dettaglio
� … ma è importante avere chiaro da subito che un DBMS:� è in grado di gestire grandi quantità di dati (Giga-Tera byte e oltre)� è in grado di garantirne la persistenza (anche a fronte di guasti)� offre una “visione strutturata” dei dati che dipende dal modello (logico)
dei dati supportato
RDBMS = DBMS che supporta il modello relazionale dei dati
Modello relazionale � i dati sono rappresentati in forma tabellare
Introduzione Sistemi Informativi L-A 18
Uno sguardo al mercato dei DBMS
� Oggi il mercato dei DBMS (il cui fatturato si aggira intono a 8x109 US$) è dominato da un numero ristretto di produttori:
� Oracle� IBM (DB2 UDB)� Microsoft (SQL Server)� Sybase
� A questi se ne aggiungono altri del mercato “open-source”: � mySQL� PostgreSQL� InterBase
� Il fatturato globale del mercato dei DBMS (di cui l’80% è imputabile ai RDBMS) cresce di un fattore > 10% ogni anno
10
Introduzione Sistemi Informativi L-A 19
Applicazioni dei Data Base
DBMS Market Share
Introduzione Sistemi Informativi L-A 20
11
Quanto sono grandi i Data Base?
Introduzione Sistemi Informativi L-A 21
Fonte: Winter Corporation, 2005
Quante “righe”contengono i Data Base?
Introduzione Sistemi Informativi L-A 22
Fonte: Winter Corporation, 2005
12
Quanto vengono usati i Data Base?
Introduzione Sistemi Informativi L-A 23
Fonte: Winter Corporation, 2005
Peak Workload measures the peak SQL statements or database operations per hour
Circa 300000/sec!
Introduzione Sistemi Informativi L-A 24
Uno sguardo al corso
� Ricordiamo che esistono (almeno) 3 “punti di vista” possibili:
� Utente, ovvero come usare un DB� Richiede la conoscenza del modello dei dati, dei linguaggi supportati
dal DBMS e delle modalità con cui un’applicazione può collegarsi a un DB
� Progettista, ovvero come progettare un DB� È necessario capire come i requisiti informativi di un’organizzazione
complessa possono tradursi in strutture concrete
� Amministratore, ovvero come amministrare un DB� Richiede anche conoscenze su come è fatto un DBMS (in particolare
per motivi di efficienza)
13
Introduzione Sistemi Informativi L-A 25
Il Data Base della JLUNGA
� Molte operazioni “semplici” di registrazione delle vendite� Complesse operazioni di analisi delle vendite:
� Importo complessivo delle vendite� Importo vendite per giorno, cassa, fascia oraria, ...� Correlazioni di vendita (chi compra il panettone, spesso compra anche lo
spumante)
L’obiettivo è permettere alle applicazioni di specificare queste operazioni nel modo più “uniforme” possibile e senza conoscere i dettagli dell’organizzazione fisica dei dati
Data Ora Cassa Prodotto Qtà Importo20-12-1997 17:53 21 Panettone GnamGnam 1Kg 2 2600020-12-1997 17:53 21 Spumante Bollicin 1 lt. 5 6000020-12-1997 18:01 21 Dentifricio WhiteTeeth 1 340020-12-1997 18:02 15 Spumante Bollicin 1 lt. 2 2400021-12-1997 9:06 3 Caffè BlackMoka 250 gr. 1 4100
Introduzione Sistemi Informativi L-A 26
Un esempio: le casse il 20/12/1997
� Usando i file
openf i l e( f , ` mypat h/ myf i l e’ ) ;
f or i =1 t o num_casse
do somma[ i ] = 0;
whi l e not eof ( f ) do
r ead( f , r ec) ;
i f r ec. Dat a = ` 20/ 12/ 1997’ t hen somma[ r ec. Cassa] +=
r ec. I mpor t o
enddo;
cl osef i l e( f ) ;
f or i =1 t o num_casse
do pr i nt ( i , somma[ i ] ) ;
� Usando DBMS e SQL
Sel ect Cassa, sum( I mpor t o) As Tot al e
Fr om I ncassi
Wher e Dat a = ‘ 20/ 12/ 1997’
Gr oup by Cassa;
Cassa Totale21
153
350265
415320234150
14
Introduzione Sistemi Informativi L-A 27
Un altro esempio: la cassa 21 nel 1997
openfile(f,`mypath/myfile’);for i=1 to 365 * num_prodottido somma[i] = 0;
while not eof(f) doread(f,rec);if rec.Cassa = 21 andyear(rec.Data) = 1997 then
i = converti(rec.Data, rec.Prodotto); somma[i] += rec.Importo
enddo;closefile(f);for i=1 to 365 * num_prodottido print(i,somma[i]);
Sel ect Dat a, Pr odot t o, sum( I mpor t o)
Fr om I ncassi
Wher e Cassa = 21
And year ( Dat a) = 1997
Gr oup by Dat a, Pr odot t o
Or der by Dat a, Pr odot t o;
Introduzione Sistemi Informativi L-A 28
… ma anche SQL può essere complesso!
� Ad esempio, se si vuole trovare, per ogni cassa, il prodotto più venduto il 27/09/2001:
Cr eat e Vi ew CP( Cassa, Pr odot t o, SumQt a)
As Sel ect Cassa, Pr odot t o, sum( I mpor t o)
Fr om I ncassi
Wher e Dat a = ` 27/ 09/ 2001’
Gr oup by Cassa, Pr odot t o;
Sel ect Cassa, Pr odot t o
Fr om CP
Wher e SumQt a = ( Sel ect max( CP1. SumQt a)
Fr om CP As CP1
Wher e CP1. Cassa = CP. Cassa) ;
15
Introduzione Sistemi Informativi L-A 29
Come usare SQL (1)
� Le istruzioni SQL possono essere eseguite interattivamente…
Introduzione Sistemi Informativi L-A 30
Come usare SQL (2)
� … o inserendole nel codice di un’applicazione scritta in un linguaggio di programmazione “ospite” (ad es. Java)
Syst em. out . pr i nt l n( " Ret r i eve some dat a f r om t he dat abase. . . " ) ;
St at ement st mt = con. cr eat eSt at ement ( ) ;
Resul t Set r s = st mt . execut eQuer y( " SELECT * FROM empl oyee" ) ;
/ / di spl ay t he r esul t set
whi l e ( r s. next ( ) ) {
St r i ng a = r s. get St r i ng( 1) ;
St r i ng st r = r s. get St r i ng( 2) ;
Syst em. out . pr i nt ( " empno= " + a) ;
Syst em. out . pr i nt ( " f i r st name= " + st r ) ;
Syst em. out . pr i nt ( " \ n" ) ;
}
r s. c l ose( ) ;
st mt . c l ose( ) ;
16
Introduzione Sistemi Informativi L-A 31
Riassumiamo:
� Un DB è una collezione di dati (ad es. rappresentati in forma di tabelle) che rappresentano le informazioni di interesse per un’organizzazione
� Progettare un DB significa trovare un “buon modo” per strutturare i dati, che rispetti sia i requisiti propri del Sistema Informativodell’organizzazione sia i vincoli che sui dati vengono imposti
� Un DBMS è un sistema software che gestisce DB � Per eseguire operazioni su un DB è necessario scrivere istruzioni in un
linguaggio (tipicamente dichiarativo: SQL) supportato dal DBMS