マナビング基本情報技術者

トランザクションの特性は更新結果でどう見分けるか

基本情報技術者試験 令和5年度 問7 / データベース › トランザクション処理

過去問にチャレンジ

令和5年度 問7

トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。

  1. ア

    一貫性(consistency)

  2. イ

    原子性(atomicity)

  3. ウ

    耐久性(durability)

  4. エ

    独立性(isolation)

会話形式の解説

講師講師
更新の結果が二つに限られる点に注目します。一部だけ確定してもよい条件でしょうか。
受験者受験者
いいえ。全部終えるか、何も行わなかった状態に戻すかです。途中まで残るのは違います。
講師講師
その通りです。一連の更新を一つのまとまりとして扱い、一部だけ確定するのを防ぐ性質が原子性です。
受験者受験者
取り消すときは、途中の更新をどう扱いますか。
講師講師
未確定の更新をロールバックで戻します。これが、全く処理しなかった状態に戻す場合です。
受験者受験者
一貫性も、正しい状態を保つので近く見えます。
講師講師
一貫性が見るのは、更新の前後でデータの整合性を保つことです。全部確定するか全部取り消すかという条件とは異なります。
受験者受験者
耐久性は、確定した更新が残るかどうかですね。
講師講師
はい。障害後も確定済みの更新を保持する性質です。更新の一部だけが確定するかどうかを問うものではありません。
受験者受験者
独立性は、並行するトランザクション同士の干渉を防ぐ性質ですか。
講師講師
その通りです。複数の処理の関係を扱うので、この設問には当たりません。
受験者受験者
更新が全部かゼロかなら原子性、と判断できます。
講師講師
四つをまとめてACID特性と呼びます。更新前後の整合性、並行処理の干渉、確定後の保持と、どの場面を扱うかで区別しましょう。

まとめ

一連の更新を全て行うか、全て取り消すかを保証する性質は原子性です。取り消す場合は、未確定の更新をロールバックで戻します。一貫性は更新前後の整合性、独立性は並行処理の干渉、耐久性は確定後の保持に関わります。

解答・解説

正解はイです

この問題のテーマ

トランザクションのACID特性のうち、一連の更新を途中まで確定した状態にしない性質を問う問題です。

解き方の考え方

「完全に行う」か「全く行わなかった状態に戻す」か、という二つの結果に着目します。更新の一部だけが確定することを防ぐ性質を、選択肢から選びます。

選択肢ごとの解説

  1. ×ア  一貫性(consistency)
    一貫性は、更新の前後でデータの整合性を保つ性質です。設問が問うている、更新を全部確定するか全部取り消すかという条件には対応しません。
  2. ○イ  原子性(atomicity)
    原子性は、一連の更新を一つのまとまりとして扱い、その一部だけが確定する結果を防ぎます。処理を取り消す場合は、未確定の更新をロールバックで戻すため、設問の条件に当てはまります。
  3. ×ウ  耐久性(durability)
    耐久性は、確定済みの更新を障害後も保持する性質です。設問は確定後の保持ではなく、更新処理の結果を全部かゼロかにする性質を尋ねています。
  4. ×エ  独立性(isolation)
    独立性は、並行して動くトランザクション同士の干渉を防ぐ性質です。複数の処理の関係を扱うため、設問にある一連の更新の扱いとは異なります。

補足

この四つの性質をまとめてACID特性と呼びます。各名称を覚えるときは、更新のどの場面を扱う性質かを区別すると判断しやすくなります。

POINT

  • 原子性は、一連の更新の一部だけが確定することを防ぎます。
  • ロールバックは、未確定の更新を取り消します。
  • 一貫性は整合性、独立性は並行処理の干渉、耐久性は確定後の保持に関わります。

※出典:令和5年度 基本情報技術者試験 科目A 問7