Basi di dati
Riferimenti: Curtin cap. 8
Versione:
13/03/2007
Facoltà di Farmacia - Corso di Informatica
1
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 quantità
di informazioni in modo da facilitare la
modifica e il reperimento
Facoltà di Farmacia - Corso di Informatica
2
Basi di dati
•Prima soluzione:
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 soluzione:
soluzione foglio elettronico
•Svantaggi:
–Difficile condivisione tra più utenti
–Difficile reperire informazioni
•Quindi: Basi di dati
Facoltà di Farmacia - Corso di Informatica
3
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
Facoltà di Farmacia - Corso di Informatica
4
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)
Facoltà di Farmacia - Corso di Informatica
5
Basi di dati
Un DBMS gestisce insiemi di dati:
a. grandi
b. persistenti
c. condivisi
garantendo
a. affidabilità
b. privatezza
c. efficienza
d. efficacia
Facoltà di Farmacia - Corso di Informatica
6
Le basi di dati sono… grandi
a. Dimensioni:
Dimensioni
un DB può avere dimensioni di
1000 Gigabyte
⇒ DBMS deve gestire dati su
memoria secondaria
Facoltà di Farmacia - Corso di Informatica
7
Le basi di dati sono… persistenti
b. Persistenza:
Persistenza
i dati hanno un tempo di vita
che non è limitato a quello delle
singole esecuzioni delle
applicazioni
Facoltà di Farmacia - Corso di Informatica
8
Le basi di dati sono… condivise
c. Condivisione:
Condivisione
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à
Facoltà di Farmacia - Corso di Informatica
9
Problemi
Concorrenza: nello stesso tempo più
transazioni (sequenze di operazioni sul DB)
possono richiedere e/o modificare il
medesimo dato
Ridondanza:
informazioni ripetute
Incoerenza:
errori di “allineamento” dei dati
es.: se due assegni vengono incassati
contemporaneamente sullo stesso c/c, non
bisogna trascurarne nessuno
Facoltà di Farmacia - Corso di Informatica
10
Le basi di dati sono… condivise
Utente 1
Applicazione
Applicazione
Utente 2
Utente 3
Utente 4
Applicazione
Applicazione
Applicazione
DBMS
DB
Facoltà di Farmacia - Corso di Informatica
11
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
Facoltà di Farmacia - Corso di Informatica
12
Le basi di dati garantiscono…
privatezza
e.Privatezza:
gli utenti svolgono solo determinate
azioni sui dati, con meccanismi di
autorizzazione
Es. 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
Facoltà di Farmacia - Corso di Informatica
13
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
Facoltà di Farmacia - Corso di Informatica
14
Le basi di dati garantiscono…
efficacia
g. Efficacia:
cercano di rendere produttiva
l’attività dell’utente, offrendo
funzionalità articolate, potenti e
flessibili
Facoltà di Farmacia - Corso di Informatica
15
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
Facoltà di Farmacia - Corso di Informatica
16
Modello relazionale
•Introdotto nel 1970
•Affermato negli anni ’80
•Attualmente è il modello di DB più
diffuso: probabilmente ogni DB che
incontrerete sarà relazionale
Facoltà di Farmacia - Corso di Informatica
17
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.
Facoltà di Farmacia - Corso di Informatica
18
Modello relazionale
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>)
Facoltà di Farmacia - Corso di Informatica
19
Una relazione e' un sottoinsieme di AxY definito
attraverso 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
Facoltà di Farmacia - Corso di Informatica
20
Un esempio....
Facoltà di Farmacia - Corso di Informatica
21
Modello relazionale:
struttura dei dati
Come nei fogli elettronici, sono organizzati in
tabelle
Es.:
tabella Studenti del database di una università
Facoltà di Farmacia - Corso di Informatica
22
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
Facoltà di Farmacia - Corso di Informatica
23
Modello relazionale:
struttura dei dati
attributo
record
campo
Facoltà di Farmacia - Corso di Informatica
24
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
Facoltà di Farmacia - Corso di Informatica
25
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 tabella
Es.:
• numero di matricola
• codice fiscale
• nome, cognome, data di nascita e
luogo di nascita (forse insufficiente)
Facoltà di Farmacia - Corso di Informatica
26
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
Facoltà di Farmacia - Corso di Informatica
27
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
Facoltà di Farmacia - Corso di Informatica
28
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
Facoltà di Farmacia - Corso di Informatica
29
Esempio di ridondanza in un DB
Come eliminare la ridondanza?
Usando più tabelle legate tra loro
Tabella Esami
Tabella Studenti
Congiuntamente, le tabelle contengono le stesse
informazioni della tabella iniziale,
ma senza ridondanze
Facoltà di Farmacia - Corso di Informatica
30
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
Facoltà di Farmacia - Corso di Informatica
31
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
Facoltà di Farmacia - Corso di Informatica
32
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
Facoltà di Farmacia - Corso di Informatica
33
Query: esempio
Vogliamo avere tutti gli esami superati
dagli studenti con i dati degli studenti
Nota: la tabella risultante è ridondante, ma è generata dinamicamente,
quindi nessun problema
Facoltà di Farmacia - Corso di Informatica
34
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
Facoltà di Farmacia - Corso di Informatica
35
Query
•In una query si specificano
– i campi da includere nel risultato
– i criteri di selezione delle informazioni,
specificati attraverso operatori di confronto
Facoltà di Farmacia - Corso di Informatica
36
Query: esempio
Vogliamo spedire una lettera di
congratulazioni agli studenti che hanno
superato l’esame di Informatica A (L0507)
Criterio di selezione:
CodiceCorso=L0507
Facoltà di Farmacia - Corso di Informatica
37
Query: esempio
Vogliamo spedire una lettera di
congratulazioni agli studenti che hanno
superato un esame con voto almeno 27
Criterio di selezione:
Voto>=27
Facoltà di Farmacia - Corso di Informatica
38
Query
•Composizione di operatori logici
AND, OR, NOT
•Consente di selezionare i record che
soddisfano particolari criteri
Facoltà di Farmacia - Corso di Informatica
39
Query: esempio
Elenco studenti che hanno superato
Informatica A (L0507) con voto almeno 27
Criterio di selezione:
CodiceCorso=L0507
AND Voto>=27
Facoltà di Farmacia - Corso di Informatica
40
Query: esempio
Elenco studenti che hanno superato
Informatica (L0014) o Informatica A
(L0507) con voto almeno 27
(CodiceCorso=L0507 OR CodiceCorso=L0014) AND
Voto>=27
Facoltà di Farmacia - Corso di Informatica
41
E per finire...
Facoltà di Farmacia - Corso di Informatica
42
Facoltà di Farmacia - Corso di Informatica
43
Facoltà di Farmacia - Corso di Informatica
44