原子性と原子スコープを理解するには、ユーザーの銀行残高を変更するために、以下の非原子的操作シーケンスを検討してください。
1.銀行からの残高を読んでください。
2。残高からトランザクション額を減算します。
3。バランスを銀行に戻します。
これらの操作が成功するには、読み取りと書き込みの間にデータベースをロックする必要があります。さらに、トランザクション中に何か問題が発生した場合(たとえば、書き込み操作中にデータベースがオフラインになります)、操作は完全に失敗する必要があり、データベースはトランザクションが開始される前に状態に復元する必要があります。
Atomicityでは、一連の操作が単一の操作として動作するか、完全に失敗します。つまり、特定の操作を実行するコードは *Atomic Scope *内に囲まれており、シーケンス内の操作が失敗した場合、シーケンス内の操作がこれまでに発生していないかのように、トランザクション全体がロールバックされます。
アトミックスコープは保証されます。
1.スコープ内の操作が失敗しない場合、すべての操作が発生します。
2.スコープ内の操作が失敗した場合、操作はどれも発生しません。そして
3.操作が失敗し始めた場合、すでに発生した操作はすぐに戻ってきて、操作が開始される前にシステムをその状態に復元します。