分散データベース

この記事での学習内容 基本情報 応用情報

複数のサイトに配置された分散データベースの特徴,利点,取り扱う上での留意事項,サイト間でのデータ同期の仕組み,関連する機能,集中型データベースとの違いを理解する。

透過性,クライアントキャッシュ,コミットメント制御,2 相コミットメント,コミットシーケンス,同時実行制御,レプリケーション,水平分散,垂直分散,表の分散(水平,垂直),分散問合せ,結合演算,分散トランザクション,OSIRDA(Open Systems Interconnection-Remote Database Access:開放型システム間相互接続-遠隔データベースアクセス)プロトコル

分散データベースの特徴、利点、留意事項

分散データベース(Distributed Database)とは、複数の場所に分散されたデータベース群が、一つのものであるかのように扱えるデータベースです。場所は一つのコンピュータの複数の記憶装置である場合、局所ネットワークのサーバである場合、あるいはインターネットで結ばれている場合などがあります。

集中データベースと比べると、分散データベースは以下のような特徴や目的を持っています。

性能の向上
拠点と各地とで検索・更新が分散している場合、よく検索・更新するデータは、地域に分散したほうが応答時間や通信費用が改善される。
構造の多様性
データベースの定義を拠点で標準化するのに対して、地域に権限を移譲したり、合併した企業の独自性を尊重したりして、柔軟性を重視しつつ緩やかに連携する。
段階的な増強
一度に情報システムを拠点に完成してしまうのではなく、時間とともに段階的なサーバなどを追加したり、リプレースしたりしていく方式。コンピュータ、記憶装置、および通信回線の価格低下と性能向上を見越したり、ユーザ側のニーズの変化を見越したりして取られる方式である。
障害対策
大きな災害に備えて、データを分散したり、複製を別の地域においたりして、被害の最小化や回復容易性を狙う。

分散データベースの利用にあたっては、以下のような点に留意する必要があります。

  • 変更の同期: コミットメント制御などにより、障害が発生したときにもデータの一貫性が保たれるようにする。(2相コミットメントなど)
  • 透過性: 分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザには集中データベースと同じようにみえること。
  • オープン性: DBMSと多様なハードウェア、オペレーティングシステム、応用ソフトウェアとの連携を受け入れる性質。分散すると関連する要素が増えるので特に重要である。
  • アクセスの節減: データベースの設計、レプリケーション、およびユーザの問合せ分の注意によって、遠隔地への問合せや更新の頻度を減らす。

透過性

透過性とは、分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザからは集中データベースと同じようにみえるという性質です。

以下のような特性で構成されます。

  • 位置透過性: データの存在場所を意識せずに利用できる性質。
  • 移動透過性: データの存在場所が変更されても、影響なく利用できる性質。
  • 重複透過性: 一つの表が複数の存在場所に重複して存在しても、意識せずに利用できる性質。
  • 分割透過性: 一つの表が複数の場所に分割されて存在しても、意識せずに利用できる性質。
  • 障害透過性: ある場所に障害が発生しても、代替場所が代替することによって、利用し続けることが出来る性質。
  • データモデル透過性: 各場所のデータモデルが階層型データベース、関係データベースなどと異なっても、意識せずに利用できる性質。

サイト間でのデータ同期の仕組み

データ更新の際、サイトごとのデータベースと同時に更新する方法と、一台の管理サーバ(マスタサーバ)が更新処理を受け付けて、その後スレーブサーバを更新する方法の2種類があります。

前者を同期マルチマスタ方式、後者を非同期マスタスレーブ方式と呼んでいます。

レプリケーション

レプリケーションとは、データの複製を別の場所にも作成し。常に内容が一致するように更新することです。負荷分散や障害対応を目的としています。

レプリケーションは、障害透過性を向上させることができます。また、データを重複させても、重複透過性が保たれることが必要です。