2. A) Introduzione
1 2
B) Prog. ConceGuale (ER)
C) Modello Relazionale,
Algebra relazionale, SQL
1 2 3 4 5 6 7 1 2 3 4 5 6 7
D) Prog. Logica e E) Tecnologia di un DBMS
Normalizzazione
1 2 3 4 1 2 3 4 5 6
F) Programmazione DB
1 2
2 Basi di Da( ‐ Controllo di concorrenza
3. I vantaggi della concorrenza
sul server (1 cpu, 1 disco, 1 sistema di trasmissione) è
possibile il parallelismo tra:
elaborazione: cpu (c)
operazioni di I/O: disco (d)
operazioni di trasmissione (t)
aGesa dai client (a)
c d c t a
U1
a c t c d c
U2
a c t d c d
U3
3 Basi di Da( ‐ Controllo di concorrenza
4. I vantaggi della concorrenza
B: begin, E: end
T1 C:commit, A: abort
B C E R: rollback
T2
B A
T3
B C E
T4
B C E
T5
B R E t
4 Basi di Da( ‐ Controllo di concorrenza
5. Problemi dovuU alla concorrenza
Lost update (dipendenza write write)
perdita di modifiche da parte di una transazione a
causa di un aggiornamento effeGuato da un’altra
transazione
Dirty read (dipendenza write read)
dipendenza di una transazione da un’altra non
completata con successo e leGura di daU inconsistenU
Unrepeatable read (dipendenza read write)
analisi inconsistente di daU da parte di una
transazione causata da aggiornamenU prodo da
un’altra
5 Basi di Da( ‐ Controllo di concorrenza
9. Lost update: altro esempio
TRANSAZIONE A TRANSAZIONE B
UPDATE PARTS UPDATE PARTS
SET COLOR = 'VERDE’ SET COLOR = 'ROSSO'
WHERE PNO = 3824 WHERE PNO = 3824
9 Basi di Da( ‐ Controllo di concorrenza
13. Locking
13 Basi di Da( ‐ Controllo di concorrenza
14. PrimiUve di lock
r‐lock: lock in leGura (shared)
w‐lock: lock in scriGura (exclusive)
unlock
STATO DI UN OGGETTO:
libero
r‐locked (bloccato da un leGore)
w‐locked (bloccato da uno scriGore)
14 Basi di Da( ‐ Controllo di concorrenza
16. Tabella dei confli
r‐locked w‐locked
r‐lock OK NO
w‐lock NO NO
OK : blocco della risorsa, contatore dei leGori
il programma procede r‐lock
NO : il programma r‐counter <‐ r‐counter + 1
va in aGesa che unlock
la risorsa venga sbloccata r‐counter <‐ r‐counter ‐ 1
16 Basi di Da( ‐ Controllo di concorrenza
19. Granularità del locking
lock
relazione
a livello di: (più la
relazione granularità
pagina è ridoGa
pagina
tupla più è
valore di un tupla elevata la
aGributo concorrenza)
di una tupla valore
19 Basi di Da( ‐ Controllo di concorrenza
24. Livelli di isolamento
Riassumendo…
Tipi di problemi:
• Lost update
• Dirty read
• Unrepeatable read
Livelli di isolamento:
• 0 (Chaos) si presentano tu i tre problemi
• 1 (Browse) non si hanno lost update
• 2 (Cursor stability)
non si hanno lost update e dirty read
• 3 (Repeatable reads)
nessun problema (isolaUon “pura”)
24 Basi di Da( ‐ Controllo di concorrenza