スポンサーリンク

基本情報技術者試験 | 令和6年度(科目A) [問7] 過去問解説

スポンサーリンク

問題

問7

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

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

[出典:基本情報技術者試験 令和6年度(科目A) 問7]

スポンサーリンク

正解

正解は「」です。

解説

 この問題は、データベース管理システム(DBMS)が保証すべきトランザクションの特性「原子性(atomicity)」の理解を問うものです。

 原子性とは、トランザクション処理が「すべて実行されるか、まったく実行されないか」のどちらかであるという性質です。つまり、処理の途中でエラーが発生した場合には、処理全体がなかったこと(ロールバック)になるように設計されています。これは、データの整合性を守るための基本的な考え方です。

 選択肢ウの「トランザクション内の処理は、すべてが実行されるか、すべてが取り消されるかのいずれかである。」は、まさにこの定義そのものであり、正解です。

 たとえば銀行の送金処理で、送金元の口座から引き落とし処理が成功しても、送金先の口座への入金処理が失敗すれば、取引全体を取り消さなければなりません。そうしないと、利用者の資金が消えるといった重大な不整合が生じてしまいます。このように、「一連の処理は成功か失敗か」のどちらかでなければならないのです。

  • ア(同一データベースに対する同一処理は…):
     これは「冪等性(べきとうせい)」の説明であり、原子性とは関係がありません。
  • イ(トランザクション完了後に障害が発生しても…):
     これは「耐久性(durability)」を説明しています。原子性ではなく、処理完了後のデータの保証に関する特性です。
  • エ(他のトランザクションの影響を受けない):
     これは「独立性(isolation)」の説明です。他の処理に干渉されないという性質で、原子性とは別の特性です。

難易度

 この問題はトランザクション処理に関する4大特性(ACID)のうち「原子性」の定義を正しく理解していれば迷わず解ける問題です。しかし、他の選択肢がACIDの他の特性と似ているため、用語の区別がついていない初学者は混乱しやすいです。よって難易度は「普通」から「やや難」程度といえます。

スポンサーリンク

用語補足

原子性(Atomicity):
トランザクションが全て成功するか、すべて失敗して元に戻るかのどちらかになる特性。例:銀行振込処理が途中で止まっても最初からやり直される。

耐久性(Durability):
トランザクションが完了した後、その結果が障害などによって失われない性質。電源が落ちてもデータが消えないように保存されること。

独立性(Isolation):
複数のトランザクションが並行して実行されても互いに干渉せず、結果が一貫性を保つ性質。例:同じ商品を複数の顧客が同時に注文しても順序が守られる。

対策

 ACID特性(原子性・一貫性・独立性・耐久性)の用語とそれぞれの定義を正確に暗記し、似た表現と混同しないようにすることが重要です。日常の例(銀行処理、予約処理など)に置き換えて理解すると、記憶の定着が深まります。選択肢の違いを細かく読み取る練習もしておくとよいでしょう。