令和元年度 秋期 午前 問28
データベース
取ることのない状態遷移
一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。
選択肢は原典では「遷移前の状態/遷移後の状態」の2列の表。
- ア遷移前:アボート処理中 / 遷移後:アボート済
- イ遷移前:アボート処理中 / 遷移後:コミット処理中
- ウ遷移前:コミット処理中 / 遷移後:アボート処理中
- エ遷移前:コミット処理中 / 遷移後:コミット済
答えと解説を見る
✓ これが正解イ遷移前:アボート処理中 / 遷移後:コミット処理中
解説
取消しの処理中から確定の処理中への移りはありません。
トランザクションは、始まってから終わるまでにいくつかの状態を通ります。動いている状態から先は、確定へ向かう道と取消しへ向かう道に分かれます。確定へ向かえば、確定の処理中を経て確定済みになります。取消しへ向かえば、取消しの処理中を経て取消し済みになります。確定の処理中から取消しへ移ることはありえます。書き込みの途中で不具合が起きれば、そこから巻き戻す必要があるからです。逆向きはありません。取消しの処理中に入った時点で、元へ戻す作業がすでに始まっており、そこから確定へ向かう意味がないためです。設問は取ることのない遷移を選ぶ形なので、この一方通行を見つければ決まります。状態の図を描くとき、矢印の向きまで書いておくと役に立ちます。状態遷移の図は、両端に始まりと終わりを置くと見通せます。
ほかの選択肢はなぜ違うのか
- ア遷移前:アボート処理中 / 遷移後:アボ…:取消しの処理を進めて、取消し済みへ落ち着く流れです。これは取消しの道筋そのものなので、ごく普通に起こります。設問が取ることのないものを問うている点に注意が必要です。元へ戻す作業が終われば、そこで一区切りが付きます。
- ウ遷移前:コミット処理中 / 遷移後:アボ…:確定の処理中に不具合が起き、そこから取消しへ切り替える流れです。書き込みの途中で問題が起きれば必要になるので、実際に起こりえます。確定へ進み始めても、まだ引き返せる段があるということです。保存先の空きが尽きる例があります。
- エ遷移前:コミット処理中 / 遷移後:コミ…:確定の処理を進めて、確定済みへ落ち着く流れです。これは最も普通の終わり方にあたります。起こりうるものを選んでしまわないよう、設問の言葉を読み返します。ここまで来れば、他の処理からも結果が見えるようになります。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和元年度 秋期 基本情報技術者試験 午前 問28
同じ用語が出る問題
- 令和6年度 科目A 問7:原子性に関する問題(トランザクション)
- 令和5年度 科目A 問7:ACIDに関する問題(トランザクション)
- 令和元年度 秋期 午前 問29:ロックが発生しないデータ処理順序(トランザクション)
- 平成30年度 秋期 午前 問55:キャパシティ管理に関する問題(トランザクション)
- 平成30年度 秋期 午前 問29:ロックの粒度に関する説明(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)