A社の佐伯さんがのらりくらりと

A社の佐伯さんがのらりくらりと。インターネットと少しだけ生活のこと。

うろ覚えだった知識をまとめてみたよ【データベース編③】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

同時実行制御

複数のトランザクションが同じデータへ同時に書き込むと、データに不整合が発生する。これを防ぐためにDBをロックしないといけない。方法は以下の2つ。 * 共有ロック:読み込み時にかけるロック。他のトランザクションと被ることも可能。 * 専有ロック:書き込み時にかけるロック。他のトランザクションと被れない(どこかひとつでも専有ロックをしていたら、どちらのロックもかけれない)。

デッドロック

複数のトランザクションが互いにロックの解放待ちをしていた場合膠着状態(デッドロック)になる。この場合いづれかのトランザクションを強制終了し、再実行する。

障害回復

障害が発生した場合は、原子性や持続性を維持するための処理が必要。

チェックポイント

メモリ中のデータをディスク装置に反映させる地点。DBのデータを更新した場合、すぐにディスク装置に反映させたいがアクセスに時間がかかる。なので、一旦メモリ上のデータにとどめておいて、あとでディスク装置へ書き出す。ディスク装置へ書き出すタイミングをチェックポイントという。

ストアドプロシージャ

いくつかのSQL文をまとめたプログラムをDBサーバに登録しておき、クライアントがそのプログラムを呼び出す形でSQLを実行する方式。SQLをDBサーバにに入れておけば、SQLそのものをDBサーバに送る必要がないので、ネットワークの負荷が軽減される。

参考

https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9028%E5%B9%B4%E5%BA%A6-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/4813265545www.amazon.co.jp