Basi di dati -...

44
1 Facoltà di Farmacia - Corso di Informatica Versione: 13/03/2007 Basi di dati Riferimenti: Curtin cap. 8

Transcript of Basi di dati -...

Page 1: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

1Facoltà di Farmacia - Corso di Informatica

Versione: 13/03/2007

Basi di dati

Riferimenti: Curtin cap. 8

Page 2: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

2Facoltà di Farmacia - Corso di Informatica

Basi di dati (Database, DB)

•Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici•Avete già interagito (inconsapevolmente?) con DB: anagrafe, biblioteca, banca, voti degli esami, prenotazioni voli, treni, cinema, concerti…•Problema: memorizzare grandi quantitmemorizzare grandi quantità à di informazionidi informazioni in modo da facilitare la modificamodifica e il reperimentoreperimento

Page 3: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

3Facoltà di Farmacia - Corso di Informatica

Basi di dati•Prima soluzionePrima soluzione: il file system (magari in file di testo)•Svantaggi:

–Organizzazione dei file a carico dell’utente (categorizzazione dei dati per poterli reperire)–Dati non strutturati: come confrontarli e elaborarli?–Quando si hanno molti dati, i file diventano difficili da gestire

•Seconda soluzioneSeconda soluzione: foglio elettronico•Svantaggi:

–Difficile condivisione tra più utenti–Difficile reperire informazioni

•Quindi: Basi di datiBasi di dati

Page 4: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

4Facoltà di Farmacia - Corso di Informatica

Basi di dati•“Magazzini” di dati•Un DB è un grande insieme di dati organizzati e memorizzati in forma strutturata e omogenea

•Strutturata:es. anagrafe: nome, cognome, data di nascita, …

•Omogenea: es. anagrafe: per ogni persona mantengo le stesse informazioni

Page 5: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

5Facoltà di Farmacia - Corso di Informatica

Basi di dati•DB adatti a memorizzare dati omogenei che devono essere strutturati; ad es.

– ok dati anagrafe– no testo di un libro

•DB gestiti da DBMS (DataBase Management System, sistema di gestione di basi di dati)

Page 6: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

6Facoltà di Farmacia - Corso di Informatica

Basi di datiUn DBMS gestisce insiemi di dati:a. grandib. persistentic. condivisigarantendoa. affidabilitàb. privatezza c. efficienzad. efficacia

Page 7: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

7Facoltà di Farmacia - Corso di Informatica

Le basi di dati sono… grandi

a.a. DimensioniDimensioni: un DB può avere dimensioni di 1000 Gigabyte⇒ DBMS deve gestire dati su memoria secondaria

Page 8: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

8Facoltà di Farmacia - Corso di Informatica

Le basi di dati sono… persistenti

b.b. PersistenzaPersistenza: i dati hanno un tempo di vita che non è limitato a quello delle singole esecuzioni delle applicazioni

Page 9: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

9Facoltà di Farmacia - Corso di Informatica

Le basi di dati sono… condivise

c.c. CondivisioneCondivisione: i dati di un DB devono essere condivisibili da più utenti che utilizzano varie applicazioni (es. azienda con magazzino)L’accesso si deve svolgere secondo opportune modalità

Page 10: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

10Facoltà di Farmacia - Corso di Informatica

ProblemiConcorrenza: nello stesso tempo più transazioni (sequenze di operazioni sul DB) possono richiedere e/o modificare il medesimo dato

Ridondanza: informazioni ripetuteIncoerenza: errori di “allineamento” dei daties.: se due assegni vengono incassati contemporaneamente sullo stesso c/c, non bisogna trascurarne nessuno

Page 11: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

11Facoltà di Farmacia - Corso di Informatica

Le basi di dati sono… condivise

Applicazione Applicazione Applicazione Applicazione Applicazione

Utente 1 Utente 2 Utente 3 Utente 4

DBMS

DB

Page 12: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

12Facoltà di Farmacia - Corso di Informatica

Le basi di dati garantiscono… affidabilità

d.Affidabilità: il DBMS garantisce il contenuto del DB in caso di malfunzionamenti hw o sw•I DBMS danno backup e recovery

Page 13: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

13Facoltà di Farmacia - Corso di Informatica

Le basi di dati garantiscono… privatezza

e.Privatezza: gli utenti svolgono solo determinate azioni sui dati, con meccanismi di autorizzazioneEs. biblioteca: a. il lettore ha diritto di lettura e ricerca dei

