問7 トランザクションの原子性

基本情報​技術者試験 令和5年度 公開問題 科目A、全20問のうちの問7。

出典:令和5年度 基本情報技術者試験 公開問題 科目A 問7

トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。

  1. ア一貫性(consistency)
  2. イ原子性(atomicity)
  3. ウ耐久性(durability)
  4. エ独立性(isolation)
答えと解説を開く

正解はイです。

トランザクションは、まとめて 1 つとして扱う処理の単位です。たとえば口座の振替では、A の口座から引く処理と B の口座に足す処理を両方やらないと、お金が消えたり増えたりします。そこで、すべて成功したら確定 (コミット) し、途中で失敗したらすべてを元に戻します (ロールバック)。この「途中の状態を残さない」性質が原子性です。原子 (atom) が「それ以上分けられない物」を表すことから来ています。正解はイです。

ほかの選択肢が違う理由

  • ア一貫性は、トランザクションの前後でデータが矛盾のない状態 (残高が負にならないなどの決まり) を保つ性質です。
  • ウ耐久性は、確定したトランザクションの結果が、障害が起きても失われない性質です。
  • エ独立性は、同時に動く複数のトランザクションが互いに影響しない性質です。

仕組み

トランザクションが満たすべき 4 つの性質を、頭文字を取って ACID 特性と呼びます。原子性 (Atomicity)、一貫性 (Consistency)、独立性 (Isolation)、耐久性 (Durability) です。

原子性を守るため、データベースは更新の前の値をログに残しておきます。失敗したときは、そのログを使って元の状態に戻します。

この問に出る言葉