Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di Basi Di Dati 10 Transazioni
1. Corso di Basi di Dati e Laboratorio
TRANSAZIONI
(concetti introduttivi)
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio 1
Transazioni
Transazione
Unità elementare di lavoro svolta da un programma
applicativo, cui si vogliono associare particolari
caratteristiche di correttezza, robustezza e isolamento.
Sintatticamente, una transazione è l’insieme delle istruzioni
compresa tra i due comandi
• begin transaction
• end transaction
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
2. Transazioni
• Altri comandi particolari nel codice di una transazione
– commit work (o commit)
– rollback work (o abort)
• L’effetto di questi due comandi è decisivo per l’esito
della transazione
– commit ==> la transazione va a buon fine
– abort ==> la transazione fallisce
• ESEMPIO/* operazione bancaria di trasferimento tra
due c/c */
begin transaction
c/c1 := c/c1-10;
c/c2 := c/c2+10;
commit work;
end transaction
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
Transazioni - proprietà
• Tutto il codice compreso tra begin
transaction e end transaction gode
delle cosiddette proprietà ACIDe
– Atomicità
– Consistenza
– Isolamento
– Durability (Persistenza)
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
3. Transazioni - proprietà
• Atomicità: una transazione rappresenta una unita’
indivisibile di esecuzione.
• O vengono resi visibili tutti i suoi effetti nella BD,
oppure la t. non ha nessun effetto sulla BD
(approccio “tutto-o-niente”).
• In altre parole, non è possibile che la BD venga
lasciata in uno stato intermedio attraversato
durante l’elaborazione della transazione.
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
Transazioni - proprietà
Conseguenze sul piano operativo
• La corretta esecuzione dell’operazione di commit fissa il
momento in cui la t. va a buon fine e i suoi effetti
possono essere visibili nella BD.
• Se si verifica un errore e qualche operazione
(lettura/scrittura) della t. fallisce prima dell’operazione di
commit, il DBMS deve essere in grado di ricostruire la
situazione della BD all’inizio della t. disfacendo il lavoro
compiuto fino a quel momento dalla t. (operazione di
UNDO)
• Dopo l’esecuzione del commit, il DBMS deve assicurare
che la t. lasci la bd nel suo stato finale. Questo può
richiedere di dover rifare (operazione di REDO) alcune
operazioni.
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
4. Transazioni - proprietà
• Consistenza: l’esecuzione di una t. non deve
violare i vincoli di integrità definiti sulla BD.
Quando il DBMS rileva che una t. in esecuzione
sta violando un vincolo (ad es., viene inserita
una tupla in una tabella con un valore di chiave
già presente nella tabella), interviene per
annullare la t. o per correggere la violazione al
vincolo.
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
Transazioni - proprietà
• Isolamento: l’esecuzione di una t. deve essere
indipendente dalla contemporanea esecuzione di
altre t.
• Si richiede che l’esecuzione concorrente di un
insieme di t. sia analogo al risultato che le stesse
t. otterrebbero nel caso in cui ciascuna di esse
fosse eseguita da sola.
• Si evita che il rollback di una t. causi il rollback di
altre t. (effetto domino). Questo potrebbe
accadere se una t. leggesse i dati modificati da
un’altra t. che non abbia ancora eseguito il
comando di commit e che non termina
correttamente (abort).
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
5. Transazioni - proprietà
• Persistenza: l’effetto di una t. che ha eseguito il
commit correttamente non deve essere piu’
perso. In altre parole, i dati contenuti nella BD
non devono essere persi per nessun motivo.
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
Anomalie delle transazioni concorrenti
T1: bot T2: bot
R(lr);
lr = lr-150;
R(c/c);
W(lr);
c/c=c/c+500;
R(c/c);
W(c/c);
Commit T2
c/c=c/c+150;
W(c/c);
Commit T1
La somma depositata da T2 viene persa
(lost update)
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
6. Transazioni
• Atomicità e persistenza garantite dal
sottosistema del DBMS denominato “controllore
dell’affidabilità” (recovery manager)
• Isolamento garantito dal sottosistema del
DBMS denominato “controllore della
concorrenza”
• Consistenza gestita dal compilatore DDL, che
introduce opportuni controlli di consistenza e
opportune procedure per la loro verifica in fase di
esecuzione delle transazioni.
A.A. 2004/2005 Corso di Basi di Dati e Laboratorio