Cosa sono le transazioni ACID?
Le transazioni ACID sono?
Comprensione delle proprietà ACID nel contesto delle transazioni dei database

Nel contesto delle operazioni dei database, una transazione si riferisce a un’operazione considerata come una singola unità logica di lavoro e mira a mantenere il sistema sottostante in uno stato coerente.
La coerenza viene mantenuta garantendo che tutte le operazioni vengano eseguite al termine con successo o che nessuna operazione venga eseguita se una delle operazioni non riesce per una ragione o per un’altra.
Le proprietà ACID
Le transazioni dei database devono essere conformi alle cosiddette proprietà ACID. Tali sistemi vengono chiamati transazionali e assicurano che ogni operazione, inclusa la lettura, la scrittura o l’aggiornamento, sia conforme alle proprietà ACID. L’acronimo ACID sta per Atomicità, Coerenza, Isolamento e Durabilità.
Atomicità: questa proprietà si riferisce a una transazione trattata come un’unica unità di lavoro. Se un’operazione definita all’interno della transazione non riesce, nessuna operazione verrà eseguita e le operazioni precedentemente eseguite verranno annullate (se presenti) e il sistema sottostante tornerà allo stato precedente. L’atomicità impedisce la perdita o la corruzione dei dati poiché le transazioni verranno confermate solo se ogni singola operazione viene applicata con successo.
- 2 Esempi importanti di SQL CASE WHEN che devi conoscere nel 2023
- Ricercatori di Princeton presentano InterCode un rivoluzionario framework leggero che semplifica l’interazione del modello linguistico per la generazione di codice simile a quello umano.
- Può il dato sintetico migliorare le prestazioni del machine learning?
Coerenza: questa proprietà garantisce che tutte le transazioni rispettino le regole predefinite in modo che ogni transazione venga eseguita in modo prevedibile e lasci sempre il sistema sottostante in uno stato coerente una volta confermata.
Isolamento: un sistema di database transazionale consente a più utenti di interagire contemporaneamente. Questa proprietà garantisce che le transazioni concorrenti avviate da più utenti non interferiscano tra loro in modo che l’integrità dei dati venga mantenuta. Qualsiasi operazione all’interno di una singola transazione non sarà quindi visibile al di fuori di quel contesto fino a quando la transazione non viene confermata.
Durabilità: questa ultima proprietà garantisce che ogni volta che una transazione viene confermata, verrà salvata e i suoi effetti saranno permanenti anche in caso di guasto del sistema.
Come scrivere transazioni in SQL
Ora che abbiamo una comprensione di base delle quattro proprietà ACID, scriviamo una transazione SQL per vederle in azione. Nota che userò la sintassi di BigQuery che potrebbe funzionare anche per molti altri tipi di SQL, ma questo non è garantito.
Nell’esempio condiviso di seguito, creiamo una transazione composta da due istruzioni. La prima istruzione inserirà un nuovo record nella tabella mydataset.mytable
, mentre la seconda istruzione (intenzionalmente) genererà un errore poiché tenta di eseguire una divisione per zero.
Nella seconda parte del nostro codice snippet, definiamo la logica di rollback che annullerà tutte le modifiche effettuate prima del fallimento. Poiché l’istruzione SELECT 1/0
genererà un’eccezione, l’istruzione INSERT INTO
verrà annullata e il nuovo record non verrà aggiunto alla tabella di destinazione.
BEGIN BEGIN TRANSACTION; INSERT INTO mydataset.mytable VALUES (1, 100, 'in sospeso'); -- Genera un'eccezione tentando una divisione per zero SELECT 1/0; COMMIT TRANSACTION; EXCEPTION WHEN ERROR THEN -- Annulla la transazione se viene generata un'eccezione SELECT @@error.message; ROLLBACK TRANSACTION;END;
Pensieri finali
Le proprietà ACID sono tra i concetti più fondamentali che i sistemi di database transazionali devono rispettare al fine di garantire e mantenere l’integrità, la coerenza e l’affidabilità dei dati. Inoltre, questi concetti consentono a più utenti di interagire contemporaneamente con i sistemi sottostanti senza compromettere queste caratteristiche.
Se il tuo lavoro quotidiano richiede l’interazione con sistemi di database transazionali, è estremamente importante familiarizzare con questi concetti. Le proprietà ACID offerte dalle transazioni dei database garantiranno l’integrità dei dati e ti consentiranno di gestire guasti ed errori in modo corretto, senza influire su altre operazioni e utenti.
👉 Diventa un membro e leggi ogni storia su VoAGI. La tua quota di iscrizione supporta direttamente me e gli altri scrittori che leggi. Avrai anche accesso completo a ogni storia su VoAGI.
Unisciti a VoAGI con il mio link di riferimento – Giorgos Myrianthous
Come membro di VoAGI, una parte della tua quota di iscrizione va agli scrittori che leggi, e ottieni accesso completo a ogni storia…
gmyrianthous.medium.com
👇 Articoli correlati che potrebbero interessarti 👇
ETL vs ELT: Qual è la differenza?
Un confronto tra ETL ed ELT nel contesto dell’Ingegneria dei dati
towardsdatascience.com
Cos’è dbt (data build tool)
Un’introduzione dettagliata a dbt che sta prendendo il controllo del mondo dei dati
towardsdatascience.com
Diagrammi come Codice in Python
Creazione di diagrammi di architettura di sistemi cloud con Python
towardsdatascience.com