データベース|平成26年度 秋期 ITパスポート試験(特別措置試験) 問71
図は処理1,処理2の順でデータベースを更新するトランザクションの処理フローを示している。図中のa〜cのうち,コミット処理(処理1,処理2の更新結果を確定させる処理)に該当する箇所だけを全て挙げたものはどれか。
〔図(処理フロー)〕
```
開始
↓
処理1
↓
〈処理1が正常終了したか?〉── No ──────────────┐
│ Yes │
処理2 │
↓ │
〈処理2が正常終了したか?〉── No ──┐ │
│ Yes │ │
〔a〕 〔b〕 〔c〕
└───────────────←──────────────┴──────────┘
↓
終了
```
- ✓ これが正解a
- a,b
- b,c
- c
解説
枝ごとに、そこへ着くための条件を書き出してから読みます。
この図には確かめる場所が二つあり、そこから枝が分かれます。最初の処理でつまずいた枝、最初は通ったが次の処理でつまずいた枝、そして両方とも通った枝の三本です。更新を確かめて残すのは、三本めに着いたときだけです。トランザクションは全部やるか、何もしなかったことにするかの二択で、途中まで残すという扱いを持ちません。この決まりには四つの性質が並びます。全部やるか何もしないか、決めごとを壊さないこと、同時に走っても互いに邪魔しないこと、そして終わったものは失われないことです。途中まで残せてしまうと、引き落としたのに入金されていない状態が残ります。だから、二つの確かめる場所を通り抜けたときだけ確定させ、そうでなければ行った更新を丸ごと取り消します。変える前の値を控えておく仕掛けも備わっています。
ほかの選択肢はなぜ違うのか
- 二つめの処理でつまずいた枝が混じっています。そこでは、始める前の姿へ戻すほうを選びます。次の処理が通らなかったときにどうするかと問われたなら、行った更新を取り消すのが答えになります。片方だけを残すことはできません。
- つまずいた枝ばかりを二つ挙げています。どちらも戻す側にあたります。しくじった行き先をすべて挙げよと言われたなら、この組が答えになります。ただし、そこで行うのは確定ではなく、ちょうどその反対の始末にあたります。戻した跡は記録に残ります。
- 最初の処理でつまずいた枝を挙げています。次の処理は動いてすらいません。一つめでしくじった場合の行き先を指せと言われたなら、この位置が答えになります。二つめは動いてすらいないので、取り消す量もいちばん小さく済みます。
この問題に関係する言葉
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成26年度 秋期 ITパスポート試験(特別措置試験) 問71
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)