Transaction processing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Rivisto incipit +fix stile +traduzione da aggiornare
 
(35 versioni intermedie di 24 utenti non mostrate)
Riga 1:
{{NN|informatica|febbraio 2013}}
Nell'ambito della [[Informatica teorica]], il '''''transaction processing''''' è quella modalità di gestione dei dati che opera le proprie elaborazioni attraverso la suddivisione in singole ed indivisibili operazioni chiamate ''transazioni''.<br/>
{{T|inglese|informatica|marzo 2024}}
Ciascuna transazione deve completarsi con un successo o con un fallimento delle operazioni associate in modo univoco, non potendo mai restare in uno stadio intermedio (ad esempio in uno ''stato di attesa'', di [[loop]], ecc.)<br/>
 
In [[informatica]] il '''''transaction processing''''' ({{lett|elaborazione delle transazioni}}) è un [[paradigma]] di elaborazione in cui ogni operazione viene svolta nell'ambito di una transazione, ovvero una sequenza indivisibile di operazioni che in caso di fallimento (anche parziale) viene annullata nella sua interezza.
 
== Descrizione ==
Un '''''processo di transazione''''' è un tipo di elaborazione tipicamente riferito ad una [[database|base dati]], benché non si possa limitare la definizione solo per tale ambito. Più in generale riferendosi all'ambito della [[informatica teorica]], si può dire che questo tipo di elaborazioni sono destinate alla [[interazione]] con sistemi stabili ad uno ''stato noto'', esaurendosi il processo attraverso [[iterazione|iterazioni]] finite ed auto consistenti (cfr. definizione di cui sopra).
 
Un esempio interessante è il processo che coinvolge una tipica ''[[transazione bancaria]]'' di ''[[bonifico]]''.
Un '''''processo di transazione''''' è un tipo di elaborazione tipicamente riferito ad una [[database|base dati]], benché non si possa limitare la definizione solo per tale ambito. Più in generale riferendosi all'ambito della [[informatica teorica]], si può dire che questo tipo di elaborazioni sono destinate alla [[interazione]] con sistemi stabili ad uno ''stato noto'', esaurendosi il processo attraverso [[iterazione|iterazioni]] finite ed auto consistenti (cfr. definizione di cui sopra).
Si consideri l'ipotesi di un signore che intende trasferire [[€]]100,00 dal proprio [[conto corrente]] verso un altro. Questa transazione è una singola operazione secondo la [[banca]], ma coinvolge contemporaneamente due funzionamenti separati in termini di elaborazione informatica: addebitamento del cliente per i 100 euro ipotizzati e accredito della medesima cifra per il destinatario del bonifico effettuato. Se l'addebito si conclude con successo, ma non l'accredito (o viceversa), ci sarebbe un errore in uno dei due [[Sistema (informatica)|sistemi informatici]] delle banche coinvolte. E'È dunque necessario accertarsi che entrambi i [[processo|processi]] riescano oppure che entrambi vengono a mancare, di modo che non vi sia mai alcuna contraddizione nella base dati della banca o delle banche coinvolte.
 
