Transakce (přístup k datům MFC)
Koncept transakce byl vyvinut pro zpracování případů, ve kterých výsledný stav databáze závisí na celkové úspěšnosti řady operací. To může nastat, protože následné operace můžou změnit výsledky předchozích operací. V takových případech může být výsledná operace neurčitá.
Aby bylo možné tento problém vyřešit, transakce seskupují řadu operací takovým způsobem, aby byla zajištěna integrita konečného výsledku. Buď všechny operace musí proběhnout úspěšně a pak musí být potvrzeny (zapsány do databáze) nebo celá transakce selže. Zrušení transakce se nazývá vrácení zpět. Vrácení zpět umožňuje obnovení ze změn a vrací databázi do stavu předtransakce.
Například v automatizované bankovní transakci, pokud převádíte peníze z účtu A na účet B, jak výběr z A, tak vklad do B musí být úspěšně zpracovat finanční prostředky správně, nebo celá transakce musí selhat.
Transakce musí mít vlastnosti ACID, které stojí pro následující:
Transakce Atomicity A je atomická jednotka práce a provádí se přesně jednou. Buď se provádí všechna práce, nebo žádná z nich.
Transakce Konzistence A zachovává konzistenci dat, transformuje jeden konzistentní stav dat do jiného konzistentního stavu dat. Data vázaná transakcí musí být sémanticky zachována.
Izolace A transakce je jednotka izolace a každý se vyskytuje samostatně a nezávisle na souběžných transakcích. Transakce by nikdy neměla vidět přechodné fáze jiné transakce.
Transakce durability A je jednotka obnovení. Pokud transakce proběhne úspěšně, její aktualizace se zachovají, i když dojde k chybovému ukončení systému nebo je vypnuto. Pokud transakce selže, systém zůstane ve stavu předchozího potvrzení transakce.
V OLE DB můžete podporovat transakce (viz Podpora transakcí v OLE DB) nebo ODBC (viz Transakce (ODBC)).
Distribuovaná transakce je transakce, která aktualizuje distribuovaná data, tj. data ve více než jednom síťovém počítačovém systému. Pokud chcete podporovat transakce přes distribuovaný systém, měli byste místo podpory transakcí OLE DB použít ADO.NET.