対象試験と出題頻度

分散データベースは、応用情報技術者(AP)で出題されるテーマです。

午前問題で「透過性」「2相コミットプロトコル」「データ分割(水平分割・垂直分割)」といった関連語との組合せで問われる傾向があります。

深い実装知識よりも、概念と用語の対応を正確に覚えているかが得点を分けます。

詳細をクリックして確認
対象試験:
応用情報技術者
出題頻度:
★★☆☆☆
ランクC(応用)余裕があれば覚える

用語の定義

情報処理試験を勉強していると、「分散データベースって普通のDBと何が違うの?クラウドのこと?」と混乱しがちです。

分散データベース(Distributed Database)とは、一言で言うと

 「ネットワーク上の複数のコンピュータに分散配置されたデータベースを、利用者からは1つのデータベースに見せる仕組み

のことです。

イメージとしては、全国チェーンの図書館ネットワークです。

東京館・大阪館・福岡館にそれぞれ蔵書がありますが、利用者は最寄りの窓口で「この本ありますか?」と聞くだけで、どの館にあるかを意識せず本を取り寄せられます。

利用者にとっては「1つの大きな図書館」に見えるわけです。

分散データベースも同じ発想で、データが物理的にどのサーバーにあるかを利用者やアプリから隠蔽します。

📊 分散データベースの基本情報

項目 内容
英語名 Distributed Database(DDB)
分類 データベースシステムの構成形態
主な目的 負荷分散、可用性向上、地理的分散
キー概念 透過性、2相コミット、データ分割、レプリケーション

解説

1台のサーバーに全データを集約する集中型データベースには、限界があります。

アクセスが集中すると応答が遅くなり、サーバーが故障すれば業務が止まります。さらに、グローバル展開する企業では地理的に離れた拠点で同じデータを扱う必要が出てきます。

こうした課題に対応するため、データを複数ノードに分散しつつ、利用者からは1つのDBに見せる仕組みが設計されました。これが分散データベースです。

構成イメージ

分散データベースの構成イメージ

アプリケーション(利用者)
利用者からは「1つのDB」に見える


分散DBMS(透過性を提供する層)

問い合わせを各ノードに振り分け、結果を統合する



― ― ― ネットワーク ― ― ―

ノードA

東京拠点
顧客データ 1〜1000

ノードB

大阪拠点
顧客データ 1001〜2000

ノードC

福岡拠点
顧客データ 2001〜3000

物理的には3台のサーバーに分散 → 分散DBMSが集約 → アプリには1台に見える

分散データベースの「透過性」

分散データベースの中核概念が透過性(Transparency)です。

これは「分散していることを利用者に意識させない」性質を指します。試験で問われる主な透過性は以下の通りです。

透過性の種類 何を隠蔽するか
位置に対する透過性 データがどのサーバーにあるかを意識させない
分割に対する透過性 テーブルが水平・垂直に分割されていても1つの表として扱える
複製に対する透過性 同じデータが複数ノードに複製されていても1件として扱える
障害に対する透過性 一部ノードが故障しても処理を継続できる
移動に対する透過性 データが別ノードに移動してもアプリ側の修正が不要

2相コミットプロトコル(2PC)

複数ノードにまたがる更新では、「全ノードで成功するか、全ノードで取り消すか」を保証する必要があります。これを実現するのが2相コミットプロトコル(Two-Phase Commit)です。

2相コミットの流れ

【フェーズ1:準備フェーズ(Prepare)】

調整者(コーディネータ)が各ノードに「コミット可能か?」と問い合わせる。各ノードは「Yes」または「No」を返答する。

【フェーズ2:コミットフェーズ(Commit)】

全ノードが「Yes」なら → コミット指示を送信し全体で確定。
1つでも「No」なら → ロールバック指示を送信し全体で取消。

▲ 全員一致でなければコミットしない仕組み(ACIDの原子性を分散環境で保証)

データの分割方式

テーブルを複数ノードに配置する方法には、水平分割と垂直分割の2種類があります。

水平分割(行で分ける)

ID名前地域
1佐藤東京
2鈴木東京
3田中大阪
4山田大阪

行(レコード)単位で
ノードA・Bに振り分け

垂直分割(列で分ける)

ID名前給与
1佐藤300
2鈴木350
3田中400

列(属性)単位で
ノードA・Bに振り分け

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 分散データベースの核心を3行で

・複数ノードのDBを利用者から1つに見せる仕組み
・透過性(位置・分割・複製・障害・移動)で分散を隠蔽する
・複数ノードの整合性は2相コミットプロトコルで保証する


