【アルゴリズム】データベースについて

データベース

関連するアルゴリズム

 [1] ログ先行書き込み(Write Ahead Logging、WAL)
 [2] 2相コミットメント
 [3] リレーションデータベース

[1] ログ先行書き込み

 * データベースは一貫性(Integrity)を保たなくてはならない。
 ⇒ 「to-doリスト(データの不一致を防ぐ)」「ロッキング機能」によって、
   アトミック(=ここでは「分割不能」)なトランザクションが実現され、データの一貫性を保障してくれる

[2] 2相コミットメント

 * トランザクション処理において、処理内容に矛盾がないように整合性を保つ手法

 ■ 第一フェーズ
 (1) トランザクション処理を行うソフトウェアが、データベース更新作業の最後にコミットの命令を出す。
 (2) それを受けたマスターサーバは、その他のサーバに対してコミットが可能か問い合わせる。
  (3) 各サーバは、処理が終了しデータベースを更新する準備ができたらコミット可能の報告をマスターサーバに伝える。

 ■ 第二フェーズ
 (1) 全てのサーバからのコミット可能の応答が揃ったら、マスターサーバは全サーバに対してコミット処理を指示
 (2) それを受け、いっせいにデータが更新

 ⇒ 途中でエラーがあった場合、ロールバックする

[3] リレーションデータベース

 * 1件のデータを複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式。
 * ID番号や名前などのキーとなるデータを利用して、データの結合や抽出を容易に行うことができる。