X (Twitter) で Vishakha Sadhwani さん(@vsadhwani)が投稿されていた 「Types of Databases」のインフォグラフィックがわかりやすかったので、 内容を整理して覚え書きとしてまとめます。
データベースには用途や設計思想の異なるさまざまな種類があり、 大きく以下の 5つのカテゴリ に分類できます。
| カテゴリ | 代表的な製品 |
|---|---|
| Relational / SQL Database | MySQL, Oracle, Microsoft SQL Server, PostgreSQL |
| Time-Series Database | InfluxDB, TimescaleDB, Graphite, Prometheus |
| NoSQL Database | MongoDB, Cassandra, Redis, Couchbase |
| Vector Database | Pinecone, Weaviate, Milvus, Qdrant |
| NewSQL Database | Google Spanner, CockroachDB, TiDB, YugabyteDB |
以下、それぞれについて詳しく見ていきます。
1. Relational / SQL Database(リレーショナルデータベース)
代表的な製品
- MySQL
- Oracle
- Microsoft SQL Server
- PostgreSQL
特徴
- リレーションシップと参照整合性 — テーブル間の関係を外部キーで定義し、データの整合性を保証する
- 構造化データ(テーブル + スキーマ) — 行と列で構成されるテーブルに、事前に定義されたスキーマでデータを格納する
- SQL クエリサポート — 標準化された SQL 言語でデータの操作・検索が可能
- トランザクションと ACID 特性 — Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)を保証
- インデックスとクエリ最適化 — インデックスによる高速な検索と、クエリオプティマイザによる実行計画の最適化
- 強力なセキュリティとアクセス制御 — ユーザー権限やロールベースのアクセス制御をサポート
ユースケース
最も歴史が長く広く使われているデータベースの種類です。 業務システム、EC サイト、金融システムなど、データの整合性とトランザクションが重要なあらゆるアプリケーションに適しています。
2. Time-Series Database(時系列データベース)
代表的な製品
- InfluxDB
- TimescaleDB
- Graphite
- Prometheus
特徴
- 高書き込み性能 + 高速クエリ — 大量のデータポイントを高速に書き込み、時間範囲での検索も高速
- 大容量データの圧縮 — 時系列データに特化した圧縮アルゴリズムでストレージ効率が高い
- 時間ベースのリテンションポリシー — 古いデータを自動的に削除・ダウンサンプリングする仕組みを内蔵
- 組み込みの時系列関数 — 移動平均、集計、補間など時系列分析に特化した関数を標準搭載
- メトリクス・イベント・ログデータの処理に最適 — 監視・オブザーバビリティ領域との親和性が高い
- 連続的なストリームデータへのスケーリング — 継続的に流入するデータを効率的に処理できる
ユースケース
サーバー監視(CPU / メモリ使用率など)、IoT センサーデータ、 アプリケーションのパフォーマンスメトリクス、金融の株価データなど、 時間軸に沿って連続的に記録されるデータの保存・分析に最適です。
3. NoSQL Database(NoSQL データベース)
代表的な製品
- MongoDB
- Cassandra
- Redis
- Couchbase
NoSQL 内部の分類
NoSQL はさらに以下の 4 つのサブタイプに分かれます。
| サブタイプ | 説明 | 代表例 |
|---|---|---|
| Document-based(ドキュメント型) | JSON/BSON 形式のドキュメントとしてデータを格納 | MongoDB, Couchbase |
| Column-based(カラム型) | 列ファミリー単位でデータを格納。大量データの集計に強い | Cassandra, HBase |
| Key-Value(キーバリュー型) | キーと値のペアでデータを格納。最もシンプルな構造 | Redis, DynamoDB |
| Graph Database(グラフ型) | ノードとエッジでデータ間の関係を表現 | Neo4j, Amazon Neptune |
特徴
- 柔軟なスキーマ(半構造化 / 非構造化データ) — スキーマレスで、データ構造の変更が容易
- 分散アーキテクチャのサポート — 複数ノードへの水平分散が前提の設計
- 高いスケーラビリティとパフォーマンス — 大規模データ・高トラフィックに対応
- 高トラフィック向けの並行性制御 — 大量の同時アクセスを効率的に処理
- 一部の DB では SQL ライクな互換性 — CQL(Cassandra)や N1QL(Couchbase)など SQL に似たクエリ言語を提供
ユースケース
SNS、リアルタイムチャット、コンテンツ管理システム、セッション管理、キャッシュ、 ゲームのリーダーボードなど、柔軟なデータ構造と高いスケーラビリティが求められるアプリケーションに適しています。
4. Vector Database(ベクトルデータベース)
代表的な製品
- Pinecone
- Weaviate
- Milvus
- Qdrant
特徴
- AI アプリケーション向けのエンベディング(ベクトル)を保存 — テキストや画像を数値ベクトルに変換して格納
- 超高速の類似性検索(最近傍探索) — ANN(Approximate Nearest Neighbor)アルゴリズムによる高速検索
- セマンティック検索・レコメンドシステムに最適 — 意味的な類似度に基づく検索が可能
- RAG パイプラインで活用(LLM + 知識検索) — LLM に外部知識を与える Retrieval-Augmented Generation の中核
- マルチモーダルデータの処理 — テキスト、画像、音声などの埋め込みを統一的に扱える
- メタデータフィルタリング + ハイブリッド検索 — ベクトル類似検索と属性フィルタを組み合わせた検索が可能
ユースケース
AI / 機械学習アプリケーション、チャットボットの知識ベース、 画像・動画の類似検索、レコメンドエンジン、RAG(検索拡張生成)など、 近年の生成 AI ブームに伴い急速に需要が拡大しているカテゴリです。
5. NewSQL Database(NewSQL データベース)
代表的な製品
- Google Spanner
- CockroachDB
- TiDB
- YugabyteDB
特徴
- SQL + ACID をリレーショナル DB と同様にサポート — 従来の RDB と同じ SQL インターフェースとトランザクション保証
- NoSQL のような分散スケーラビリティ — 水平スケーリングが可能で、大規模データに対応
- ノード間の強い一貫性 — 分散環境でも Strong Consistency を実現
- トランザクションを維持したまま水平スケーリング — ACID 特性を犠牲にせずにスケールアウト
- 高可用性とフォールトトレランスが組み込み — ノード障害時も自動的にフェイルオーバー
- モダンな大規模エンタープライズアプリに最適 — クラウドネイティブ時代の要件に対応
ユースケース
グローバルに展開する大規模 Web サービス、金融取引システム、 マルチリージョンでの整合性が必要なアプリケーションなど、 「RDB の信頼性」と「NoSQL のスケーラビリティ」の両方が必要なシーンに適しています。
まとめ
| カテゴリ | 一言で言うと | 選定の目安 |
|---|---|---|
| Relational / SQL | 構造化データ + ACID | データの整合性・トランザクションが最重要 |
| Time-Series | 時系列データ特化 | 監視・IoT・メトリクスなど時間軸のデータ |
| NoSQL | 柔軟 + スケーラブル | スキーマレス・大量データ・高トラフィック |
| Vector | ベクトル類似検索 | AI / LLM / セマンティック検索 |
| NewSQL | RDB + NoSQL のいいとこ取り | 大規模分散 + トランザクション両立 |
各カテゴリにはそれぞれ得意な領域があり、銀の弾丸は存在しません。 アプリケーションの要件(データ構造、スケール、一貫性、レイテンシなど)に応じて 適切なデータベースを選定することが重要です。
また、実際のシステムでは複数種類のデータベースを組み合わせる Polyglot Persistence のアプローチも一般的です。 たとえば、メインの業務データは PostgreSQL、キャッシュは Redis、全文検索は Elasticsearch、 AI 機能のベクトル検索は Pinecone、といった使い分けが考えられます。