Una transacció és un conjunt d’operacions SQL que es consideren una unitat indivisible de treball sobre una base de dades.
- Es completen totes les operacions o bé no se’n guarda cap.
- Serveixen per garantir la consistència i la fiabilitat de les dades en entorns multiusuari.
Les transaccions són fonamentals en els Sistemes de Gestió de Bases de Dades (SGBD) per assegurar que les modificacions es facin de manera segura, fins i tot davant errors, talls de corrent o accessos simultanis.
Propietats ACID
Les transaccions han de complir les propietats ACID:
- Atomicitat: totes les operacions s’executen o cap d’elles.
- Consistència: la BD passa d’un estat vàlid a un altre.
- Aïllament (Isolation): cada transacció s’executa com si fos l’única al sistema.
- Durabilitat: un cop confirmada, la transacció és persistent encara que hi hagi fallades.
Exemple
Transferència de diners entre comptes:
BEGIN TRANSACTION;
UPDATE comptes SET saldo = saldo - 100 WHERE id = 1;
UPDATE comptes SET saldo = saldo + 100 WHERE id = 2;
COMMIT;
- Si la transacció arriba al
COMMIT
→ es guarden els dos canvis. - Si hi ha un error i es fa
ROLLBACK
→ es desfan tots els canvis, i la BD queda com estava.
Vegeu també
- COMMIT (SQL)
- ROLLBACK
- Propietats ACID