Informatica B - infob2014electriceng.files.wordpress.com · La disponibilità di dati ha reso...

48
Informatica B Introduzione alle Basi di Dati e ai DBMS

Transcript of Informatica B - infob2014electriceng.files.wordpress.com · La disponibilità di dati ha reso...

Informatica B Introduzione alle Basi di Dati e ai DBMS

© 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