Transazione distribuita
Per '''transazione distribuita''' si intende una [[Transazione (basi di dati)|transazione]] di una [[base di dati]] in cui sono coinvolti due o più host di rete. Di solito, gli host forniscono '''risorse transazionali''', mentre il [[Gestore di transazioni|transaction manager]] è responsabile della creazione e della gestione di una transazione globale che include tutte le operazioni di tali risorse. Le transazioni distribuite, come ogni altra transazione, devono far prevalere tutte le quattro proprietà [[ACID]], dove l'atomicità garantisce un risultato completo o nullo.

Open Group, un consorzio di vendita, propose il [[X/Open XA|X/Open Distributed Transaction Processing (DTP) Model]], che diventò uno standard ''[[de facto]]'' per il comportamento dei componenti model delle transazioni.

I [[Base di dati|database]] sono comunemente delle risorse transazionali e, spesso, le transazioni utilizzano una coppia di tali basi di dati. In questo caso, una transazione distribuita può essere vista come una transazione che deve essere [[Sincronizzazione|sincronizzata]] (o prevedere le proprietà ACID) fra i database partecipanti, che sono distribuiti in luoghi fisici diversi. La proprietà di isolamento nelle proprietà ACID pone una speciale sfida per le transazione multiple, poiché la proprietà di serializzabilità può essere violata anche se ogni database la prevede. In pratica, la maggior parte dei [[Database management system|DBMS]] commerciali usa uno [[Two-phase locking#Strict 2PL|strong strict two-phase locking (SS2PL)]] per il controllo della concorrenza che, se tutti i database partecipanti lo utilizzano, garantisce una serializzabilità globale.

== Bibliografia ==
* {{Cita libro|titolo=Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery|url=https://archive.org/details/transactionalinf0000weik|autore=Gerhard Weikum|autore2=Gottfried Vossen|editore=Morgan Kaufmann|città=Burlington|anno=2002|lingua=en|ISBN=1-55860-508-8|cid=Weikum e Vossen (2002)}}

== Voci correlate ==
* [[Protocollo di aggiornamento a due fasi]]
* [[Java Transaction API]]

== Collegamenti esterni ==
* {{Cita web|url=http://gsraj.tripod.com/misc/ejbmtscomp.html|titolo=A Detailed Comparison of Enterprise JavaBeans (EJB) & The Microsoft Transaction Server (MTS) Models|lingua=en|cid=Gsraj.tripod.com|accesso=15 aprile 2018|urlarchivio=https://web.archive.org/web/20180309183046/http://gsraj.tripod.com/misc/ejbmtscomp.html}}
* {{Cita web|url=http://www.subbu.org/articles/transactions/NutsAndBoltsOfTP.html|titolo=Nuts And Bolts Of Transaction Processing|lingua=en|cid=Subbu.org|accesso=3 maggio 2005|urlarchivio=https://web.archive.org/web/20141018120251/http://www.subbu.org/articles/transactions/NutsAndBoltsOfTP.html}}
* {{Cita web|url=http://xml.sys-con.com/read/43755.htm|titolo=Web-Services Transactions|lingua=en|cid=Xml.sys-con.com|accesso=2 maggio 2005|urlarchivio=https://web.archive.org/web/20080511221610/http://xml.sys-con.com/read/43755.htm}}

{{Portale|informatica}}

[[Categoria:Teoria delle basi di dati]]