Instiq
第3章 · 非リレーショナルデータ·v2.1.0·更新 2026/6/11·読了目安 約14分

変更要約: Cosmos DB にベクトル検索/セマンティック検索(埋め込み・RAG 用途)を追記=2026改訂の非リレーショナルドメインの AI 強調を反映。

3.1非リレーショナルデータと Azure Cosmos DB

この節の要点

非リレーショナル(NoSQL)データの4種類(キー値・ドキュメント・列ファミリ・グラフ)、リレーショナルとの違い、Azure Cosmos DB の特徴・複数 API・グローバル分散を理解します。

非リレーショナル(NoSQL) データベースは、固定スキーマに縛られず柔軟な形でデータを保存します。リレーショナルが「行と列の厳密な表」なのに対し、NoSQL は項目がデータごとに違ってもよく、大量・多様なデータや、高い拡張性(スケール)が必要な場面に向きます。NoSQL は1種類ではなく、保存の形によって4つに分かれます。「どんな形のデータか/何を高速にしたいか」で種類を選ぶのが基本です。

3.1.1NoSQL の4種類

キー値(キー→値・単純で高速・例:Table storage)、ドキュメント(JSONドキュメント・柔軟な項目・例:Cosmos DB)、列ファミリ(列のグループを持つ行・例:Cassandra API)、グラフ(ノードとエッジで関係を表す・例:Gremlin API)という非リレーショナルデータストアの種類を並べた図。
非リレーショナル(NoSQL)の種類
  • キー値(key-value):キーに対して値を保存する最も単純な形。キーを指定した取得が非常に高速。例:セッション情報・キャッシュ。
  • ドキュメント(document):JSON などの文書を1件ずつ保存。項目が文書ごとに違ってよく柔軟。例:商品カタログ・ユーザープロファイル。
  • 列ファミリ(column-family):列のグループを持つ行で構成し、巨大な表を高速に扱う。例:IoT の大量データ。
  • グラフ(graph):ノード(点)とエッジ(線)で「関係」を表す。つながりの探索が得意。例:SNS の友人関係・推薦。
種類保存の形向く用途例(Cosmos DB API 等)
キー値キー→値高速な単純取得・キャッシュTable API / Table storage
ドキュメントJSON 文書柔軟な属性のデータNoSQL(Core) / MongoDB API
列ファミリ列グループの行大規模・高スループットCassandra API
グラフノードとエッジ関係(つながり)の探索Gremlin API

3.1.2リレーショナルとの違い

リレーショナルは固定スキーマと強い整合性を持ち、複雑な結合や厳密な取引(ACID)に強い反面、構造変更が重く、水平方向の拡張が難しいことがあります。NoSQL はスキーマ柔軟・水平スケールが容易で、膨大なデータや変化の速いアプリに向きますが、複雑な結合や厳密な整合性は不得意なことがあります。どちらが優れているという話ではなく、用途に応じて使い分けるのが正解です。前章の「構造化=リレーショナル」「半構造化=NoSQL(ドキュメント)」という対応も思い出しましょう。

3.1.3Azure Cosmos DB

  • Azure Cosmos DB は、グローバル分散・低遅延・自動スケールのフルマネージド NoSQL データベース。
  • 複数の API に対応:NoSQL(Core/ドキュメント)、MongoDB、Cassandra、Gremlin(グラフ)、Table。既存アプリの API に合わせて選べる。
  • 世界中のリージョンへ複製でき、ユーザーに近い場所から低遅延で応答。スループットと遅延の SLA が保証される。
  • ベクトル検索/セマンティック検索:近年は AI 向けに、データをベクトル(埋め込み)として格納し「意味の近さ」で検索する機能が加わった(生成AIアプリの根拠検索=RAG などに利用)。

シナリオ:グローバルな EC アプリ。 各国の利用者に低遅延で応答したい→Cosmos DB を複数リージョンに複製。商品データは項目が多様なのでドキュメント(NoSQL API)、買い物カゴの一時情報はキー値、レコメンドの「この商品を買った人は…」という関係はグラフ(Gremlin API)で表現。1つのアプリで複数のデータ形が登場します。

注意

混同に注意:
ドキュメント(JSON・柔軟な属性)キー値(キーで取得する単純な値)を取り違えない。
関係(つながり)が主役ならグラフ(Gremlin)
③Cosmos DB は非リレーショナル。前章の Azure SQL(リレーショナル)と役割が違う。
④Cosmos DB の「複数 API」は、エンジンを丸ごと別物にするのではなく同じ基盤を異なる API で使えるという意味。

補足

Q. NoSQL はリレーショナルの上位互換? いいえ。複雑な結合や厳密な整合性はリレーショナルが得意で、用途で使い分けます。Q. Cosmos DB はどの種類? 主にドキュメントですが、複数 API によりキー値(Table)・グラフ(Gremlin)・列ファミリ(Cassandra)も扱えます。Q. グローバル分散の利点は? 利用者に近いリージョンから応答でき低遅延、障害時の可用性も高まります。

試験ポイント

「関係(つながり)を扱う=グラフ(Gremlin)」「JSON文書=ドキュメント」「キーで高速取得=キー値」「大規模・高スループット=列ファミリ(Cassandra)」の対応が頻出です。Cosmos DB が複数 API・グローバル分散・低遅延である点も押さえましょう。

3.1.4この節のまとめ

  • NoSQL=キー値(高速取得)/ドキュメント(JSON)/列ファミリ(大規模)/グラフ(関係)
  • リレーショナルは整合性・結合に強く、NoSQL はスキーマ柔軟・水平スケールに強い(用途で使い分け)
  • Cosmos DB=複数 API(NoSQL/MongoDB/Cassandra/Gremlin/Table)・グローバル分散・低遅延の NoSQL

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. ソーシャルネットワークの「人と人のつながり」を表現するのに最も適した NoSQL はどれですか?

Q2. JSON 形式の柔軟な文書を保存するのに適した NoSQL の種類はどれですか?

Q3. Azure Cosmos DB の特徴として正しいものはどれですか?

Q4. キーを指定して値を非常に高速に取得する、最も単純な NoSQL の種類はどれですか?

Q5. リレーショナルと比べた NoSQL の一般的な特徴として正しいものはどれですか?

理解度を確認第3章「非リレーショナルデータ」の問題を解く