【ぶんさんでーたべーす】

分散データベース とは?

公開:
💡 データを複数の場所に分けて置く「守りと拡張の仕組み」

複数のサーバー・拠点にデータを分散して保存・管理するデータベース。単一障害点を避け、スケーラビリティと可用性を高める。

📌 このページのポイント
分散データベースの構成 クライアント ルーター 振り分け Shard A(拠点1) Primary + Replica Shard B(拠点2) Primary + Replica Shard C(拠点3) Primary + Replica データを複数拠点のノードに分散し、単一障害点を回避する
分散データベースのイメージ
ひよこ ひよこ
分散データベースって普通のデータベースと何が違うの?
ペンギン先生 ペンギン先生
普通のデータベースは1台(または少数)のサーバーで管理するけど、分散データベースは複数のサーバーにデータを分けて保存するんだよ。地理的に離れた拠点に置くこともあるね
ひよこ ひよこ
なんでわざわざ分散させるの?
ペンギン先生 ペンギン先生
主な理由は2つ。①可用性: 1台が壊れても他のサーバーが動き続けられる。②スケーラビリティ: サーバーを増やせばデータ量やアクセス数の増加に対応しやすい。1台のサーバーには物理的な限界があるからね
ひよこ ひよこ
データを分散させると、どこに何があるかわからなくならない?
ペンギン先生 ペンギン先生
そこで「シャーディング」という技術が使われるよ。データを一定のルールで複数のノードに振り分けて、どのデータがどのノードにあるか管理する仕組みだね。あわせてレプリケーションでデータを複製して、耐障害性も高めるんだ
ひよこ ひよこ
デメリットはないの?
ペンギン先生 ペンギン先生
あるよ。複数のノード間でデータを同期する必要があるから、通信の遅延や整合性の管理が難しくなる。全ノードが常に完全に同じデータを持つ「強整合性」を保とうとすると性能が落ちるし、性能を優先すると一時的にデータがずれる「結果整合性」を受け入れる必要が出てくるんだ
ひよこ ひよこ
そのトレードオフってどう決めるの?
ペンギン先生 ペンギン先生
CAP定理という考え方が有名だよ。分散システムでは一貫性・可用性・分断耐性の3つを同時に完全には満たせないとされていて、システムの目的に応じてどれを優先するか設計する必要があるんだ。銀行の残高管理なら一貫性重視、SNSのいいね数なら可用性重視、といった具合だね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「分散データベース」って出てきたら「複数拠点にデータを分けて可用性と拡張性を確保する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Distributed Database」 = 分散データベース
💬 Distributed(分散した)+ Database(データベース)。1台のサーバーに頼らず複数拠点に分けて管理するのが特徴だよ
← 用語集にもどる