ロック
* 複数ユーザーがテーブルやレコードなどを更新しようとした際、 同時アクセスを制限することで、データの不整合性などが生じないようにするための仕組み [1] 排他ロック [2] 共有ロック [3] 更新ロック (SQL Server)
[1] 排他ロック
* レコードのデータを変更するために取得するロックで、一つのレコードに対して、一つのプロセスだけが取得できる * OracleやSQL Serverでは、あるプロセスがデータを更新する際には自動的に排他ロックを取得 => これによって、データを更新している途中で、ほかのプロセスがデータを読み込んだり、 変更できないようになる
[3] 更新ロック
* 働き自体は共有ロックと同じですが、取得できるのは、 一つのレコードに対して、一つのプロセスに限られる * 主に、あるレコードのデータを読み込んだ後に、排他ロックに切り替えてデータを書き込むなどに使用する
参考文献
http://itpro.nikkeibp.co.jp/article/COLUMN/20060118/227489/?ST=develophttp://itpro.nikkeibp.co.jp/article/COLUMN/20060118/227490/?ST=develop
デッドロック / Dead Lock
* トランザクションの実行によって、複数のタスクが相手の確保しているものを待ち続けてしまう状態になり、 いつまでたっても待ち状態が続いてしまう(固まってしまう)こと