5
データベーストランザクションとロックの正確な関係は何ですか?
これは、私の知識を増やすという精神で尋ねられた謙虚な質問です。親切に対応してください。 長年のアプリケーション開発者として、私はあるレベルでトランザクションとは何かを知っています(私は常にそれらを使用しています)。トランザクションの分離レベルはさておき、高レベルでは、トランザクションは作業ブロックを完全に完了させるか、まったく完了させず、他のデータベース変更アクティビティからある程度の分離を可能にします。 また、(さまざまなデータベースで)ロックが何であるか、または少なくとも1つの動作を知っています(何らかの方法でテーブルを明示的にロックした場合、他のプロセスまたはスレッドはそのテーブルについて何も更新できません)。 私がはっきりとはっきりしていないのは、さまざまなデータベースで、行またはテーブルを明示的にロックするときに、データベースのトランザクション機能で使用されるものとまったく同じ構造を使用して、トランザクションを適切に機能させることですか? つまり、トランザクションがアトミックで分離されるためには、何らかのロックを行わなければならないことがわかります。このトランザクションによって開始された、トランザクションに隠されたロックは、さまざまなデータベースが、SELECT FOR UPDATE明示的なLOCKコマンドなどの構造を介してアクセスできるのと同じ種類のロックですか?または、これらの2つの概念は完全に異なりますか? 繰り返しますが、この質問の素朴さをおaびします。より基本的な情報源を指摘できてうれしいです。