lezione 05

transazioni e isolamento

commit, rollback e consistenza dei dati.

livello: intermedio durata: 20 min output: dati consistenti badge: transactions

transaction

begin;
update conti set saldo = saldo - 100 where id = 1;
update conti set saldo = saldo + 100 where id = 2;
commit;

rollback

begin;
insert into ordini(id, totale) values (1, 100);
rollback;

isolation

i livelli di isolamento regolano letture sporche e phantom read.

lock

usa lock minimali per evitare deadlock e performance basse.

panoramica

In questo capitolo su transazioni e isolamento, commit, rollback e consistenza dei dati. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: transactions

obiettivi

  • capire e applicare transaction in uno scenario reale
  • capire e applicare rollback in uno scenario reale
  • capire e applicare isolation in uno scenario reale
  • capire e applicare lock in uno scenario reale

scheda rapida

SELECT categoria, COUNT(*) AS tot
FROM prodotti
WHERE attivo = TRUE
GROUP BY categoria
ORDER BY tot DESC
LIMIT 5;

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • usa alias chiari
  • filtra presto con WHERE
  • controlla i piani di esecuzione
  • usa transazioni per operazioni multi-step
  • scegli livello di isolamento
  • gestisci rollback

tip: Atomicità senza isolamento è una finta sicurezza.

mini progetto

Simula trasferimento fondi.

  • apri transazione
  • decrementa saldo
  • incrementa l'altro
  • commit o rollback

output atteso: uno script o query ripetibile con risultati verificabili.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief