5章のメモ。
DBMS関連技術
トランザクション処理
複数の更新や参照の処理を一つにまとめる処理を指す。
相互依存の関係にある複数の処理を1つの処理単位にまとめて、矛盾なく処理すること。データベースにおいて、処理の一貫性を持たせるために、複数の処理を1つの処理として実行して管理する仕組みで、データの整合性を保つための要素の1つ。
引用元:https://www.otsuka-shokai.co.jp/words/transaction-processing.html
ACID特性
A Atomicity 原子性。トランザクションは全て実行されるか、一つも実行されないか。
C Consistency 一貫性。矛盾がない状態。
I Isoration 独立性。外部の処理に影響を与えない。
D Durability 永続性。完了した結果は保存され、失われることはない。
ロストアップデート
データベースの不整合(ロストアップデート)と戦おう! - スマートフォンアプリ開発会社のエンジニアブログ
更新されたはずのデータが元に戻ってしまい、データが消失すること。
以下三つはこの記事読んだ方がわかりやすいかも。
ダーティリード、リピータブルリード、ファントムリードをちゃんと理解してからトランザクション分離レベルを理解しよう - Qiita
ダーティリード
先読み誤読。
ノンリピータブルリード
トランザクション処理が二回、同一のデータを読み出しするときに異なる値を読み取ってしまう現象。
ファントムリード
トランザクション内で、二回同一範囲を読み取ったとき、1回目と異なる結果になること。
t1:select
t2:insert
t1:select
みたいに間に更新とか入れられると発生する。
デッドロック
防止法
ロック順序を同じにする。
2層ロック
最初にロックをかけまくって、最後に一気に解錠する。
なお、これでもデッドロックは発生する模様。
障害回復機能
ロールバック
障害発生時からログを使って戻すようにある地点まで戻し、復旧させる。
ロールフォワード
障害発生前の地点から、都合の良い場所までログを使って復旧させる。
媒体障害
媒体の障害(適当)
定期バックアップデータをコピーし、ログをロールフォワードで修復する。
終わりっ(えっ
>> Home