8 - SQL - Transizioni, vincoli, trigger.pdf

Transazioni

Introduciamo ora la nozione di transazione, un concetto che riveste un ruolo fondamantale nell'uso delle basi di dati.

<aside> 💡

Una transazione identidica una unità elementare di lavoro svolta da una applicazione cui si vogliono associare particolari caratteristiche di correttezza, robustezza e isolamento. Un sistema che mette a disposizione un meccanismo per la definizione e l'esecuzione di transazioni viene detto sistema transazionale.

</aside>

La sintassi di una transazione in SQL:

L'effetto di questi due comandi è decisivo per l'esito della transazione, la quale va a buon fine solo al seguito del comando commit, mentre non ha nessun effetto tangibile quando viene eseguito l'abort.

Un esempio di transazione è dato dal seguente codice, che trasferisce dal conto 42177 al conto 12202 l'ammontare 10.

Untitled

Viene detta ben formata una transazione iniziata da start nel corso della cui esecuzione viene evocata solo uno dei due comandi sopracitati.

Proprietà delle transazioni

Tutto il codice che viene eseguito all'interno di una transazione gode di proprietà particolari, le cosiddette proprietà acide delle transazioni:

Atomicità

<aside> 💡 L'atomicità rappresenta il fatto che una transazione è un'unità indiiscisbhile di esecuzione; o vengono resi visibili tutti gli effetti di una transazione, oppure la transazione non deve avere alcun effetto sulla base di dati, con un approccio "tutto o niente".

</aside>

In pratica non è possibile lasciare la base di dati in uno stato intermedio attraversato durante l'elaborazione della transizione.