PDA

Visualizza la versione completa : [sql]transazioni


Dorcan82
27-10-2004, 22:38
ho trovato di tutto.
ho capito cosa sono e come dovrebbero funzionare...così di primo acchitto.

qualcuno potrebbe farmi un esempio concreto?????

Attendo e grazie infinite....

:ciauz: :ciauz: :)

alka
28-10-2004, 02:51
L'esempio più frequente è quello del bancomat, oppure quello del magazzino.

Sostanzialmente, ti potrà accadere di dover effettuare delle operazioni sul tuo database che dovranno essere ritenute valide nella loro interezza.

Ad esempio, quando prelevi soldi dallo sportello Bancomat, sicuramente ci sarà un'operazione di autenticazione, una di sottrazione del denaro, una del prelievo pratico e così via; queste operazioni coincideranno concettualmente con INSERT, UPDATE e DELETE dalle tabelle di un database.

Sostanzialmente, le operazioni eseguite all'interno di una transazione devono essere confermate (viene fatta la Commit della transazione) affinchè tutte le modifiche apportare dalle suddette operazioni siano ritenute valide in modo atomico.

Altro esempio, quello del magazzino: quando viene ceduta merce, ci sarà una UPDATE per aggiornare le scorte e delle INSERT per inserire le righe nei documenti.
La transazione è costituita dall'esecuzione delle operazioni sopra nella loro interessa: se l'UPDATE va a buon fine, mentre l'INSERT va in errore, ci si ritroverebbe con una situazione anomala, con scorte di magazzino assenti ma nessun documento che ne attesti il rilascio.
Usando le transazioni, in caso di errore nella INSERT, la transazione viene annullata dimenticando tutto quanto è avvenuto al suo interno, quindi anche l'operazione di UPDATE.
Se invece non si verificano errori, allora la transazione viene confermata e le operazioni si applicano definitivamente, vengono cioè rese effettive e tutti gli utenti potranno vederle (sebbene sia possibile modificare i criteri di visibilità di tali modifiche agendo sulla configurazione del database, ma la trattazione è piuttosto ampia).

La conferma della transazione si chiama Commit, il suo annullamento viene definito Rollback.

Spero di essere riuscito nell'intento di fornirti chiari esempi.

Ciao! :ciauz:

Loading