両すくみで処理が停止することも ロック機能は複数のユーザーが利用するデータベース・アプリケーションには不可欠なのですが,新たな問題の元にもなります。それは「デッドロック」と呼ばれる現象です。 先の銀行口座間の振り込みの例で次のような場合を考えてください(図3[拡大表示])。トランザクション1は,口座番号10の口座から口座番号20の口座に1万円を振り込もうとしています。一方,トランザクション2は,これとは逆に口座番号20の口座から口座番号10の口座に5000円を振り込みます。ここで仮に,トランザクション1が,(1)口座番号10のレコードを変更してから,トランザクション2が(2)口座番号20のレコードを変更したとしましょう。この時点で,トランザクション1は口座番号10のレコードを,トランザクション2は口座番号20のレコードを排他ロックします。これらのレコードは,トランザクションが終了するまでロ