informatica b - infob2014electriceng.files.wordpress.com · la disponibilità di dati ha reso...
TRANSCRIPT
© 2006 Impianti di Elaborazione 2
Informazioni e dati
n Dato: elemento semanticamente significativo (data, codice, ecc.), generalmente in formato numerico o testuale, che l’azienda è interessata a registrate in forma permanente
n Informazione: insieme di dati, elaborazioni di dati o dati inseriti all’interno di un contesto che rappresentano un valore per l’impresa
n Ruolo critico dei dati nelle organizzazioni n Inizialmente erano utilizzati per specifiche applicazioni
n Contabilità n Vendite n Produzione (distinta base e piano di produzione)
n Cresce, anche per ragioni tecnologiche, la possibilità e la disponibilità di dati nelle aziende
n La disponibilità di dati ha reso possibili nuove procedure in azienda (es. sistemi di controllo di gestione, business intelligence)
n I dati hanno caratteristiche più stabili rispetto alle procedure, manuali o automatizzate, che operano su di essi (si pensi alle applicazioni bancarie)
© 2006 Impianti di Elaborazione 3
Dal dato all’informazione
n Dato: <Stefano Ceri, Basi di dati, IIIA, I Sem> n Informazione:
n Chi insegna basi di dati? Stefano Ceri n Quando si tiene il corso? Al I semestre del III anno.
© 2006 Impianti di Elaborazione 4
Basi di dati e sistemi di gestione di basi di dati
n Non esiste un’unica definizione formale n Base dati: raccolta di dati e/o informazioni permanenti organizzata secondo uno
schema predeterminato n Su una base dati è possibile effettuare operazioni quali:
n Inserimento n Cancellazione n Aggiornamento n Interrogazioni
n Sistema di gestione di una base dati (DBMS, Database Management System): sistema software in grado di gestire collezioni di dati che siano
n Grandi n Condivise n Persistenti n Affidabili n Private
n I DBMS consentono n Immissione, Memorizzazione, Cancellazione dei dati n Accesso, Elaborazione,Trasferimento: dai dati all'informazione n Presentazione, Visualizzazione dell'informazione
© 2006 Impianti di Elaborazione 5
Confronto con architetture con/senza DBMS
n principale differenza: gestione dei dati unitaria e a più alto livello (tramite linguaggi specializzati)
software applicativo sistema operativo
software applicativo DBMS sistema operativo
file (distinti)
database (unico)
© 2006 Impianti di Elaborazione 6
Base di dati e file system a confronto
PROGRAMMA APPLICATIVO
FILE SYSTEM
DATI
DATI
DATI
DATI
DATI
DATI
PROGRAMMA APPLICATIVO
DATI
PROGRAMMA APPLICATIVO
PROGRAMMA APPLICATIVO
PROGRAMMA APPLICATIVO
PROGRAMMA APPLICATIVO
DBMS
© 2006 Impianti di Elaborazione 7
Modello dei dati
n “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”
n Ogni modello di dati fornisce meccanismi di strutturazione (analoghi ai costruttori di tipo dei linguaggi di programmazione) che permettono la definizione di nuovi tipi di dato
n Esistono vari modelli di dati n Ad oggi il modello più diffuso nei prodotti disponibili sul mercato è il
modello relazionale
© 2006 Impianti di Elaborazione 8
Cronologia del modello relazionale
n Inventato da T. Codd del 1970 presso IBM Research di Santa Teresa (California)
n Primi progetti: n SYSTEM R (IBM) n Ingres (Berkeley Un.)
n Prime scoperte tecnologiche 1978 – 1980 n Primi sistemi commerciali: inizio anni ’80
n Oracle n IBM-SQL DS e DB2 n Ingres n Informix n Sybase
n Successo commerciale: dal 1985 ad oggi
© 2006 Impianti di Elaborazione 9
Il modello relazionale: tabelle
n Meccanismo di strutturazione: Tabella n Lo “schema” definisce la struttura della tabella, con “istanza” si definiscono
invece i contenuti della tabella n Ogni riga è una “tupla” di n elementi (qui 4) n Le colonne vengono anche dette “attributi” o domini (tipo)
riga
schema
istanza
MATR
123
307
415
702
NOME
Paolo
Massimo
Andrea
Fabio
COGNOME
Rossi
Verdi
Ferrari
Rossi
CORSO
Ges
Ges
Inf
Inf
NOME
Paolo
Massimo
Andrea
Fabio
colonna
© 2006 Impianti di Elaborazione 10
MODELLI LOGICI DEI DATI
n RELAZIONALE n I DATI SONO RAPPRESENTATI COME SEQUENZE DI VALORI DI
ATTRIBUTI n DATI CARATTERIZZATI DALLE STESSE SEQUENZE DI ATTRIBUTI SONO
RAGGRUPPATI IN TABELLE n LE ASSOCIAZIONI TRA I DATI SONO OTTENUTE ASSOCIANDO VALORI DI
ATTRIBUTI IN TABELLE DIVERSE
RELAZIONALE
Interrogazioni • Quali professori hanno esaminato Carlo?
studente MATR 123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
INDIR Inf
Inf
Log
esame MATR
123 123
702
COD- CORSO
1 2
2
DATA
7-9-03 8-1-03
7-9-03
VOTO
10 8
5
corso COD-
CORSO 1 2
TITOLO
matematica informatica
DOCENTE
Barozzi Meo
Interrogazioni • Quali studenti hanno preso 10 in matematica?
studente MATR
123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
INDIR Inf
Inf
Log
esame MATR
123 123
702
COD- CORSO
1 2
2
DATA
7-9-03 8-1-03
7-9-03
VOTO
10 8
5
corso COD-
CORSO 1 2
TITOLO
matematica informatica
DOCENTE
Barozzi Meo
© 2006 Impianti di Elaborazione 15
Come si usa un DBMS ?
n a definendo la struttura generale dei dati n b definendo le specifiche operazioni sui dati
STRUTTURA DEI DATI SUI CONTI CORRENTI conto corrente di Giorgio Rossi conto corrente di Paolo Bianchi ……………………………………….
schema
istanza
© 2006 Impianti di Elaborazione 16
Schemi e istanze
n Schema: parte sostanzialmente invariante della base dati, descrive le caratteristiche dei dati
n Istanza (o stato): parte variabile, comprende i valori effettivi, è destinata cambiare nel tempo
studente
MATR 123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
Corso Inf
Inf
Log
© 2006 Impianti di Elaborazione 17
Nozione di chiave
Sottoinsieme degli attributi dello schema che ha la proprieta' di unicita' e minimalita' unicita': non esistono due tuple con chiave uguale minimalita': sottraendo un qualunque attributo alla chiave si perde la proprieta' di unicita'
© 2006 Impianti di Elaborazione 18
Chiavi nell'esempio: gestione degli esami universitari
MATR COD-CORSO DATA VOTO
COD-CORSO TITOLO DOCENTE
studente
corso
esame
MATR NOME CITTA’ C-DIP
© 2006 Impianti di Elaborazione 19
Con molteplici chiavi
una e' definita CHIAVE PRIMARIA le rimanenti chiavi sono SECONDARIE CLIENTE (COD-CLIENTE,INDIRIZZO,P-IVA) Chiave primaria: COD-CLIENTE Chiave secondaria: P-IVA
Importanza delle chiavi
n L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati
n Ogni singolo valore è univocamente accessibile tramite: n nome della relazione n valore della chiave n nome dell’attributo
n Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni diverse (“il modello relazionale è basato su valori”)
© 2006 Impianti di Elaborazione 21
Vincoli di integrità referenziale
n Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R1 compaiono come valori delle chiavi (primaria) dell’istanza di R2
n Casi più complicati si verificano quando: n La chiave è composta da più attributi n Vi sono più chiavi
© 2006 Impianti di Elaborazione 22
Esempio
Infrazioni Codice 143256
987554
987557
630876
539856
Data 25-10-92
26-10-92
26-10-92
15-10-92
12-10-92
Agente 567
456
456
456
567
Provincia RM
RM
RM
MI
MI
Agenti Auto
Numero 4E5432
4E5432
2F7643
2F7643
2F7643
Cognome Rossi
Neri
Neri
Nome Mario
Luigi
Piero
Provincia RM
RM
RM
MI
Numero 2F7643
1A2396
4E5432
2F7643
Proprietario
Verdi Piero
Verdi Piero Bini Luca
Bini Luca
Matricola 567
456
638
© 2006 Impianti di Elaborazione 23
Esempio
Infrazioni Codice 143256
987554
987557
630876
539856
Data 25-10-92
26-10-92
26-10-92
15-10-92
12-10-92
Agente 567
456
456
456
567
Provincia RM
RM
RM
MI
MI
Agenti Auto
Numero 4E5432
4E5432
2F7643
2F7643
2F7643
Cognome Rossi
Neri
Neri
Nome Mario
Luigi
Piero
Provincia RM
RM
RM
MI
Numero 2F7643
1A2396
4E5432
2F7643
Proprietario
Verdi Piero
Verdi Piero Bini Luca
Bini Luca
Matricola 567
456
638
© 2006 Impianti di Elaborazione 24
Esempio
Infrazioni Codice 143256
987554
987557
630876
539856
Data 25-10-92
26-10-92
26-10-92
15-10-92
12-10-92
Agente 567
456
456
456
567
Provincia RM
RM
RM
MI
MI
Agenti Auto
Numero 4E5432
4E5432
2F7643
2F7643
2F7643
Cognome Rossi
Neri
Neri
Nome Mario
Luigi
Piero
Provincia RM
RM
RM
MI
Numero 2F7643
1A2396
4E5432
2F7643
Proprietario
Verdi Piero
Verdi Piero Bini Luca
Bini Luca
Matricola 567
456
638
© 2006 Impianti di Elaborazione 25
Esempio
Infrazioni Codice 987554
630876
Data 26-10-92
15-10-92
Agente 456
456
Provincia RM
FI
Agenti Auto
Numero 2F7643
4E5432
Matricola 567
638
Cognome Rossi
Neri
Nome Mario
Piero
Provincia RM
FI
MI
Numero 1A2396
4E5432
2F7643
Proprietario
Verdi Piero
Bini Luca Luci Gino
© 2006 Impianti di Elaborazione 26
SQL
n Il nome sta per Structured Query Language n E’ più di un semplice linguaggio di query: si compone di una parte Data
Definition Language (DDL) e di una Data Manipulation Language (DML) n DDL: definizione di domini, tabelle, indici, autorizzazioni, viste, vincoli,
procedure, trigger n DML: linguaggio di query, linguaggio di modifica, comandi transazionali
© 2006 Impianti di Elaborazione 27
SQL come linguaggio di interrogazione
n Le interrogazioni SQL sono dichiarative n l’utente specifica quale informazione è di suo interesse, ma non come estrarla
dai dati n Le interrogazioni vengono tradotte dall’ottimizzatore (query optimizer) nel
linguaggio procedurale interno al DBMS n Il programmatore si focalizza sulla leggibilità, non sull’efficienza n È l'aspetto più qualificante delle basi di dati relazionali
© 2006 Impianti di Elaborazione 28
Interrogazioni SQL
n Le interrogazioni SQL hanno una struttura select-from-where n Sintassi:
select AttrEspr [[ as ] Alias ] {, AttrEspr [[ as ] Alias ] } from Tabella [[ as ] Alias ] {, Tabella [[ as ] Alias ] } [ where Condizione ]
n Le tre parti della query sono chiamate: n clausola select / target list n clausola from n clausola where
n La query effettua il prodotto cartesiano delle tabelle nella clausola from, considera solo le righe che soddisfano la condizione nella clausola where e per ogni riga valuta le espressioni nella target list
© 2006 Impianti di Elaborazione 29
Esempio: gestione degli esami universitari
Studente MATR 123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
CDIP Inf
Inf
Log
Esame MATR
123 123
702
COD- CORSO
1 2
2
DATA
7-9-97 8-1-98
7-9-97
VOTO
30 28
20
Corso COD-
CORSO 1 2
TITOLO
matematica informatica
DOCENTE
Barozzi Meo
© 2006 Impianti di Elaborazione 30
MATR 123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
CDIP Inf
Inf
Log
Interrogazione semplice
select * from Studente
© 2006 Impianti di Elaborazione 31
Interrogazione semplice
select Nome from Studente where CDip = ’Log’
NOME Antonio
© 2006 Impianti di Elaborazione 32
Sintassi nella clausola select
select * select Nome, Città select distinct Città select Città as LuogoDiResidenza select RedditoCatastale * 0.05 as TassaImu select sum(Salario)
© 2006 Impianti di Elaborazione 33
Sintassi della clausola from
from Studente from Studente as X from Studente, Esame from Studente join Esame on Studente.Matr=Esame.Matr
© 2006 Impianti di Elaborazione 34
Sintassi della clausola where
n Espressione booleana di predicati semplici n Alcuni predicati aggiuntivi:
n between: Data between 1-1-90 and 31-12-99
© 2006 Impianti di Elaborazione 35
Congiunzione di predicati
n Estrarre gli studenti di informatica originari di Bologna: select * from Studente where CDip = ’Inf’ and Città = ’Bologna’
n Risultato:
Matr 123
Nome Carlo
Città Bologna
CDip Inf
© 2006 Impianti di Elaborazione 36
Operatore like
n Estrarre gli studenti con un nome che ha una ‘a’ in seconda posizione e finiscono per ‘o’: select * from Studente where Nome like ’_a%o’
n Risultato:
Matr 123
Nome Carlo
Città Bologna
CDip Inf
© 2006 Impianti di Elaborazione 37
Matr 123
415
Disgiunzione di predicati
n Estrarre gli studenti originari di Bologna o di Torino: select * from Studente where Città = ’Bologna’ or Città = ’Torino’
n Risultato:
Nome Carlo
Paola
Città Bologna
Torino
CDip Inf
Inf
© 2006 Impianti di Elaborazione 38
Espressioni booleane
n Estrarre gli studenti originari di Roma che frequentano il corso in Informatica o in Logistica:
select * from Studente where Città = ’Roma’ and (CDip = ’Inf’ or CDip = ’Log’)
n Risultato:
Matr 702
Nome Antonio
Città Roma
CDip Log
© 2006 Impianti di Elaborazione 39
Duplicati
n In SQL, le tabelle prodotte dalle interrogazioni possono contenere più righe identiche tra loro
n I duplicati possono essere rimossi usando la parola chiave distinct
© 2006 Impianti di Elaborazione 40
select distinct CDip from Studente
select CDip from Studente
CDip Inf
Log
CDip Inf
Inf
Log
Duplicati
© 2006 Impianti di Elaborazione 41
Clausola from
Realizza il prodotto cartesiano R × S
select * from R,S
E’ una tabella: • schema : gli attributi di R e S (grado(RxS)= grado(R)+grado(S)) • istanza : tutte le possibili coppie di tuple di R e S (card(RxS)=card(R)*card(S))
© 2006 Impianti di Elaborazione 42
Esempio
A a b
B 1 3
C c b a
D 1 3 2
R1(A,B) R2(C,D)
D 1 3 21 3 2
A a a a b b b
B 1 1 1 3 3 3
C c b a c b a
R1xR2 (A,B,C,D)
© 2006 Impianti di Elaborazione 43
Interrogazione con due tabelle
select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = ’Inf’ and Voto = 30
Estrarre il nome degli studenti di “Informatica” che hanno preso almeno un 30
© 2006 Impianti di Elaborazione 44
Interrogazione semplice con due tabelle
Studente MATR 123
415
702
NOME Carlo
Paola
Antonio
CITTA’ Bologna
Torino
Roma
CDIP Inf
Inf
Log
Esame MATR
123 123
702
COD- CORSO
1 2
2
DATA
7-9-97 8-1-98
7-9-97
VOTO
30 28
20
© 2006 Impianti di Elaborazione 45
Interrogazione semplice con due tabelle
MATR 123
123
123
415
415 415
702
702
702
NOME Carlo
Carlo
Carlo
Paola
Paola Paola
Antonio
Antonio
Antonio
CITTA’ Bologna
Bologna
Bologna
Torino
Torino Torino
Roma
Roma
Roma
CDIP Inf
Inf
Inf
Inf
Inf Inf
Log
Log
Log
MATR 123
123
702
123
123 702
123
123
702
COD-CORSO 1
2
2
1
2 2
1
2
2
DATA 7-9-97
8-1-98
7-9-97
7-9-97
8-1-98 7-9-97
7-9-97
8-1-98
7-9-97
VOTO 30
28
20
30
28 20
30
28
20
© 2006 Impianti di Elaborazione 46
Interrogazione semplice con due tabelle
select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = ’Inf’ and Voto = 30
Estrarre il nome degli studenti di “Informatica” che hanno preso almeno un 30
NOME Carlo
© 2006 Impianti di Elaborazione 47
Join di due tabelle
select Nome from Studente join Esame on Studente.Matr = Esame.Matr where CDip = ’Inf’and Voto = 30
select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = ’Inf’ and Voto = 30
© 2006 Impianti di Elaborazione 48
Interrogazione semplice con tre tabelle
n Estrarre il nome degli studenti che hanno preso 30 in Matematica
select Nome from Studente, Esame, Corso where Studente.Matr = Esame.Matr
and Corso.CodCorso = Esame.CodCorso and Titolo = ’Matematica' and Voto = 30
NOME Carlo