ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

Home » IT入門 » 【IT入門】トランザクション管理と排他処理に関して

【IT入門】トランザクション管理と排他処理に関して

calendar

reload

【IT入門】トランザクション管理と排他処理に関して

こんにちは😀

今回は、データベースのトランザクション管理に関してまとめました。

データベースは複数の人で共有して使うことのできる便利なものですが、それぞれが更新や削除の操作をすることによってデータの不整合を引き起こす可能性があります。
そのような事態からデータベースを守るのが、トランザクション管理と排他制御になります。

スポンサーリンク

トランザクションとは

データベースでは、一連の処理をひとまとめにしたものをトランザクションと言います。
データベースは、このトランザクション単位で更新処理を管理しています。

排他処理とは

排他制御は、処理中のデータをロックして、別の人が読み書きできないようにする機能になります。
トランザクションの間、使用するデータをロックしておくことで、別の人の割り込み操作でデータの不整合が生じたりする事態を避けられます。

共有ロック

他のユーザはデータを読むことはできますが、更新や削除はできません。

占有ロック

他のユーザはデータを読むことも、更新・削除もできません。

デッドロックとは

ロック機能を使う場合には、複数のトランザクションがお互いに相手の使用したいデータをロックしてしまい、「お互いがお互いのロック解除を永遠に待ち続ける」という状態が発生する可能性があります。
これをデッドロックと言います。

こうなった場合には、強制的にいずれかのトランザクションをキャンセル必要があります。

ACID特性とは

DBMSでは、トランザクションの処理に対して、以下の4つの特性が必須とされています。
これは、それぞれの頭文字を取ってACIDと呼ばれます。

Atomicity(原子性)

トランザクションの処理結果は、必ず「すべて実行されるか」「まったく実行されないか」のいずれかで終了することになっています。

Consistency(一貫性)

データベースの内容が矛盾のない状態であることを意味します。
トランザクションの処理結果が、矛盾を生じないようにします。

Isolation(隔離性)

複数のトランザクションを同時に実行した場合と順番に実行した場合の処理結果が一致することを意味します。
排他処理を正常に行い相互に影響を与えません。

Durability(耐久性)

正常に終了したトランザクションの更新結果は、障害が発生してもデータベースから消失しないことを意味します。
何らかの復旧手段が保証されている状態です。

今回の一言・・・

データベースのデータを正常に動かし保守する上で、トランザクションと排他処理は大事な考え方になります。

ここまで読んでくれてありがとう。
では、また次回。

IT入門一覧はこちら】

この記事をシェアする

コメント

コメントはありません。

down コメントを残す