問7 DBMS の原子性

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

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

DBMS に実装すべき原子性(atomicity)を説明したものはどれか。

  1. ア同一データベースに対する同一処理は,何度実行しても結果は同じである。
  2. イトランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。
  3. ウトランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。
  4. エ一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。
答えと解説を開く

正解はウです。

トランザクションは、ひとまとまりで行うべき処理の単位です。たとえば口座 A から口座 B への振込では、A から引く処理と B に足す処理が組になっています。途中で障害が起きて引く処理だけが残ると、お金が消えてしまいます。原子性は、こうした途中の状態を残さず、全部がコミットされるか、全部がロールバックで取り消されるかのどちらかにする性質です。正解はウです。

ほかの選択肢が違う理由

  • ア同じ処理を何度行っても結果が同じという性質は、べき等性の説明です。ACID 特性には含まれません。
  • イ完了したトランザクションの結果が障害のあとも失われないのは、耐久性 (durability) の説明です。
  • エ同時に動くほかのトランザクションの影響を受けないのは、独立性 (isolation) の説明です。

仕組み

トランザクションが守るべき 4 つの性質を ACID 特性と言います。原子性 (Atomicity)、一貫性 (Consistency)、独立性 (Isolation)、耐久性 (Durability) の頭文字です。

原子性は、DBMS がコミットとロールバックの仕組みで支えます。障害が起きたら、ログを使って未完了のトランザクションの変更を取り消します。

この問に出る言葉