Gestire le transazioni in un database Relazionale, Analitico o Gerarchico (RAG) è un processo fondamentale per assicurare l’integrità e la coerenza dei dati. Le transazioni rappresentano una sequenza di operazioni database che devono essere eseguite come un’unità atomica; ovvero, tutte le operazioni devono essere completate con successo o nessuna di esse deve avere effetto sul database.
```
BEGIN TRANSACTION;
— Esegui operazioni
UPDATE conti_correnti SET saldo = saldo – 100 WHERE id_conto = 1;
UPDATE conti_correnti SET saldo = saldo + 100 WHERE id_conto = 2;
— Conferma la transazione
COMMIT;
— Oppure in caso di errore
ROLLBACK;
```
1. BEGIN TRANSACTION: Inizia una nuova transazione.
2. COMMIT: Conferma tutte le operazioni eseguite nella transazione.
3. ROLLBACK: Annulla tutte le operazioni eseguite nella transazione, se si verifica un errore.
```
BEGIN TRANSACTION;
UPDATE conti_correnti
SET saldo = saldo – 100
WHERE id_conto = ‘A’;
UPDATE conti_correnti
SET saldo = saldo + 100
WHERE id_conto = ‘B’;
COMMIT;
```
Se durante il processo uno degli aggiornamenti fallisse (per esempio, perché il saldo del Conto A non è sufficiente), l’intera transazione verrebbe annullata per mantenere la consistenza del database:
```
BEGIN TRANSACTION;
UPDATE conti_correnti
SET saldo = saldo – 100
WHERE id_conto = ‘A’;
IF ERROR <> 0
ROLLBACK;
ELSE
UPDATE conti_correnti
SET saldo = saldo + 100
WHERE id_conto = ‘B’;
IF ERROR <> 0
ROLLBACK;
ELSE
COMMIT;
```
Questi testi e risorse sono ampiamente riconosciuti nell’ambito della gestione dei database e offrono principi e tecniche consolidate per la gestione delle transazioni, fornendo una solida base teorica e pratica.