戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2011年 春期 78


問題文

データベースのトランザクション処理に関する次の記述中のa, bに入れる字句の適切な組合せはどれか。
複数のユーザが同時に同じデータを更新しようとしたとき、データの整合性を保つために、そのデータへのアクセスを一時的に制限する仕組みを[ a ]という。これを実現する一つの方法は、データを更新する前に、そのデータに[ b ]をかけ、処理が終了するまではほかのユーザからのアクセスを制限することである。
ITパスポート 2011年 春期  問78の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

データベースのトランザクション処理に関する問題【ITパスポート 解説】

正解の理由

複数ユーザが同時に同じデータを更新するときに「データの整合性を保つためにアクセスを一時的に制限する仕組み」を表す語は「排他制御(はいせい・せいぎょ:exclusive control、他を排して一つの利用にする制御)」です。
その具体的な方法として「更新前にそのデータにロック(lock:データに対する利用権を一時的に確保する仕組み)をかける」ことがよく使われます。よって正しい組み合わせは の「排他制御」と「ロック」です。
短くいうと:
  • 排他制御=同時アクセスを抑えて整合性を守る仕組み
  • ロック=排他制御を実現するためにデータに“鍵”をかける操作

解法ステップ

  1. 問題文のキーワードを探す:「同時に同じデータを更新」「データの整合性を保つ」「アクセスを一時的に制限」 → 「同時実行制御」や「排他」に関する言葉を連想する。
  2. aの枠には仕組みの名称:ここは「排他制御」が適切。
  3. bの枠にはその仕組みを実現する手段:実際にかけるものは「ロック」。
  4. 選択肢を照合して、a=排他制御、b=ロック の組み合わせを探す → を選ぶ。

選択肢別の誤答解説

  • ア(経路制御 / デッドロック)
    • 経路制御はネットワークや通信でパケットや経路を制御する意味で、データベースの同時更新制御とは無関係。デッドロックはロックが原因で発生する「互いに解除を待って進まない状態」であり、制御の名前ではない。従って組合せが不適切。
  • イ(経路制御 / ロック)
    • bの「ロック」は正しい手段ですが、aにある経路制御が不適。経路制御はデータベースの排他制御を示す語ではない。
  • ウ(排他制御 / デッドロック)
    • aの「排他制御」は正しいですが、bの「デッドロック」は“起こりうる問題”の名前であって、ロックの代わりに「かけるもの」ではない。問題文は「更新前に〜をかける」とあるため、ここには「ロック」が入る。
  • エ(排他制御 / ロック)
    • aもbも問題文に合致。よって正しい。

よくある誤解

  1. 「デッドロック=排他制御の別名」と誤解する
    • デッドロック(deadlock)はロックの結果として発生する「処理が進まない状態」であり、制御の手段ではありません。排他制御やロックは正常に動作させるものです。
  2. 「ロックは常に悪いもの」だと考える
    • ロックは整合性を守るために必要です。長時間ロックし続けると待ちが発生し性能が落ちるため、使い方(短時間で解除するなど)を工夫します。
  3. 「経路制御と排他制御は同じ」と混同する
    • 経路制御は通信経路やルーティングに関する言葉で、データベースの同時更新を制御する排他制御とは別物です。

補足コラム

  • トランザクション(transaction):一連の処理をひとまとまりの「仕事」として扱う単位です。銀行での振替(口座Aから引き落として口座Bに入金する一連の処理)を例にすると、途中で失敗すると全て元に戻す(原子性:Atomicity)ことが求められます。トランザクションは通常、ACID特性(Atomicity:原子性、Consistency:一貫性、Isolation:独立性、Durability:耐久性)を満たすことが目標です。
  • ロックの種類(簡単に)
    • 共有ロック(読み取り用、複数可)と排他ロック(書き込み用、単独)があります。読み取りは同時に複数でもよい場面、書き込みは単独にする場面で使い分けます。
  • デッドロック対策(代表例)
    • タイムアウト:一定時間待ったら処理を中断して再試行する。
    • ロックの取得順序を統一:すべての処理でロックの取り方を同じ順にすると循環待ちを防げる。
    • 楽観的並行制御(optimistic concurrency control):更新時に競合チェックをしてから確定する方式。競合が少ない場合に有効。

FAQ

Q1. 排他制御とロックは同じ意味ですか?
A1. 異なります。排他制御は「同時アクセスを制限する仕組み」という概念、ロックはその仕組みを実現する具体的な手段(データにかける“鍵”)です。
Q2. デッドロックが起きたらどうなる?
A2. 関係する処理同士が互いにロックの解除を待ち、処理が進まなくなります。DB管理システムは検出して片方を強制終了(ロールバック)することが多いです。
Q3. ロックは常に必要ですか?
A3. 書き込みや重要な一貫性が必要な処理では必要です。読み取りだけで良い場合は共有ロックや楽観的制御で済むこともあります。
Q4. 「楽観的並行制御」とは何ですか?
A4. 更新前にロックを取らず、更新時に他の更新と競合していないかチェックする方式です。競合が少ない環境で性能が良くなります。

関連キーワード: トランザクション、排他制御、ロック、デッドロック、同時実行制御、ACID、楽観的並行制御、共有ロック、排他ロック、タイムアウト、2PL(2相ロック)
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について