La strutturazione teorica del ''transaction processing'' è destinata a fornire la garanzia di coerenza rispetto alle elaborazioni di questo genere; i diversi funzionamenti di ciascuna parte della elaborazione, legata ad una [[Funzione (informatica)|funzione]], sono collegati insieme automaticamente come singola transazione indivisibile.
Un esempio interessante è il processo che coinvolge una tipica ''[[transazione bancaria]]'' di ''[[bonifico]]''.
Si consideri l'ipotesi di un signore che intende trasferire €100,00 dal proprio [[conto corrente]] verso un altro. Questa transazione è una singola [[operazione bancaria|operazione]] secondo la [[banca]], ma coinvolge almeno due funzionamenti separati in termini di [[elaborazione informatica]]: [[addebito|addebitamento]] del cliente per i cento euro ipotizzati ed [[accredito]] della stessa cifra per il destinatario del bonifico effettuato.
Se l'addebito si conclude con successo ma non l'accredito (o viceversa), ci sarebbe un errore in uno dei due [[Sistema (informatica)|sistemi informatici]] delle banche coinvolte. E' dunque necessario accertarsi che entrambi i [[processo|processi]] riescano oppure che entrambi vengono a mancare, di modo che non vi sia mai alcuna contraddizione nella base dati della banca o delle banche coinvolte.
La strutturazione teorica del ''transaction processing'' è destinata a fornire la garanzia di coerenza rispetto alle elaborazioni di questo genere; i diversi funzionamenti di ciascuna parte della elaborazione, legata ad una [[funzione]], sono collegati insieme automaticamente come singola transazione indivisibile.
Il sistema d'elaborazione si accerta che tutti i singoli processi in una transazione siano completati senza errore, altrimenti nessuno di loro risulterà completato. Se alcuni processi sono stati infatti completati ma anche uno di essi risulta errato, vi sarà un'operazione di ''[[rollback]]'' completo per tutti i processi, compresi quelli che erano stati completati con successo, e la transazione risulterà non eseguita. Lo stato del sistema viene ricondotto allo ''stato noto'' precedente, senza memoria delle operazioni tentate o completate all'interno della transazione stessa.
Diversamente, se tutte le operazioni previste per una transazione sono completate con successo, la transazione si definisce "''committed''" e lo ''stato del sistema'' passa a quello successivo. Tutti i cambiamenti delle basi dati coinvolte vengono resi permanenti (definitivi) e non è ora possibile operare ''rollback'' del sistema.
 
Il sistema d'elaborazione si accerta che tutti i singoli processi in una transazione siano completati senza errore, altrimenti nessuno di loro risulterà completato. Se alcuni processi sono stati infatti completati ma anche uno di essi risulta errato, vi sarà un'operazione di ''[[rollback]]'' completo per tutti i processi, compresi quelli che erano stati completati con successo, e la transazione risulterà non eseguita. Lo stato del sistema viene ricondotto allo ''stato noto'' precedente, senza memoria delle operazioni tentate o completate all'interno della transazione stessa. Diversamente, se tutte le operazioni previste per una transazione sono completate con successo, la transazione si definisce "''committed''" e lo ''stato del sistema'' passa a quello successivo. Tutti i cambiamenti delle basi dati coinvolte vengono resi permanenti (definitivi) e non è ora possibile operare ''rollback'' del sistema.
Un processo di transazione garantisce l'elaborazione rispetto ad errori [[hardware]] o [[software]] che potrebbero bloccare un ''transaction processing'' in una fase intermedia, parziale, lasciando il sistema in uno ''stato non noto'', detto anche ''inconsistente''.
Se infatti un server oppure un computer si blocca (''[[system crash]]'') nel mezzo di una transazione, non appena il sistema sarà di nuovo disponibile tutte le operazioni ''uncommitted'' (non completate in tutte le loro parti) saranno annullate attraverso un ''rollback'' di ciascuna di esse.
 
Un processo di transazione garantisce l'elaborazione rispetto ad errori [[hardware]] o [[software]] che potrebbero bloccare un ''transaction processing'' in una fase intermedia, parziale, lasciando il sistema in uno ''stato non noto'', detto anche ''inconsistente''. Se infatti un [[server]] oppure un [[computer]] si blocca (''[[crash (informatica)|crash]]'') nel mezzo di una transazione, non appena il sistema sarà di nuovo disponibile tutte le operazioni ''uncommitted'' (non completate in tutte le loro parti) saranno annullate attraverso un ''rollback'' di ciascuna di esse.
I processi di transazione sono elaborati dal sistema in un ordine strettamente cronologico. Se la tranzazione '''''n+1''''' interessa la stessa porzione di database della transazione '''''n''''', la transazione '''''n+1''''' non inizia finché la transazione '''''n''''' non risulta ''committed''. Più in generale, perché una transazione risulti al sistema ''committed'', tutte le altre transazioni che interessano la stessa parte del sistema devono risultare ''committed''; non ci possono essere "''buchi''" nella sequenza delle transazioni che la precedono.<br/>
 
