目指せwebエンジニア就職!!!

25歳 2020年4月から未経験webエンジニア転職目指して勉強中♪本気の初心者なので少しでも学んだことが身に着くようにここをアウトプットの場にします!

データを守るための基本的なルール「ACID」

リレーショナルデータベースシステムでは

 

 データを守るためのルールとして

ACIDというものがある。

 

以下の頭文字をつなげてACIDと言う

 

  • 原子性(ATOMICITY)
  • 一貫性(CONSISTENCY)
  • 独立性(ISOLATION)
  • 永続性(DURABILITY)

 

 

標準SQL規格にもある「データ制御言語」の一つに

トランザクションというものがある。

 

 

 

処理のまとまりとしてのトランザクション

 

*例えば、同じタイミングで処理される必要がある、

処理①と処理②という動作があったとして

処理①が終わった時点でサーバーがダウンして処理②だけ

処理されなかったということを防ぐために

必ずこのペアで実行したいとゆうのが

 

 

トランザクションによって

この処理①と②は両方とも実行完了されるか、

両方とも実行完了されないという性質を原子性(ATOMICITY)という

 

 

 BEGIN;  --トランザクションの開始宣言

トランザクションしたい処理の構文

COMMIT; --トランザクションの終了宣言

 

 

 

データの復旧の単位としてのトランザクション

 

永続性(DURABILITY)

=この性質は、障害発生前に終了している

トランザクションは保証する。

反対に障害発生時に終了していないトランザクションに関しては

保存されないということ。

 

 

 

トランザクションと同時実行

 

独立性 (ISOLATION) 

=複数のユーザーが同時並行でデータベースにアクセスしていたとしても、整合性を保証してくれる。

ひとつひとつのトランザクションはその他の処理からは独立しているということ。

 

 

最後の、

一貫性 (CONSISTENCY)

というのはレコードへのnot null, default =,primary_keyなどの制約に関して、トランザクションの前後で整合性をとるという意味