Basi di dati -...
Transcript of Basi di dati -...
1Facoltà di Farmacia - Corso di Informatica
Versione: 13/03/2007
Basi di dati
Riferimenti: Curtin cap. 8
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
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
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
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)
6Facoltà di Farmacia - Corso di Informatica
Basi di datiUn DBMS gestisce insiemi di dati:a. grandib. persistentic. condivisigarantendoa. affidabilitàb. privatezza c. efficienzad. efficacia
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
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
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à
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
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
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
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
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
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
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
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
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.
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
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
21Facoltà di Farmacia - Corso di Informatica
Un esempio....
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
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
24Facoltà di Farmacia - Corso di Informatica
Modello relazionale: struttura dei dati
record
campo
attributo
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
39Facoltà di Farmacia - Corso di Informatica
Query•Composizione di operatori logici AND, OR, NOT•Consente di selezionare i record che soddisfano particolari criteri
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
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
42Facoltà di Farmacia - Corso di Informatica
E per finire...
43Facoltà di Farmacia - Corso di Informatica
44Facoltà di Farmacia - Corso di Informatica