Una transazione è una singola unità logica di lavoro che accede ed eventualmente modifica il contenuto di un database. Le transazioni accedono ai dati utilizzando operazioni di lettura e scrittura.
Per mantenere la coerenza in un database, prima e dopo la transazione, vengono seguite determinate proprietà. Queste sono chiamate proprietà ACIDE.

Atomicity
Con questo, intendiamo che l’intera transazione avviene contemporaneamente o non avviene affatto. Non esiste una via intermedia, cioè, le transazioni non si verificano parzialmente. Ogni transazione è considerata come un’unità e viene eseguita fino al completamento o non viene eseguita affatto. Coinvolge le seguenti due operazioni.r— – Abort: se una transazione viene interrotta, le modifiche apportate al database non sono visibili.
—Commit: se una transazione si impegna, le modifiche apportate sono visibili.
Atomicità è anche conosciuto come il ‘Tutto o niente regola’.

Considera la seguente transazione T composta da T1 e T2: Trasferimento di 100 dal conto X al conto Y.,

Se la transazione fallisce dopo il completamento di T1 ma prima del completamento di T2.(ad esempio, dopo write(X) ma prima write (Y)), l’importo è stato detratto da X ma non aggiunto a Y. Ciò si traduce in uno stato del database incoerente. Pertanto, la transazione deve essere eseguita integralmente al fine di garantire la correttezza dello stato del database.

Coerenza
Ciò significa che i vincoli di integrità devono essere mantenuti in modo che il database sia coerente prima e dopo la transazione. Si riferisce alla correttezza di un database., Facendo riferimento all’esempio sopra,
L’importo totale prima e dopo la transazione deve essere mantenuto.
Totale prima che si verifichi T = 500 + 200 = 700.
Totale dopo T si verifica = 400 + 300 = 700.
Pertanto, il database è coerente. Incoerenza si verifica nel caso T1 completa ma T2 fallisce. Di conseguenza T è incompleto.

Isolamento
Questa proprietà garantisce che più transazioni possano verificarsi contemporaneamente senza portare all’incoerenza dello stato del database. Le transazioni avvengono indipendentemente senza interferenze., Le modifiche che si verificano in una particolare transazione non saranno visibili a nessun’altra transazione fino a quando quella particolare modifica in quella transazione non sarà scritta in memoria o non sarà stata commessa. Questa proprietà garantisce che l’esecuzione delle transazioni contemporaneamente si tradurrà in uno stato che è equivalente a uno stato raggiunto questi sono stati eseguiti in serie in un certo ordine.
Sia X = 500, Y = 500.
Considera due transazioni T e T”.

Supponiamo che T sia stato eseguito fino a Read (Y) e quindi T’ inizi., Di conseguenza, l’interleaving delle operazioni avviene a causa della quale T “legge il valore corretto di X ma il valore errato di Y e la somma calcolata da
T”: (X + Y = 50, 000+500=50, 500)
non è quindi coerente con la somma alla fine della transazione:
T: (X + Y = 50, 000 + 450 = 50, 450).
Ciò si traduce in incoerenza del database, a causa di una perdita di 50 unità. Quindi, le transazioni devono avvenire isolatamente e le modifiche dovrebbero essere visibili solo dopo che sono state apportate alla memoria principale.,

Durabilità:
Questa proprietà garantisce che una volta completata l’esecuzione della transazione, gli aggiornamenti e le modifiche al database siano memorizzati e scritti su disco e persistano anche in caso di errore di sistema. Questi aggiornamenti ora diventano permanenti e vengono memorizzati in memoria non volatile. Gli effetti della transazione, quindi, non vengono mai persi.,

Le proprietà ACID, nella totalità, forniscono un meccanismo per garantire la correttezza e la coerenza di un database in modo tale che ogni transazione sia un gruppo di operazioni che agisce su una singola unità, produce risultati coerenti, agisce in isolamento da altre operazioni e gli aggiornamenti che fa sono memorizzati in modo duraturo.

Questo articolo è contribuito da Avneet Kaur. Se ti piace GeeksforGeeks e vorrebbe contribuire, si può anche scrivere un articolo utilizzando contribute.geeksforgeeks.org o posta il tuo articolo a [email protected]., Vedere il tuo articolo che appare sulla pagina principale GeeksforGeeks e aiutare altri Geek.