データベースの排他制御であるロックに関する説明として、適切なものはどれか。
ア | デッドロックが発生した場合には、両方のトランザクションをロールバックする。 |
イ | ロックには、読取り時に使用する共有ロックと、変更時に用いる占有ロックがある。 |
ウ | ロックの粒度は大きいほど並列に実行されるトランザクションは多くなる。 |
エ | ロックを用いると、デッドロックが発生することはない。 |
答え イ
【解説】
ア | デッドロックが発生した場合には、どちらか一方のトランザクションを中止しロールバックを行います。 | |||||||||||||||||
イ | ロックには読取り用の共有ロックと更新用の占有ロックがあります。
|
|||||||||||||||||
ウ | ロックの粒度とはロックするデータの大きさであり、大きいとロックのための処理(オーバヘッド)は小さいが、並列に実行できるトランザクションは少なくなる。 | |||||||||||||||||
エ | ロックを行うのでデッドロックが発生する。なお、ロックを行わないとデータの不整合が発生してしまう。 |
【キーワード】
・ロック
・デッドロック