問題
問7
DBMSに実装すべき原子性(atomicity)を説明したものはどれか。
- 同一データベースに対する同一処理は,何度実行しても結果は同じである。
- トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。
- トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。
- 一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。
[出典:基本情報技術者試験 令和6年度(科目A) 問7]
スポンサーリンク
正解
正解は「ウ」です。
解説
この問題は、データベース管理システム(DBMS)が保証すべきトランザクションの特性「原子性(atomicity)」の理解を問うものです。
原子性とは、トランザクション処理が「すべて実行されるか、まったく実行されないか」のどちらかであるという性質です。つまり、処理の途中でエラーが発生した場合には、処理全体がなかったこと(ロールバック)になるように設計されています。これは、データの整合性を守るための基本的な考え方です。
選択肢ウの「トランザクション内の処理は、すべてが実行されるか、すべてが取り消されるかのいずれかである。」は、まさにこの定義そのものであり、正解です。
たとえば銀行の送金処理で、送金元の口座から引き落とし処理が成功しても、送金先の口座への入金処理が失敗すれば、取引全体を取り消さなければなりません。そうしないと、利用者の資金が消えるといった重大な不整合が生じてしまいます。このように、「一連の処理は成功か失敗か」のどちらかでなければならないのです。
- ア(同一データベースに対する同一処理は…):
これは「冪等性(べきとうせい)」の説明であり、原子性とは関係がありません。 - イ(トランザクション完了後に障害が発生しても…):
これは「耐久性(durability)」を説明しています。原子性ではなく、処理完了後のデータの保証に関する特性です。 - エ(他のトランザクションの影響を受けない):
これは「独立性(isolation)」の説明です。他の処理に干渉されないという性質で、原子性とは別の特性です。
難易度
この問題はトランザクション処理に関する4大特性(ACID)のうち「原子性」の定義を正しく理解していれば迷わず解ける問題です。しかし、他の選択肢がACIDの他の特性と似ているため、用語の区別がついていない初学者は混乱しやすいです。よって難易度は「普通」から「やや難」程度といえます。
スポンサーリンク
用語補足
原子性(Atomicity):
トランザクションが全て成功するか、すべて失敗して元に戻るかのどちらかになる特性。例:銀行振込処理が途中で止まっても最初からやり直される。
耐久性(Durability):
トランザクションが完了した後、その結果が障害などによって失われない性質。電源が落ちてもデータが消えないように保存されること。
独立性(Isolation):
複数のトランザクションが並行して実行されても互いに干渉せず、結果が一貫性を保つ性質。例:同じ商品を複数の顧客が同時に注文しても順序が守られる。
対策
ACID特性(原子性・一貫性・独立性・耐久性)の用語とそれぞれの定義を正確に暗記し、似た表現と混同しないようにすることが重要です。日常の例(銀行処理、予約処理など)に置き換えて理解すると、記憶の定着が深まります。選択肢の違いを細かく読み取る練習もしておくとよいでしょう。