スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.3335
複数のプログラムやトランザクションが同時に同じデータを更新する際、データの整合性を保つために、ある処理がデータを使っている間は他の処理からのアクセスを制限する仕組みを何というか。

【正解の解説】

排他制御

これは人気のある1つの個室トイレに2人が同時に飛び込もうとした時、鍵をかけて中に入る人が出てくるまで他の人を待たせる状態と同じです。データベースの世界でも、2人が同時に同じ口座の残高を書き換えると金額がおかしくなってしまうため、先に入った方の処理が終わるまで後から来た処理を順番待ちさせることで、データの正確さをがっちり守る重要な役割を果たしています。

スポンサーリンク

【その他の選択肢の解説】

ロールバック

初学者は処理を一時停止して他のアクセスを遮断する排他制御と、トラブル時に過去へ巻き戻すロールバックの機能を混同しがちです。排他制御はケンカを防ぐための事前の入場制限であり、ロールバックは失敗した後にデータを元通りに仕切り直すための事後の後片付けという決定的な違いがあります。

デッドロック

これは2人の人がお互いに「先どうぞ」「いや、あなたからどうぞ」と道を譲り合った結果、どちらも一歩も進めなくなってしまう交通渋滞の行き詰まり状態にそっくりです。排他制御の仕組みを安全に使おうとするあまり、このデッドロックという終わらない待ちぼうけの罠にハマってシステムが固まってしまうトラブルがよく発生します。

キャッシュメモリ

データの整合性を保つためのルールの話である排他制御とは全く異なり、こちらは単にパソコン全体の動作をキビキビと速くするためのハードウェアの仕組みを指しています。全く関係のない機能の用語が紛らわしい選択肢として置かれているため、カタカナの響きに惑わされないようにしっかり見極める必要があります。