Sobes.tech
Junior

Perché vengono utilizzate le transazioni nei database?

sobes.tech AI

Risposta dell'AI

Le transazioni garantiscono l'atomicità, la consistenza, l'isolamento e la durabilità (ACID) delle operazioni sui database.

  • Atomicità: Tutte le operazioni in una transazione vengono completate completamente o non vengono eseguite affatto. Se un'operazione fallisce, tutte vengono annullate.
  • Consistenza: La transazione porta il database da uno stato consistente a un altro. Vengono prevenute violazioni di vincoli (ad esempio, chiavi uniche).
  • Isolamento: Ogni transazione viene eseguita come se fosse l'unica nel sistema. Le modifiche apportate da una transazione non sono visibili alle altre fino al suo completamento.
  • Durabilità: Dopo il completamento con successo di una transazione, le sue modifiche vengono salvate e non vengono perse nemmeno in caso di crash del sistema.

Le transazioni sono importanti per garantire l'integrità dei dati, specialmente quando si eseguono più operazioni correlate che devono essere eseguite insieme o non eseguite affatto. Un esempio è il trasferimento di denaro da un conto di risparmio a un conto corrente.

-- Inizio della transazione
START TRANSACTION;

-- Deduzione dal primo conto
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Se l'operazione precedente ha successo, accredito sul secondo conto
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Verifica che entrambe le operazioni siano riuscite e senza errori
-- IF condizione di errore THEN
--   ROLLBACK; -- Annulla tutte le modifiche
-- ELSE
--   COMMIT; -- Conferma tutte le modifiche
-- END IF;

-- Supponendo che entrambe le operazioni siano state completate con successo, esempio
COMMIT; -- Conferma la transazione
-- ROLLBACK; -- Annulla la transazione in caso di errore