基本情報技術者試験過去問 令和6年度(2024年)科目A問7
DBMSに実装すべき原子性(atomicity)を説明したものはどれか。
選択肢
- ア:同一データベースに対する同一処理は,何度実行しても結果は同じである。
- イ:トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。
- ウ:トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。
- エ:一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
原子性(Atomicity)は、トランザクション内の処理が途中までだけ反映される状態を防ぐ性質です。トランザクション内の処理は、全て成功して確定するか、失敗した場合は全て取り消して開始前の状態に戻すかのどちらかになります。
Point
この問題は、トランザクションのACID特性のうち、原子性(Atomicity)が何を意味するかを確認することが狙いです。途中まで実行された更新を残さないという考え方(全実行か全取消しか)を、他の特性や似た用語と区別できるかがポイントです。
解くために必要な知識
この問題を解くには、トランザクションとACID特性の定義を整理して理解している必要があります。
用語の整理
| 用語 | 意味 |
|---|---|
| DBMS | データベース管理システム。データの格納、検索、更新、排他制御などを行います。 |
| トランザクション | データベースに対する一連の処理を、まとめて1つの処理単位として扱うものです。 |
| ACID特性 | トランザクション処理の正しさのために、DBMSが保証すべき4つの性質の総称です。 |
ACID特性(試験で問われやすい定義)
| 性質 | 意味 | 典型表現 |
|---|---|---|
| 原子性(atomicity) | 全て実行されるか、全て取り消されるかのどちらかになります。 | 全部か0か、途中結果が残らない |
| 一貫性(consistency) | トランザクションの前後で、データの整合性制約を満たした状態になります。 | 整合性が保たれる |
| 独立性(isolation) | 複数トランザクションを同時実行しても、互いの途中経過が影響しないようにします。 | 干渉しない、分離される |
| 耐久性(durability) | コミット完了後の結果は、障害が発生しても失われないようにします。 | 障害でも結果が残る |
他の選択肢に出てくる用語
| 用語 | 意味 |
|---|---|
| 冪(べき)等性 | 同一の操作を複数回実行しても、結果が1回実行した場合と同じになる性質です。 |
問題の解法手順
各選択肢の整理
| 選択肢 | 内容 | 対応する性質 | 正誤 |
|---|---|---|---|
| ア | 同一処理を何度実行しても結果が同じ | 冪(べき)等性(ACID特性ではない) | ✕ |
| イ | トランザクション完了後に障害が起きても更新内容が保証される | 耐久性(durability) | ✕ |
| ウ | 全て実行されるか全て取り消されるかのいずれか | 原子性(atomicity) | ◯ |
| エ | 他のトランザクションの影響を受けない | 独立性(isolation) | ✕ |
選択肢ごとの解説
- ア:不正解
「同一処理を何度実行しても結果が同じ」は冪(べき)等性の説明です。原子性は、失敗時に途中結果を残さず全体を取り消す(または全体が成功する)ことに関する性質です。よって誤りです。
- イ:不正解
「トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。」は、耐久性(Durability)の説明です。原子性ではありません。よって誤りです。
- ウ:正解
「トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。」は、原子性(Atomicity)の定義です。よって正解です。
- エ:不正解
「一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。」は、隔離性(Isolation)の説明です。原子性ではありません。よって誤りです。
まとめ
原子性(Atomicity)は、トランザクション内の処理が途中までだけ反映される状態を防ぐ性質です。トランザクション内の処理は、全て成功して確定するか、失敗した場合は全て取り消して開始前の状態に戻すかのどちらかになります。
「同一処理を何度実行しても結果が同じ」は冪(べき)等性の説明です。原子性は、失敗時に途中結果を残さず全体を取り消す(または全体が成功する)ことに関する性質です。よって誤りです。
「トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。」は、耐久性(Durability)の説明です。原子性ではありません。よって誤りです。
「トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。」は、原子性(Atomicity)の定義です。よって正解です。
「一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。」は、隔離性(Isolation)の説明です。原子性ではありません。よって誤りです。