Introduzione alle transazioni in SQL
Una transazione in SQL generalmente nota come effettuare pagamenti (invio, ricezione, acquisto, ecc.) Ma quando si tratta di campi tecnici, è il modo di aggiornare l'unità logica di informazioni nel database.
Una transazione è l'implementazione di una o più modifiche nel database. Possiamo raggruppare più query SQL ed eseguirle contemporaneamente in una transazione. Tutte le query SQL verrebbero eseguite in una volta sola o verrebbero ripristinate tutte. Avrebbe solo due risultati: successo o fallimento.
La transazione una volta impegnata non può essere un rollback, può essere ripristinata solo se la transazione non è impegnata. MYSQL esegue automaticamente il commit delle modifiche al database se tutte le query vengono eseguite correttamente. Per eseguire il commit esplicito delle modifiche nel database, innanzitutto, è necessario disabilitare l'auto-commit tramite il comando -
Sintassi: SET autocommit = 0;
Proprietà della transazione
Di seguito sono riportate le proprietà importanti delle transazioni, ogni transazione deve seguire queste proprietà
1. Atomicità
Una transazione deve essere atomica, la manipolazione dei dati media deve essere completata per una determinata unità logica. Questa proprietà garantisce che le modifiche ai dati abbiano avuto luogo completamente altrimenti il rollback della transazione.
2. Coerenza
Al termine della transazione, tutti i record disponibili saranno coerenti durante la transazione. Questa proprietà garantisce che lo stato della proprietà del database sia cambiato dopo un commit riuscito o meno.
3. Isolamento
L'isolamento si riferisce alle modifiche dei dati in una determinata unità logica che non dovrebbero influire su un'altra unità. Consente l'esecuzione indipendente di una transazione.
4. Durabilità
Le modifiche apportate durante le transazioni dovrebbero essere permanenti nel sistema. In caso di errore di sistema, questa proprietà garantisce anche che le modifiche ai dati avvengano o meno.
La proprietà della transazione sopra indicata è anche nota come proprietà ACID.
Fasi della transazione
1. Inizia
È possibile che si verifichi una transazione in più esecuzioni SQL, ma tutte le operazioni SQL devono essere eseguite contemporaneamente. Se una delle transazioni fallisce, l'intera transazione verrà ripristinata. L'istruzione per l'avvio della transazione è "INIZIA TRANSAZIONE". Inizia l'acronimo di INIZIA TRANSAZIONE.
Sintassi: INIZIA TRANSAZIONE;
2. Impegnarsi
Gli commit riflettono in modo permanente le modifiche al database. L'istruzione per l'avvio della transazione è "COMMIT".
Sintassi: COMMIT;
3. Rollback
Il rollback viene utilizzato per ripristinare le modifiche, ovvero il record non verrà modificato, sarebbe nello stato precedente. L'istruzione per l'avvio della transazione è "ROLLBACK".
Sintassi: ROLLBACK;
4. Savepoint
SAVEPOINT è anche un estratto conto. Questa istruzione ha usato per creare un punto di memoria nel sistema in modo che l'operazione ROLLBACK possa raggiungere lo stato del punto di salvataggio.
5. Rilasciare Savepoint
STAMPA SAVEPOINT è un'istruzione per rilasciare il punto di salvataggio e la memoria consumata dal sistema nella creazione di un punto di salvataggio.
Sintassi: RELEASE SAVEPOINT SP
Note - SP è il nome del punto di salvataggio quando questo punto di salvataggio è stato creato prima dell'inizio della transazione.
6. Imposta transazione
Il comando SET TRANSACTION viene utilizzato per specificare l'attributo della transazione, ad esempio la transazione specificata è una sessione di sola lettura o di lettura / scrittura.
Sintassi : SET TRANSACTION (READ-WRITE | READ ONLY);
La transazione viene utilizzata per eseguire le modifiche complesse nel database. Utilizzato principalmente nelle informazioni bancarie si trasforma in un database relazionale.
La transazione è supportata dal motore MYSQL InnoDB. Per impostazione predefinita, il commit automatico rimane abilitato ed è per questo che ogni qualvolta viene eseguito un SQL dopo l'esecuzione automatica dei commit.
Transazioni tramite SQL
Esempio 1
Transazione bancaria: un conto addebitato per un importo di 50000 dalla persona Un conto di risparmio e inviato questo importo al conto del prestito di A.
Avvia transazione: questa transazione iniziale convertirà tutte le query SQL in una singola unità di transazione.
UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;
Questa query SQL detrae l'importo dal saldo del conto esistente.
UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;
Questa query SQL aggiunge l'importo all'account del prestito utente.
Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');
Questa query SQL inserisce un nuovo record nella tabella dei dettagli della transazione, questa tabella contiene i dettagli di tutte le transazioni degli utenti. Se tutta la query è stata eseguita correttamente, è necessario eseguire il comando COMMIT poiché le modifiche devono essere memorizzate in modo permanente nel database.
Commit: questa istruzione di commit salva le modifiche invocate da una transazione nel database. Se una delle transazioni fallisce durante l'esecuzione, è necessario eseguire il comando ROLLBACK per ripristinare la transazione completa
Rollback: il rollback ha luogo quando una query non riesce durante l'esecuzione.
Esempio n. 2
Transazione inventario: nella tabella Articoli fornita sono disponibili 6 articoli.
Esecuzione della seguente istruzione START TRANSACTION per avviare la transazione.
Ora esegui il comando SET AUTOCOMMIT = 0 ; per disabilitare il commit automatico
Ora eseguendo la seguente istruzione per rimuovere il record dalla tabella degli articoli
Ora il record disponibile nella tabella è 4, cioè i record rimossi temporaneamente dagli elementi della tabella
Ora eseguendo il comando ROLLBACK per ripristinare le modifiche, il record eliminato sarebbe disponibile negli elementi della tabella come in precedenza prima di iniziare la transazione
Ancora una volta, se si applica la stessa operazione di eliminazione, l'operazione COMMIT dopo le modifiche verrà salvata in modo permanente nel database
Ora possiamo vedere che dopo ancora il comando ROLLBACK, il record era in un nuovo stato, significa che una volta che l'operazione COMMIT ha eseguito le modifiche non può essere ripristinato perché apporta permanentemente modifiche al database;
Vantaggi dell'utilizzo di Transaction in SQL
a) L'uso della transazione migliora le prestazioni , quando si inseriscono 1000 record utilizzando le transazioni in quel caso il tempo impiegato sarebbe inferiore al normale inserimento. Come nella normale transazione, ogni volta che si verificherebbe COMMIT dopo ogni esecuzione della query e aumenterebbe il tempo di esecuzione ogni volta che nella transazione non è necessario eseguire l'istruzione COMMIT dopo ogni query SQL. COMMIT alla fine rifletterebbe tutte le modifiche al database in modo permanente in una volta. Inoltre, se si utilizza la transazione, il ripristino delle modifiche sarebbe molto più semplice della normale transazione. ROLLBACK ripristinerà tutte le modifiche contemporaneamente e manterrà il sistema nello stato precedente.
b) La transazione garantisce l'integrità dei dati nel database relazionale. La maggior parte del database utilizza più tabelle per conservare i dati e durante gli aggiornamenti potrebbero esserci delle modifiche in più tabelle in quel momento se una qualsiasi delle query SQL fallisce, la transazione manterrebbe i dati invariati.
Conclusione
L'uso delle transazioni è una procedura consigliata per l'aggiornamento delle informazioni per un'unità logica in un database relazionale. Per il motore di database di implementazione delle transazioni dovrebbe supportare la transazione come il motore InnoDB. La transazione, come unità di istruzioni SQL, può essere ripristinata contemporaneamente utilizzando una singola istruzione ROLLBACK. La transazione garantisce l'integrità dei dati e migliora le prestazioni del database.
Articoli consigliati
Questa è una guida alle Transazioni in SQL. Qui discutiamo l'introduzione, le proprietà, i passaggi, gli esempi di transazioni in SQL insieme ai vantaggi dell'utilizzo delle transazioni in SQL.
- Che cos'è SQL
- Strumenti di gestione SQL
- Visualizzazioni SQL
- Tipi di join in SQL Server
- I 6 migliori tipi di join in MySQL con esempi