dati, ma non di modifica/inserimento; b. il bibliotecario ha diritto di modificare i

dati: deve aggiungere/togliere libri e segnalare i prestiti

Page 14: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

14Facoltà di Farmacia - Corso di Informatica

Le basi di dati garantiscono… efficienza

f. Efficienza: le operazioni devono essere svolte in tempi accettabili per l’utente (molto brevi!) nonostante la grande mole di dati

Page 15: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

15Facoltà di Farmacia - Corso di Informatica

Le basi di dati garantiscono… efficacia

g. Efficacia: cercano di rendere produttiva l’attività dell’utente, offrendo funzionalità articolate, potenti e flessibili

Page 16: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

16Facoltà di Farmacia - Corso di Informatica

Utenti del Database

•L’amministratore della base di dati (database administrator, DBA) è il responsabile della progettazione, controllo e amministrazione della base di dati•Progettisti e programmatori di applicazioni•Utenti

Page 17: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

17Facoltà di Farmacia - Corso di Informatica

•Introdotto nel 1970•Affermato negli anni ’80•Attualmente è il modello di DB più diffuso: probabilmente ogni DB che incontrerete sarà relazionale

Modello relazionale

Page 18: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

18Facoltà di Farmacia - Corso di Informatica

Modello relazionale

Il modello relazionale si basa sull'algebra delle relazioni fra i dati.

Che cosa e' una relazione?

Si definisce a partire dalla teoria degli

insiemi.

Page 19: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

19Facoltà di Farmacia - Corso di Informatica

Consideriamo 2 insiemi A=(a, b, c) e Y=(1,2):

il prodotto cartesiano A x Y e' l'insieme formato da

tutte le possibili coppie formate da un elemento di A e da uno di Y,

cioè

AxY=(<a,1>, <a,2>, <b,1>, <b,2>, <c,1>, <c,2>)

Modello relazionale

Page 20: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

20Facoltà di Farmacia - Corso di Informatica

Una relazione e' un sottoinsieme di AxY definitoattraverso una legge (o regola). Ad esempio definiamo R1 la relazione che associa ad a e c il numero 1 e a b il numero 2, allora

R1=(<a,1>, <c,1>, <b,2>)

Notiamo come una relazione selezioni gli elementi del prodotto cartesiano: per quello che ci riguarda

una relazione definisce l'insieme delle caratteristiche di un dato in termini matematici

Page 21: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

21Facoltà di Farmacia - Corso di Informatica

Un esempio....

Page 22: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

22Facoltà di Farmacia - Corso di Informatica

Come nei fogli elettronici, sono organizzati in tabelle

Es.: tabella Studenti del database di una università

Modello relazionale: struttura dei dati

Page 23: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

23Facoltà di Farmacia - Corso di Informatica

Modello relazionale: struttura dei dati

Le entità (i fatti) compongono le righe (record)

Le caratteristiche delle entità sono le (intestazioni delle) colonne (attributi)

Il valore di un attributo per una specifica entità compone le celle (campi)

Tutti i record di una tabella hanno lo stesso formato, cioè gli stessi attributi

Page 24: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

24Facoltà di Farmacia - Corso di Informatica

Modello relazionale: struttura dei dati

record

campo

attributo

Page 25: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

25Facoltà di Farmacia - Corso di Informatica

Tabelle, Record e Campi•A ogni campo sono associati:

– nome– lunghezza– tipo di dato (numero, data, caratteri)

•Es. campo “Città”:– nome: Città– lunghezza: 30 caratteri– tipo di dato: caratteri

Page 26: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

26Facoltà di Farmacia - Corso di Informatica

Campo chiave (chiave primaria)

In una tabella devono essere definiti uno o più campi attraverso i quali è possibile distinguere sempre qualsiasi coppia di record di una stessa tabellaEs.:• numero di matricola• codice fiscale• nome, cognome, data di nascita e luogo di nascita (forse insufficiente)

Page 27: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

27Facoltà di Farmacia - Corso di Informatica

Utilità dei DB•I programmi che abbiamo visto finora (word processor, fogli elettronici) hanno funzionalità che hanno anche i DB: ordinamento, tabelle di dati•I dati rappresentati da questi programmi sono difficilmente condivisibili da applicazioni diverse•Questo comporta ridondanza e duplicazione di informazioni

Page 28: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

28Facoltà di Farmacia - Corso di Informatica

Esempio di ridondanza in un DB

