SAシステムアーキテクト試験 午前Ⅱ

平成25年度秋期 システムアーキテクト 午前Ⅱ 問22

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

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

問われている性質の保証対象を見極める

トランザクションの特性は、それぞれ異なる状況で何を保証するかによって区別されます。設問で指定された性質の名称を確認し、各候補がどのような場面で何を守ろうとしているのかという観点に絞って検討しましょう。

この問題で問われていること

この問題で確認したいのは、指定された性質が守ろうとしている対象と、それが意識される場面です。名称の語感だけで判断せず、その性質が欠けた場合に何が起こり得るかを自分の言葉で想定してから、候補と照らし合わせてください。

視点

DBMSのトランザクション特性は、複数の性質がそれぞれ別の観点から処理の信頼性を支える考え方です。性質ごとに『どんな場面で問題になるか』『何が保たれるべきか』が異なるため、名称と保証内容を対応づけて理解することが学習の基本になります。印象の似た性質同士は混同しやすいので注意しましょう。

確認ポイント

  • 設問で指定されている性質の名称を正確に読み取れているか
  • その性質が欠けたときに生じる不都合を、自分の言葉で一つ想定できているか
  • 各候補が扱っている場面と保証対象が、想定した不都合と対応しているか
正解と解説を見る

正解

ウ

解説

原子性とは、トランザクション内の処理を一体の処理単位として扱い、全て成功するか、失敗時には全て取り消されることを保証する性質です。

理由

トランザクションは、複数の更新処理をまとめて実行する単位です。原子性があれば、処理の一部だけが反映された中途半端な状態を避け、全て実行されるか全て取り消されるかのどちらかになります。

比較

ハードウェア障害後も更新内容を保証する性質は永続性、他のトランザクションの影響を受けない性質は分離性に関係します。同じ処理の結果が同じという説明は、原子性そのものではありません。

選択肢ア

これは不正解だよ。同一処理を何度実行しても結果が同じという説明は、処理結果の再現性に関する内容です。トランザクション内の処理が全て実行されるか、全て取り消されるかという原子性の定義を示していません。

選択肢イ

これは不正解だよ。トランザクション完了後にハードウェア障害が発生しても更新内容を保証するという説明は、障害後も確定したデータを保持する永続性に関するものです。処理全体の一括実行や一括取消しを表していません。

選択肢ウ(正解)

これは正解だよ。原子性は、トランザクション内の処理を分割できない一つの単位として扱う性質です。そのため、処理が全て実行されるか、失敗時には全て取り消されるかのいずれかになります。

選択肢エ

これは不正解だよ。一つのトランザクションの処理結果が他のトランザクションの影響を受けないという説明は、同時実行時の干渉を防ぐ分離性に関するものです。処理全体の実行または取消しを示す原子性とは異なります。

学習のポイント

原子性と、永続性・一貫性・分離性の違いを整理して覚えましょう。

出典:独立行政法人 情報処理推進機構(IPA)平成25年度秋期 システムアーキテクト試験 午前Ⅱ 問22(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針