正答1
解説
正解は1です。
排他制御は、複数のトランザクションが同じデータを同時に更新して矛盾が生じるのを防ぐ仕組みです。
ロックをかけて、他のトランザクションのアクセスを一時的に待たせます。
【選択肢別解説】
1:○ ロックで同時更新を順番に処理させれば、更新の消失などの不整合を防げます。
そのため、同時実行処理でもデータの整合性を保てます。
2:× 排他制御でロックを使うと、互いに相手のロック解除を待つデッドロックが起こり得ます。
排他制御はデッドロックの原因になり得るもので、防止するものではありません。
3:× 多くのDBMS(DataBase Management System)では、アプリケーションからロックを指示できます。
例えば、SQLのLOCK TABLE文などで明示的にロックをかけられます。
4:× バッチ処理でも、同じデータを他の処理が同時に更新するなら排他制御が必要です。
処理形態によって排他制御が不要になるわけではありません。
【ポイント】
排他制御は整合性を保つ代わりに、待ちやデッドロックを生む可能性があります。
デッドロックは、ロックをかける順序をそろえることで発生を減らせます。