
データベースの機能・排他制御を知ろう!
未経験からエンジニアになりたい人は、プログラミングから始める人が多いと思いますが、
エンジニアの仕事は、プログラミングだけではありません。そして、プログラミングだけでは、エンジニアになれません。同時にプログラミングが苦手でも、システム構成や開発の流れを理解するとエンジニアに近づきます!
今回はデータベースの機能 排他制御について更に詳しく調べてみましょう!

排他制御とは
複数の処理が並行で実行されて同時に同じデータにアクセスされる場合に、
データの整合性を保つために、データの読み書きを一時的に制限する機能です。
排他制御がないと

並列でAとBが動くと在庫数が正しく反映されない事になってしまう。
排他制御があると

AがロックをかけるとBはロックが解除されるまで待たされる。
これによりデータの整合性が保たれる。
ロックをかけるには
データを取得する時にロックを宣言する
Select * from 在庫テーブル where id = “A01”
for update
id = “A01”のデータをロックかける事ができる
commit か rollbackでロックが解除される
まとめ
ー排他制御でデータの整合性が保たれる
ー並行処理の時に排他制御が有効となる
ーロックによりデータが排他制御される
ーselect * for update でロックされる
最後に
未経験の皆さん、若手エンジニアの皆さん、勉強方法について悩みがあればなんでも気軽に質問して下さい!
これからも記事を書いていきますので、モチベーションアップのためフォロー、イイねお願いします。