2023年 春期 ITサービスマネージャ 午前 問23

2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。

 ア  ダーティリード  イ  デッドロック
 ウ  ノンリピータブルリード  エ  ロストアップデート


答え イ


解説

 ア  ダーティリード(dirty read)は、あるトランザクションが更新している最中に他のトランザクションのデータの読み出しを許可することで、2相ロッキングプロトコルでは発生しません。(×)
 イ  デッドロック(dead lock)は、複数のトランザクションで、互いに相手が占有している資源をロックしようとして、処理が停止することで、2相ロッキングプロトコルでも発生します。(〇)
(デッドロックを避けるためには全てのトランザクションでロックする資源の順番を同じにする必要があります。)
 ウ  ノンリピータブルリード(non-repeatable read、ファジーリード)は、トランザクション処理において、あるトランザクションが同じレコードを何度も繰り返し読み出す場合に途中で他のトランザクションが内容を更新してしまうことで、2相ロッキングプロトコルでは発生しません。(×)
 エ  ロストアップデート(lost update)は、他のトランザクションが行った更新を消してしまう更新のことで、2相ロッキングプロトコルでは発生しません。(×)


キーワード
・2相ロッキングプロトコル

キーワードの解説
  • 2相ロッキングプロトコル
    データベースにアクセスする複数のトランザクションが同時(並列)に動作するシステムで行われる資源の占有(ロック)方式で、トランザクションでデータベースへのアクセスが必要になったときに都度ロックをかけていき、全てのロックを獲得した後にだけロックの解除を行います。(結果的にロックの解除が行われるのはトランザクションの終了時になります。)

もっと、「2相ロッキングプロトコル」について調べてみよう。

戻る 一覧へ 次へ