【トランザクション処理】排他制御、リカバリ処理、トランザクション管理、データベースの性能向上、データ制御

排他制御、リカバリ処理、トランザクション管理、データベースの性能向上、データ制御についてまとめました。

【排他制御】

排他制御とは、あるトランザクションがアクセス中の資源に対して,他のトランザクションからアクセスできないようにすることです。
ある資源に対して専有ロックと専有ロックが競合し,片方のトランザクションが待ち状態になります。
それにより、あるトランザクションがアクセス中の資源に対しては、他のトランザクションからアクセスできないようにできます。

【デッドロック】

デッドロックとは、共有資源を使用する2つ以上のプロセス(トランザクション)が、互いに相手プロセスが必要とする資源を排他的に使用していて、互いのプロセスが相手が使用している資源の解放を待っている状態です。
デッドロックが発生するとプロセスは永遠に待ち状態になってしまうためプロセスの続行ができなくなってしまいます。

【リカバリ処理】ロールバック

トラブル リカバリ処理内容
スナップショット ある時点での読取り専用コピーをとる機能です。スナップショット時点まで復元したあとロールバック処理を行ってトランザクションの一貫性を確保する必要がある。
データベースの媒体障害 バックアップ時点の状態に復元した後,ジャーナルファイルの更新後情報を使用してロールフォワード処理を行う。(※ロールバック処理に使うのはジャーナルファイルの更新前情報)
ロールバック トランザクションの途中、プログラムのバグなどで異常終了した場合に、更新前ログを用いてデータベースをトランザクション開始直前の状態に戻す処理です

【トランザクション管理】ACID特性

トランザクション管理
トランザクションとは システムにおける、永続的なデータに対する不可分な一連の処理です。つまり、複数の処理を1つにまとめたもので、これら「複数の処理」は分離させることができません。
ロック リソース(表の行データなど)が他からアクセスできないようロックをかけることです。ロックの粒度とは、このロックをかける対象範囲です。この対象範囲には、「論理的な単位(データベース、表、行)」や「物理的な単位(ブロック、ページ)」があります。ロック粒度が細かいほどロックの競合が少ないため、同時実行可能なトランザクションが増える
共有ロック データを読込むときに使うロックで、資源がこの状態の場合は他のトランザクションによる更新処理ができなくなる。(読込みは可能)
専有ロック データを更新するときに使うロックで、資源がこの状態の場合は他のトランザクションによる読込みや更新ができなくなる。

資源にかけられているロックが”共有”である場合のみ、別のトランザクションが新たに”共有ロック”をかけることができます。

ACID特性

データベースのトランザクション処理を行う場合、ACID特性と呼ばれる4つの特性をもつことが必要不可欠とされています。

ACID特性 性質
原子性 トランザクション内の処理がすべて実行されるか、または全く実行されないことを保証する性質(Atomicity)。
一貫性 トランザクションにより常にデータベースの整合性が保たれている(データの矛盾が生じない)ことを保証する性質(Consistency)。
独立性 複数のトランザクションを同時に実行した場合と、順番に実行した場合の結果が等しくなることを保証する性質(Isolation)。
耐久性 正常終了したトランザクションの結果が、その後障害等が発生しても失われないことを保証する性質(Durability)。

【データベースの性能向上】

手法 性質
再編成 データベース中にレコードの追加や削除によって断片的な未使用領域が増加した場合や、繋がりのあるのレコードが非連続的な領域に格納され、順次アクセスの効率が低下した場合に行われる処理です。同じデータを連続した領域に配置するなど、データを適切に再配置することで、アクセス効率が向上し読書き速度の回復が望めます。

【データ制御】

【ファイル】

ファイル名 概要
ダンプファイル データベースの内容をそのまま書き出したファイル。データベース移行のときなどに使用。
チェックポイントファイル コミットされたトランザクションをデータベースに書き出すときに、その情報を記録したファイル。
バックアップファイル 媒体障害の発生に備えてデータベースのコピーを保存したファイル。
ログファイル トランザクション開始前とコミット後の状態を保存したファイル。ロールバックやロールフォワードによって障害から復旧するときに使用し、データベースの永続性が保つことが可能。

【その他】インデックス

用語 概要
インデックス 索引(さくいん)とも呼ばれ、データベースへのアクセス効率を向上させるために、検索対象となるデータ項目に対して設定されます。データがどのレコードにあるかを示したインデックスを作成することで高速に検索や並べ替えの処理を行うことが可能です。
関連記事
1 【情報処理入門】基礎用語・原理・資格まとめ
コンピュータ
技術雑記

コメント

タイトルとURLをコピーしました