I processi di transazione sono elaborati dal sistema in un ordine strettamente cronologico. Se la tranzazionetransazione '''''n+1''''' interessa la stessa porzione di database della transazione '''''n''''', la transazione '''''n+1''''' non inizia finché la transazione '''''n''''' non risulta ''committed''. Più in generale, perché una transazione risulti al sistema ''committed'', tutte le altre transazioni che interessano la stessa parte del sistema devono risultare ''committed''; non ci possono essere "''buchi''" nella sequenza delle transazioni che la precedono.<br/>
== Voci collegate ==
 
== Bibliografia ==
*[[Information Management System]]
* [[Jim Gray (computer scientist)|Jim Gray]], Andreas Reuter, Transaction Processing - Concepts and Techniques, 1993, Morgan Kaufmann, ISBN 1-55860-190-2
*[[ACID]]
* Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN 1-55860-415-4
*[[ACMS|Application Control Management System]]
* Ahmed K. Elmagarmid (Editor), Transaction Models for Advanced Database Applications, Morgan-Kaufmann, 1992, ISBN 1-55860-214-3
*[[CICS]]
*[[Java EE]] (e.g. [[WebSphere]] [[Application Server]])
*[[JTA|Java Transaction API]] (JTA)
*[[Transazione (database)]]
*[[Transaction Processing System]]
*[[OLTP]]
 
== CollegamentiVoci esternicorrelate ==
 
* [[Information Management System]]
* {{en}} [http://books.google.it/books?id=S_yHERPRZScC&dq=transaction+processing&pg=PP1&ots=JItwPSIACd&sig=M7lR3IOi17ZoPH1EgfXMbr2PvY4&prev=http://www.google.it/search%3Fclient%3Dfirefox-a%26rls%3Dorg.mozilla%253Ait%253Aofficial%26channel%3Ds%26hl%3Dit%26q%3Dtransaction%2Bprocessing%26meta%3D%26btnG%3DCerca%2Bcon%2BGoogle&sa=X&oi=print&ct=title&cad=one-book-with-thumbnail#PPP1,M1 Jim Gray - Transaction Processing - Concepts and Techniques]
* [[ACID]]
* {{en}} [http://www.tpc.org/ Transaction Processing Performance Council]
* [[ACMS|Application Control Management System]]
* [[Customer Information Control System]]
* [[Java EE]]
* [[CICSJTA]]
* [[Transazione (databasebasi di dati)]]
* [[Transaction Processing System]]
* [[OLTP]]
 
== BibliografiaCollegamenti esterni ==
* {{en}}cita [web|url=http://books.google.it/books?id=S_yHERPRZScC&dq=transaction+processing&pg=PP1&ots=JItwPSIACd&sig=M7lR3IOi17ZoPH1EgfXMbr2PvY4&prev=http://www.google.it/search%3Fclient%3Dfirefox-a%26rls%3Dorg.mozilla%253Ait%253Aofficial%26channel%3Ds%26hl%3Dit%26q%3Dtransaction%2Bprocessing%26meta%3D%26btnG%3DCerca%2Bcon%2BGoogle&sa=X&oi=print&ct=title&cad=one-book-with-thumbnail#PPP1,M1 |titolo=Jim Gray - Transaction Processing - Concepts and Techniques]|lingua=en}}
* {{en}}cita [web|http://www.tpc.org/ |Transaction Processing Performance Council]|lingua=en}}
 
{{Controllo di autorità}}
*[[Jim Gray (computer scientist)|Jim Gray]], Andreas Reuter, Transaction Processing - Concepts and Techniques, 1993, Morgan Kaufmann, ISBN 1-55860-190-2
{{Portale|informatica|ingegneria}}
*Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN 1-55860-415-4
*Ahmed K. Elmagarmid (Editor), Transaction Models for Advanced Database Applications, Morgan-Kaufmann, 1992, ISBN 1-55860-214-3
 
[[Categoria:Terminologia informatica]]
[[Categoria:DatabaseTeoria delle basi di dati]]
[[Categoria:TeorieIngegneria sudel base datisoftware]]
 
[[en:Transaction processing]]
[[cs:Transakční zpracování]]
[[de:Transaktionsmonitor]]
[[es:Gestor transaccional]]
[[fr:Transaction informatique]]
[[nl:Transactie (dataopslag)#Uitleg]]
[[ja:トランザクション処理]]
[[pt:Processamento de transação]]