ANSI SQL Isolation Levels

Nello standard ANSI SQL-92 vengono definiti dei “fenomeni” e sulla base di questi sono definiti quattro pollibili livelli di isolamento fra le transazioni. In sostanza questi livelli di isolamento stabiliscono quali sono i fenomeni che si possono osservare su un database su cui vi sono più sessioni o transazioni che operano in concorrenza.

Fenomeni (phenomena)

i fenomeni che si possono osservare su un database relazionale quanto più sessioni o transazioni operano in concorrenza sono:

  • Dirty Read: essenzialmente una sessione vede dati modificati da un’altra sessione ma non committati
  • Non-repeatable Read: una sessione legge dei dati, ad una successiva lettura i dati non sono gli stessi
  • Phantom: una sessione legge dei dati che soddisfano una certa condizione, un’altra sessione aggiunge o toglie dati che soddisfano la stessa condizione, la prima sessione rilegge i dati e quindi vede più o meno dati rispetto a prima (e simile a non-repeatable read ma non si tratta di dati modificati, si tratta di dati aggiunti o tolti)

Isolation Levels

I livelli di isolamento sono definiti in funzione dei fenomeni che si possono verificare. I livelli definiti sono quattro:

  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE

Thomas Kyte ha scritto un interessante capitolo sul suo libro che descrive nei dettagli tutti i risvolti dei vari livelli. Inoltre oggi cercando ho trovato quest’altro interessante blog

2 Risposte

  1. [...] Archivio ← ANSI SQL Isolation Levels [...]

  2. [...] Concepts”. In sostanza si tratta di meccanismi che permettono di implementare l’isolation level “READ COMMITTED” senza mai bloccare le letture e senza che i lettori blocchino i [...]

Lascia un commento