試験ではこう出る!

分散データベースは、応用情報技術者の午前問題で「透過性」と「2相コミット」を中心に問われます。出題実績は次の通りです。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
AP H29春
午前 問29
2相コミットプロトコルにおける主サイト(コーディネータ)の動作を問う問題。 ・準備完了応答→コミット指示の流れ
・1つでも応答がなければアボート
AP H26秋
午前 問31
分散データベースの透過性のうち「位置に対する透過性」の説明を選ぶ問題。 ・データの物理的位置を意識せずアクセスできること
・複製・分割・障害との混同に注意
AP H22春
午前 問33
分散DBにおける2相コミットの目的を問う問題。 ・複数サイトの更新の原子性保証が正解
・性能向上・セキュリティはひっかけ

📝 IPA試験での出題パターン

パターン1:「透過性の種類を識別させる」
5種類ある透過性の説明文をシャッフルし、特定の透過性(例:位置)の説明はどれかを選ばせる形式。「物理的位置を意識せず」が位置、「分割されていても1表」が分割、「複数の複製を1件」が複製、というキーワードで切り分ける。

 

パターン2:「2相コミットの動作を問う」
準備フェーズとコミットフェーズの役割、コーディネータと参加者の動作を問う形式。「全員Yesでコミット、1人でもNoでロールバック」を覚えていれば解ける。

 

頻出度Cの用語なので、APの午前で出れば1問取りに行く程度で十分です。深追いは不要です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. 分散データベースの説明として、最も適切なものはどれでしょうか?

  • A. 1台のサーバー内で複数のテーブルを別領域に格納し、I/O負荷を分散することで応答性能を高める仕組み。
  • B. データベースのバックアップを定期的に取得し、障害発生時に過去時点へ復元できるようにする仕組み。
  • C. ネットワーク上の複数のコンピュータに配置されたデータベースを、利用者からは1つのデータベースとして扱えるようにする仕組み。

正解と解説を見る

正解:C

解説:
分散データベースは、複数ノードに分散したDBを透過性によって1つに見せる構成形態です。利用者は物理的な配置を意識せず、通常のDB操作と同じ感覚でアクセスできます。

選択肢Aは、単一サーバー内のテーブルスペース分割やパーティショニングの説明に近い内容です。「ネットワーク上の複数コンピュータ」という分散DB本来の構成を欠いており不正解です。選択肢Bは、バックアップ・リカバリ機能(ロールフォワード/ロールバックリカバリ)の説明であり、分散とは別の概念です。データの保全性を扱う仕組みであって、複数ノードへの分散配置を表すものではありません。


よくある質問(FAQ)

Q. 分散データベースとレプリケーションは同じものですか?

違います。レプリケーションは「同じデータを複数ノードに複製する技術」で、分散データベースを実現する手段の一つです。分散データベースには複製を持たず、データを分割だけで配置する構成(シャーディング型)もあります。レプリケーションはあくまで複製に対する透過性を支える技術要素で、分散DB全体と同義ではありません。

Q. 2相コミットの欠点はありますか?

あります。最大の弱点は、コーディネータがフェーズ2の途中で故障すると、参加ノードが「コミットすべきかロールバックすべきか」判断できずブロック状態に陥ることです。これを解決するために3相コミット(3PC)も提案されていますが、実装が複雑なため、近年はBASE特性に基づく結果整合性(最終的に整合すればよい)を採用するNoSQL系DBも普及しています。応用情報の試験範囲では2相コミットの仕組みまで押さえれば十分です。

Q. クラウドのDBサービスは分散データベースですか?

多くは分散データベースの一種です。Amazon Aurora、Google Cloud Spanner、Azure Cosmos DBなどは、内部で複数ノードへのデータ分散とレプリケーションを行いつつ、利用者には単一のエンドポイントを提供しています。これはまさに分散DBの「位置に対する透過性」を実装した形です。ただしマネージドサービスでは内部構造が隠蔽されるため、利用者が分散構造を意識する場面は限定的です。

Q. 分散データベースとCAP定理の関係は?

CAP定理は、分散データシステムにおいて一貫性(Consistency)・可用性(Availability)・分断耐性(Partition tolerance)の3つを同時に完全には満たせない、という法則です。分散データベース設計では「ネットワーク分断は避けられないので、CかAのどちらを優先するか」を選ぶことになります。RDB系の分散DBはC(一貫性)を優先、NoSQL系の多くはA(可用性)を優先する傾向があります。応用情報ではCAP定理単体で問われることもあるため、用語として押さえておくと得点源になります。