![見出し画像](https://assets.st-note.com/production/uploads/images/98049785/rectangle_large_type_2_36ea2fa026581b7d2cf1818972c939bd.gif?width=800)
データベースの機能・排他制御を知ろう!
未経験からエンジニアになりたい人は、プログラミングから始める人が多いと思いますが、
エンジニアの仕事は、プログラミングだけではありません。そして、プログラミングだけでは、エンジニアになれません。同時にプログラミングが苦手でも、システム構成や開発の流れを理解するとエンジニアに近づきます!
今回はデータベースの機能 排他制御について更に詳しく調べてみましょう!
![](https://assets.st-note.com/production/uploads/images/98049797/picture_pc_0969e6af50be89d6bebdd22f8e21d70e.gif?width=800)
排他制御とは
複数の処理が並行で実行されて同時に同じデータにアクセスされる場合に、
データの整合性を保つために、データの読み書きを一時的に制限する機能です。
排他制御がないと
![](https://assets.st-note.com/img/1676409101252-p5mC1GzuYw.png)
並列でAとBが動くと在庫数が正しく反映されない事になってしまう。
排他制御があると
![](https://assets.st-note.com/img/1676409116086-5WxacS6bqY.png)
AがロックをかけるとBはロックが解除されるまで待たされる。
これによりデータの整合性が保たれる。
ロックをかけるには
データを取得する時にロックを宣言する
Select * from 在庫テーブル where id = “A01”
for update
id = “A01”のデータをロックかける事ができる
commit か rollbackでロックが解除される
まとめ
ー排他制御でデータの整合性が保たれる
ー並行処理の時に排他制御が有効となる
ーロックによりデータが排他制御される
ーselect * for update でロックされる
最後に
未経験の皆さん、若手エンジニアの皆さん、勉強方法について悩みがあればなんでも気軽に質問して下さい!
これからも記事を書いていきますので、モチベーションアップのためフォロー、イイねお願いします。
この記事が気に入ったらサポートをしてみませんか?