Cosa sono le transazioni ACID?

Le transazioni ACID sono?

Comprensione delle proprietà ACID nel contesto delle transazioni dei database

Foto di Michal Matlon su Unsplash

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.

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.

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