Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Transakce je skupina operací, které mají následující vlastnosti: atomické, konzistentní, izolované a odolné (ACID). Podpora transakcí umožňuje vyvíjet nové typy aplikací, zjednodušuje proces vývoje a zvyšuje robustnost aplikace. Zbývající část tohoto tématu obsahuje scénáře, které ukazují potřebu těchto vlastností, a pak tabulku, která definuje každou vlastnost.
V atomické skupině operací musí být každá operace ve skupině úspěšná, nebo všechny z nich musí být vráceny zpět (označované také jako vrácení zpět). Například bankovní převod musí být atomická sada dvou operací: inkasa z jednoho účtu a kredit na jiný účet. Debet a úvěr musí být implementovány jako atomová skupina. Pokud tyto dvě operace nejsou oba úspěšné, převod je buď nespravedlivě ve prospěch banky nebo držitele účtu.
Požadavek konzistence znamená, že data jsou konzistentní po transakci (za předpokladu, že jsme začali s konzistentním systémem před transakcí). V příkladu bankovního převodu může být konzistence definována tak, že zůstatek kombinovaného účtu těchto dvou účtů je konstantní. Aby bylo možné implementovat konzistenci v příkladu bankovního převodu, musí být debetní a kreditní operace pro stejnou částku.
Dalším příkladem transakce je aktualizace webu. Web elektronického obchodování vyžaduje, aby se nová navigační stránka kategorií produktů zobrazovala přesně ve stejnou dobu jako stránky s podrobnostmi o produktu, které popisují nové produkty. V tomto případě je potřeba aktualizovat a přidat více adresářových položek pod kontrolu transakce. Nejenže je nutné, aby aktualizace byly atomické, ale je také nutné, aby nakupující zákazník neviděl probíhající aktualizace. Toto je příklad izolace vlastnost transakcí.
Vlastnost stálosti vyžaduje, aby po dokončení aktualizace jeho účinky trvaly i v případě, že systém přestane reagovat. V předchozím příkladu lze stálost poskytnout jednoduše zajištěním odpovídajícího obnovení dat, aby se všechny nové položky systému souborů, které představují přidání nového produktu do lokality, objevily, jakmile systém přestane reagovat. To vyžaduje systém s mechanismy zálohování, obnovení a vysoké dostupnosti dat.
Záruka atomicity transakce i ostatních vlastností je zaručena i při jakémkoli počtu selhání, včetně selhání, ke kterým dochází během procesu obnovy předchozího selhání. Systém nakonec dosáhne jednoho ze dvou stavů: všechny operace byly použity nebo nebyly použity žádné operace.
Vlastnosti transakce jsou shrnuty v následující tabulce.
Termín | Popis |
---|---|
Atomový |
Buď všechny operace v transakci jsou úspěšné, nebo žádný z operací přetrvává. |
Konzistentní |
Pokud jsou data konzistentní před zahájením transakce, budou po dokončení transakce konzistentní. |
izolované |
Účinky probíhající transakce jsou skryté před všemi ostatními transakcemi. |
Odolný |
Po dokončení transakce jsou jeho výsledky trvalé a přežijí chybu systému. |
Tyto vlastnosti zajišťují, že software dokáže zpracovat neočekávané chyby, protože může jednoduše přerušit transakci, když neočekávaná situace brání úspěšnému dokončení. Infrastruktura transakcí zajišťuje, že se všechny účinky přerušené transakce vrátí zpět a vrátí data do konzistentního stavu. Transakční systém proto umožňuje řádné obnovení ze selhání systému.
Aby bylo možné zaručit vlastnosti ACID, musí mít systém, který podporuje transakce, robustní funkce protokolování, které lze použít k potvrzení nebo vrácení transakcí zpět podle potřeby. Další informace naleznete v části Systém souborů pro běžné protokolování.