デッドロックに関して
デッドロックに関して
現在、SQLについて書籍で勉強をしております。
その中でデッドロックという現象について取り上げられておりました。
現象のメカニズムは理解できるのですが、
自分の理解と食い違っている点をデッドロックを通して気づきました。
違和感を覚えた点
書籍ではトランザクションが2つ同時に発生した場合に参照先がロックされて
にっちもさっちもいかない状態であると書かれておりました。
まず、2つ同時に発生することがあるというところが理解できておりません。
自分のイメージではDBサーバーがあり
そのサーバー上にDBMS(データベースマネジメントシステム)があり
DBMSが各ブラウザからのリクエストを受けてデータベースからデータをレスポンスとして返している。というイメージです。
なので同時に別ブラウザから命令が入ってもDBMSが順次実行していくから、
デッドロックのような現象が起こらないのではないかと思っておりました。
私の前提認識が正しくないことはわかっておりますが、どこが正しくないのでしょうか?
・DBMSはデータベース1つにつき1個ではない?
・データベース1個の時は発生せず、データベースが複数あるときにデッドロックは発生する?
・DBMSが順次処理ではなく並列処理をする?。
すみませんが、ご教授いただけると幸いです。