分散DB

 

 

分散データベース

分散データベースは、ネットワーク上に複数存在するデータベースをあたかも一つのデータベースであるように利用する仕組み。

通信負荷の軽減、パフォーマンスの向上を図ることができる他、一つのサイトが障害にあっても全体の機能が失われない。

 

構築、管理は大変。

透過性を保つ仕組みを考える必要がある。

 

分散DBに求められる要件

資源位置ー利用者がDBの位置を意識せずに利用できる

移動ーデータの格納サイトが変わっても利用者に影響が出ない

分割ーデータが複数サイトに分割格納されていても利用者は意識する必要がない

重複ー重複格納の場合も同じ

障害ー障害が起きても利用者に影響がない

 

分散DBではテーブルが複数のサイトにわたって配置されている場合がある。

異なるサイト間のテーブル同士を結合する場合大量のデータをサイト間で通信する可能性があることから、この処理を最適化するためいくつかの処理方法がある。

 

入れ子ループ法

 

サイト間でテーブルを一行ずつ送信し、順次データを結合していく。

処理回数は増えるが、ネットワーク負荷は平準化される。

 

マージジョイン法

結合するテーブルについて、それぞれ結合キーでソートした後、テーブルを一方のサイトに転送しそちらで結合処理。

 

セミジョイン法

結合キーの列のみを片方のサイトに送信。列と結合した結果の返信を受け、最後の結合を行う。

 

ハッシュセミジョイン法

セミジョイン法の通信量を更に削減するため、結合キーの列の値をハッシュ値で送信する。

受け取ったサイトでも、結合先のテーブルの結合キーをハッシュ値に変換し、ハッシュ値同士で結合する。