Tabella Esami

Ridondante: i dati degli studenti sono ripetuti per ogni esame

Se uno studente cambiasse domicilio, bisognerebbe modificare più record

Page 29: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

29Facoltà di Farmacia - Corso di Informatica

Svantaggi della duplicazione

•La duplicazione comporta svantaggi– aumenta i dati da inserire– aumenta il rischio di errori (consistenza dei dati: per esempio, stessa data di nascita per la stessa persona, ovunque sia inserita)– usa più spazio di memoria secondaria

Page 30: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

30Facoltà di Farmacia - Corso di Informatica

Esempio di ridondanza in un DBCome eliminare la ridondanza?Usando più tabelle legate tra loro

Congiuntamente, le tabelle contengono le stesse informazioni della tabella iniziale, ma senza ridondanze

Tabella Esami Tabella Studenti

Page 31: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

31Facoltà di Farmacia - Corso di Informatica

Basi di Dati vs file system

•Tecnicamente, i DB sono insiemi di file, ma i DB sono qualcosa di più di semplici file•Si potrebbero usare direttamente i file per memorizzare i dati, ma si perdono le proprietà garantite dai DB•Normalmente i file sono pensati per una specifica applicazione, e non per servire più applicazioni, magari in parallelo

Page 32: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

32Facoltà di Farmacia - Corso di Informatica

Query

•Per reperire le informazioni di interesse da un DB non è possibile semplicemente leggere le tabelle:

– le tabelle sono molto grosse– può essere necessario utilizzare più tabelle contemporaneamente

•Si usano le query

Page 33: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

33Facoltà di Farmacia - Corso di Informatica

Query

•Una query permette di specificare – cosa cercare all’interno del DB (criteri di selezione)– quali informazioni (campi) visualizzare

•Una query crea una nuova tabella temporanea con i campi e i record di interesse

Page 34: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

34Facoltà di Farmacia - Corso di Informatica

Query: esempioVogliamo avere tutti gli esami superati dagli studenti con i dati degli studenti

Nota: la tabella risultante è ridondante, ma è generata dinamicamente, quindi nessun problema

Page 35: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

35Facoltà di Farmacia - Corso di Informatica

Query•Le query possono essere create in vari modi, in funzione dei programmi•Due “paradigmi”:

– basato su esempi (QBE)• uso di maschere predefinite di interrogazione che costruiscono la query automaticamente• utilizzato da utenti poco esperti

– linguaggi di interrogazione (es. SQL)• vero e proprio linguaggio (testuale) strutturato• usato dai programmi e dagli utenti più esperti

Page 36: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

36Facoltà di Farmacia - Corso di Informatica

Query•In una query si specificano

– i campi da includere nel risultato– i criteri di selezione delle informazioni, specificati attraverso operatori di confronto

Page 37: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

37Facoltà di Farmacia - Corso di Informatica

Query: esempioVogliamo spedire una lettera di congratulazioni agli studenti che hanno superato l’esame di Informatica A (L0507)

Criterio di selezione: CodiceCorso=L0507

Page 38: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

38Facoltà di Farmacia - Corso di Informatica

Query: esempioVogliamo spedire una lettera di congratulazioni agli studenti che hanno superato un esame con voto almeno 27

Criterio di selezione: Voto>=27

Page 39: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

39Facoltà di Farmacia - Corso di Informatica

Query•Composizione di operatori logici AND, OR, NOT•Consente di selezionare i record che soddisfano particolari criteri

Page 40: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

40Facoltà di Farmacia - Corso di Informatica

Query: esempioElenco studenti che hanno superato Informatica A (L0507) con voto almeno 27

Criterio di selezione: CodiceCorso=L0507 AND Voto>=27

Page 41: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

41Facoltà di Farmacia - Corso di Informatica

Query: esempioElenco studenti che hanno superato Informatica (L0014) o Informatica A (L0507) con voto almeno 27

(CodiceCorso=L0507 OR CodiceCorso=L0014) AND Voto>=27

Page 42: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

42Facoltà di Farmacia - Corso di Informatica

E per finire...

Page 43: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

43Facoltà di Farmacia - Corso di Informatica

Page 44: Basi di dati - personalpages.to.infn.itpersonalpages.to.infn.it/~ferraro/informatica/slides_inf/06... · 2 Facoltà di Farmacia - Corso di Informatica Basi di dati (Database, DB)

44Facoltà di Farmacia - Corso di Informatica