b'\n_START_ARTICLE_\nTransaction processing\n_START_SECTION_\nDescrizione\n_START_PARAGRAPH_\nUn processo di transazione \xc3\xa8 un tipo di elaborazione tipicamente riferito ad una base dati, bench\xc3\xa9 non si possa limitare la definizione solo per tale ambito. Pi\xc3\xb9 in generale riferendosi all\'ambito della informatica teorica, si pu\xc3\xb2 dire che questo tipo di elaborazioni sono destinate alla interazione con sistemi stabili ad uno stato noto, esaurendosi il processo attraverso iterazioni finite ed auto consistenti (cfr. definizione di cui sopra)._NEWLINE_Un esempio interessante \xc3\xa8 il processo che coinvolge una tipica transazione bancaria di bonifico._NEWLINE_Si consideri l\'ipotesi di un signore che intende trasferire \xe2\x82\xac100,00 dal proprio conto corrente verso un altro. Questa transazione \xc3\xa8 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 sistemi informatici delle banche coinvolte. \xc3\x88 dunque necessario accertarsi che entrambi i 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._NEWLINE_La strutturazione teorica del transaction processing \xc3\xa8 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._NEWLINE_Il sistema d\'elaborazione si accerta che tutti i singoli processi in una transazione siano completati senza errore, altrimenti nessuno di loro risulter\xc3\xa0 completato. Se alcuni processi sono stati infatti completati ma anche uno di essi risulta errato, vi sar\xc3\xa0 un\'operazione di rollback completo per tutti i processi, compresi quelli che erano stati completati con successo, e la transazione risulter\xc3\xa0 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 \xc3\xa8 ora possibile operare rollback del sistema._NEWLINE_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) nel mezzo di una transazione, non appena il sistema sar\xc3\xa0 di nuovo disponibile tutte le operazioni uncommitted (non completate in tutte le loro parti) saranno annullate attraverso un rollback di ciascuna di esse._NEWLINE_I processi di transazione sono elaborati dal sistema in un ordine strettamente cronologico. Se la transazione n+1 interessa la stessa porzione di database della transazione n, la transazione n+1 non inizia finch\xc3\xa9 la transazione n non risulta committed. Pi\xc3\xb9 in generale, perch\xc3\xa9 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.'