排他制御あるデータベースで1つのデータ資源を複数の異なるトランザクションがほぼ同時に更新しようとした場合に、「排他制御」が必要となります。この方法には以下のものがあります。ロック方式データ資源にロック(鍵前)をかけて、別のトランザクションが処理を行えないようにする。ロックによる注意点としては、「デッドロック」があります。これは、複数のトランザクションが互いに資源の開放を待ちあう形になり、その時点から処理がストップしてしまうことを言います。】ロック粒度とは、ロックをかける単位(範囲)のこと。ロックをかけることのできる数とロックをかけることのできるデータ領域の大きさを示すもの。ロック粒度の大きさには、レコード、ページ、テーブル、データベース全体などがある。粗いロック粒度の場合、同時にロックできる数は少なくなるが、大きなデータ領域をロックすることができる。細かいロック粒度の場合、ロックできる数は多くなるが、小さいデータ領域しかロックすることができない。複数のプログラムが並行して動作する場合、粗いロック粒度では、占有するデータ領域が重なることで資源の競合が起こりやすく、ロック待ち時間が増大することで全体の処理が遅くなる。細かいロック粒度では、資源の競合は起こりにくいが、トランザクションによるロック数が多くなるためデッドロックが起こりやすくなる。対象となる資源についてセマフォ変数という変数を設定し、その変数の値により、他のタスクにこの資源の利用を許すか禁止するかを示します。P操作(Down)とV操作(Up)によりセマフォ変数の値を変化させます。資源を利用するために確保する操作。