本文へスキップ

IT PASSPORT

ITパスポートの問題解説

テクノロジ系 難しい itpassport_tech_045

問題

在庫管理システムで、商品の出庫数を登録する処理と在庫数を減らす処理を一つのトランザクションにまとめている。出庫数の登録は成功したが、在庫数を更新する直前にシステム障害が発生した。このトランザクションに対する正しい処置はどれか。

  1. ロールバックして、出庫数の登録も取り消し、トランザクション開始前の状態に戻す。
  2. 出庫数の登録だけをコミットし、在庫数の更新は次回まとめて処理する。
  3. 在庫数を手作業で推測して入力し、不足分は後から帳尻を合わせる。
  4. 障害が直るまで在庫数だけをマイナスのまま放置し、参照を許可する。
出典:オリジナル問題|参考範囲:IPA ITパスポート試験シラバス(最新版)、情報処理技術者試験の基礎知識

正解と解説

正解:ロールバックして、出庫数の登録も取り消し、トランザクション開始前の状態に戻す。

解説:出庫数の登録と在庫数の更新は本来セットで成立すべき処理です。片方だけが反映されると「出したのに在庫が減っていない」という矛盾が生じます。原子性により、途中で障害が起きたトランザクションは確定されず、ログを使って開始前の状態へ戻す(ロールバック)のが原則です。これで出庫数の登録も取り消され、データの整合性が保たれます。仮に出庫数だけをコミットすれば原子性が崩れ、手作業で在庫数を推測して入力すれば一貫性が損なわれ、中途半端な状態のまま参照を許せば矛盾したデータが見えてしまうため、いずれも不適切です。復旧後にあらためて最初から処理をやり直せば、出庫と在庫の両方が正しく更新されます。

覚え方:「片方だけ成功はNG」が合言葉。未確定の処理は迷わず巻き戻す、と覚えましょう。

他の選択肢はなぜ違う?

  • 片方だけをコミットすると出庫と在庫が食い違い、原子性が崩れます。トランザクションは全部成功か全部取り消しのいずれかです。
  • 手作業の推測入力はデータの正確さを損ない、一貫性を保てません。トランザクションの仕組みに反する対応です。
  • 中途半端な状態を残したまま参照を許すと矛盾したデータが見えてしまい、信頼性が失われます。

この問題について

出典:オリジナル問題|参考範囲:IPA ITパスポート試験シラバス(最新版)、情報処理技術者試験の基礎知識

IPAのITパスポート試験シラバスとIT基礎知識を参考に、Sikaku Master向けに独自作成した問題です。公式試験問題・過去問題の転載ではありません。

IPAの過去問題の転載ではなく、シラバス・公開情報に基づく独自問題として作成しています。

確認状況: 独自作成問題として編集確認済み。公開後も誤り報告を受け付けています。

RELATED

関連問題