Le transazioni raggruppano una serie di attività in un'unica unità di esecuzione. Ogni transazione inizia con un lavoro specifico e termina quando tutte le attività del gruppo sono state completate con successo. Se una qualsiasi delle attività fallisce, la transazione fallisce. Pertanto, una transazione ha solo due risultati: successo O fallimento .
Esempio di transazione per trasferire $ 150 dal conto A al conto B:
1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>
I passaggi incompleti comportano il fallimento della transazione. Una transazione di database, per definizione, deve essere atomica, coerente, isolata e durevole.
Questi sono popolarmente conosciuti come ACIDO proprietà. Queste proprietà possono garantire l'esecuzione simultanea di più transazioni senza conflitti.
Proprietà della transazione
- Atomicita: L'esito di una transazione può essere completamente positivo o completamente infruttuoso. Se una parte fallisce, è necessario eseguire il rollback dell'intera transazione.
- Consistenza: Le transazioni mantengono le restrizioni sull'integrità spostando il database da uno stato valido a un altro.
- Isolamento: Le transazioni simultanee sono isolate l'una dall'altra, garantendo l'accuratezza dei dati.
- Durabilità: Una volta confermata una transazione, le sue modifiche rimangono effettive anche in caso di guasto del sistema.
Come implementare il comando di controllo delle transazioni utilizzando SQL?
I seguenti comandi vengono utilizzati per controllare le transazioni. È importante notare che queste istruzioni non possono essere utilizzate durante la creazione di tabelle e vengono utilizzate solo con i comandi DML come- INSERIRE , AGGIORNAMENTO , E ELIMINARE .
Comando INIZIO TRANSAZIONE
Indica il punto di inizio di una transazione esplicita o locale.
Sintassi:
INIZIO TRANSAZIONE nome_transazione ;
Comando SET TRANSACTION
I valori per le proprietà della transazione corrente, come il livello di isolamento della transazione e la modalità di accesso, vengono impostati utilizzando l'istruzione SET TRANSACTION in MySQL.
Sintassi:
string.replaceall in Java
IMPOSTA TRANSAZIONE [LEGGI SCRIVI | SOLA LETTURA ];
Comando COMMIT
Se tutto è in ordine con tutte le dichiarazioni all'interno di una singola transazione, tutte le modifiche vengono registrate insieme nel database impegnato . Il comando COMMIT salva tutte le transazioni nel database dall'ultimo comando COMMIT o ROLLBACK.
Sintassi:
COMMETTERE;
Esempio:
Tabella di esempio1

produzione
eredità Java
Di seguito è riportato un esempio che eliminerebbe dalla tabella i record che hanno età = 20 e quindi COMMIT le modifiche nel database.
Domanda
DELETE FROM Student WHERE AGE = 20; COMMIT;>
Produzione
Pertanto, due righe dalla tabella verrebbero eliminate e l'istruzione SELECT sarebbe simile a:

produzione
Comando ROLLBACK
Se si verifica un errore con una qualsiasi delle istruzioni raggruppate SQL, tutte le modifiche devono essere interrotte. Viene chiamato il processo di inversione dei cambiamenti rollback . Questo comando può essere utilizzato solo per annullare le transazioni successive all'esecuzione dell'ultimo comando COMMIT o ROLLBACK.
Sintassi per il comando ROLLBACK:
ROLLBACK;
Esempio:
Dall'esempio sopra Tabella di esempio1 ,
Elimina i record dalla tabella che hanno età = 20 e quindi ROLLBACK le modifiche nel database.
Domanda
DELETE FROM Student WHERE AGE = 20; ROLLBACK;>
Produzione

produzione
Comando PUNTO SALVATAGGIO
PUNTO DI SALVATAGGIO crea punti all'interno dei gruppi di transazioni in cui eseguire il ROLLBACK.
Un SAVEPOINT è un punto in una transazione in cui è possibile ripristinare la transazione fino a un determinato punto senza ripristinare l'intera transazione.
Sintassi per il comando Savepoint:
SAVEPOINT SAVEPOINT_NAME;
Questo comando viene utilizzato solo nella creazione di SAVEPOINT tra tutte le transazioni.
In generale ROLLBACK viene utilizzato per annullare un gruppo di transazioni.
cout
Sintassi per il rollback al comando Savepoint:
ROLLBACK A SAVEPOINT_NAME;
puoi ROLLBACK su qualsiasi SAVEPOINT in qualsiasi momento per riportare i dati appropriati al loro stato originale.
Esempio:
Dall'esempio sopra Tabella di esempio1 , Elimina i record dalla tabella che hanno età = 20 e quindi ROLLBACK le modifiche nel database mantenendo i punti di salvataggio.
Domanda
SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>
Qui SP1 è il primo SAVEPOINT creato prima della cancellazione. In questo esempio è avvenuta una cancellazione.
Dopo la cancellazione viene creato nuovamente SAVEPOINT SP2.
Produzione

produzione
L'eliminazione è stata effettuata, supponiamo che tu abbia cambiato idea e abbia deciso di ROLLBACK al SAVEPOINT identificato come SP1 che è prima dell'eliminazione.
la cancellazione viene annullata da questa affermazione.
Domanda
ROLLBACK TO SP1; //Rollback completed>
Produzione

produzione
Comando RILASCIA PUNTO DI SALVATAGGIO
Questo comando viene utilizzato per rimuovere un SAVEPOINT che hai creato.
Sintassi:
formattatore di stringhe
RILASCIO SAVEPOINT SAVEPOINT_NAME
Una volta rilasciato un SAVEPOINT, non è più possibile utilizzare il comando ROLLBACK per annullare le transazioni eseguite dall'ultimo SAVEPOINT.
Viene utilizzato per avviare una transazione del database e utilizzato per specificare le caratteristiche della transazione che segue.
Conclusione
- Le istruzioni SQL vengono raggruppate insieme utilizzando le transazioni.
- Promettono che verranno apportate tutte le modifiche oppure nessuna.
- L'affidabilità è garantita dalle qualità ACID di atomicità, consistenza, isolamento e durata.
- Avvia una transazione con BEGIN TRANSACTION e terminala con COMMIT o ROLLBACK per completare o annullare le modifiche.