にしのくえすと

情報処理技術者試験のお勉強ブログ


にしのくえすととは?
・「情報処理技術者試験大好き」な人、「ICT資格取りたい」人のためのブログです。
・ITパス、セキュマネ、基本、応用、セキュスペ(情報処理安全確保支援士)、ネスペ、デスペあたりの話題が中心です。
・申し述べる見解は勤務先とは無関係です。また、試験に関する記事は、自己責任でご利用ください。


・イラスト素材はAI CATCHER様のものを使用させていただいてます。素敵です!

↓ 電子書籍発売中です!「ネスペちゃん」「セスペちゃん」よろしくお願いです!
 
・作者のプロフィールはこちら  ・にしの作「資格本」電子書籍についてこちら
・作者の日記系ブログ(不定期)みがまえるよりはやく  ・「にしのくえすと」プライバシーポリシー

あいぱすくえすと シーズン2(14)俺の音楽はデッドロック

ITパスポート試験(あいぱす)に関わる、情報処理
の基礎の基礎を面白く楽しくお話しする連載です。超
初心者に向けて、頑張ってやさしく書いています。こ
れをきっかけに。もっと知りたい!面白っ!そんな気
持ちになってくれたら、うれしいな!

f:id:koharuwest:20171010222201p:plain


今回は「データベースの制御」です。

排他制御

データベースでは、複数のクライアントが同時に一つ
のデータにアクセス出来ないような仕組みを作ってい
ます。

これを排他制御といい、これを行うことでデータに矛
盾が起きないようにしています。


※たとえば、商品の値段をAさんが200円に設定す
 るのと同時に、Bさんが100円に設定すると・・。
 これはどっちを優先するかわかりませんね。

排他制御はデータにロックをかけるわけですが、ロッ
クには2種類あります。目的によって使い分けますが、


共有ロック(読み取りのみ許可、更新は不可)
排他ロック(読み取りも更新も不可)


ロックは占有者がそれを使い終わった後、解除され。
資源が開放されるわけですが。


Aさん 資源Aを占有、資源Bの解放待ち
Bさん 資源Bを占有、資源Aの解放待ち


このようなにっちもさっちもいかない状況を「デッド
ロック」といいます。覚えておいてね。

リカバリ機能

データベースの更新の単位をトランザクションといい
ますが、どういう流れで行われるかというと。


1 トランザクション開始
2 ロック(資源をロック)
3 更新前ジャーナル(更新前の状況を記録)
4 コミット(実行される)
5 更新後ジャーナル(更新後の状況を記録)
6 ロック解除
7 トランザクション終了


大まかにこのようになります。さて、これが途中でト
ラブルが発生し、データベースが停止してしまうとし
ます。そのとき、どのようにリカバリするかというと、
2通りの方法があります。


原因が故障など、トランザクションに由来しないもの
「ロールフォワード」

トランザクションには何の罪もない・・・ので、更新
後ジャーナルを使用して、コミット後の状況からスタ
ートします。


トランザクションのせいの場合
「ロールバック」

そのままトランザクション実行後にしては、また壊れ
るので、更新後ジャーナルを利用してトランザクショ
ン実行前の状況に戻します。


このように、データベースでは更新にトラブルが発生
しても、データの矛盾や破壊が行われないような仕組
みが備わっているのです。


次回は「バックアップ」の予定です。

情報処理技術者試験大好きブログ「にしのくえすと」 Presented by にしこにしおAF