最終更新日:2026年8月24日
fe fe-technology database nosql
まず結論
NoSQLは、表形式を中心とする関係データベース以外の方法で、柔軟かつ大規模にデータを扱うためのデータベースの総称です。
基本情報技術者試験では、細かい製品名よりも、データをどんな形で保存するかで見分けるのがポイントです。
キー → 値
→ キーバリュー型
JSON・XMLのようなまとまり
→ ドキュメント指向
ノードと関係
→ グラフ型
列を単位にまとめて扱う
→ カラム指向
特に、「データを一意に識別するキーと値を組にして保存する」なら、キーバリューストアです。
直感的な説明
NoSQLは、すべてのデータを同じ表に押し込めるのではなく、データの性質に合った入れ物を使うイメージです。
例えば、利用者名を保存したいなら、次のようにキーと値の組で管理できます。
user001 → 山田
user002 → 佐藤
user003 → 鈴木
これはキーバリュー型です。
一方、1人の利用者について、氏名・住所・購入履歴などをひとまとまりで保存したいなら、JSONのような構造を使うドキュメント指向が向いています。
{
"id": "user001",
"name": "山田",
"city": "松山"
}
友人関係や経路のつながりを表したいなら、ノードと関係で表現するグラフ型が向いています。
つまり、NoSQLは 「何をどうつなげて保存するか」 によって種類が分かれます。
定義・仕組み
NoSQLには、代表的に次のようなデータモデルがあります。
| データモデル | 保存の考え方 | 判断の合図 |
|---|---|---|
| キーバリュー型 | キーと値の組で保存 | キー、値、一意に識別 |
| ドキュメント指向 | 1件をJSONやXMLのような文書単位で保存 | ドキュメント、JSON、XML、自由な構造 |
| グラフ型 | ノードとノード間の関係で表現 | ノード、エッジ、関係、プロパティ |
| カラム指向 | 列を単位にデータをまとめて扱う | カラム、列、列指向 |
| 関係データベース | 行と列からなる表で管理 | 表、行、列、リレーション |
キーバリュー型
キーバリュー型では、1つのキーに1つの値を対応付けます。
Key1 → Value1
Key2 → Value2
Key3 → Value3
キーを指定すれば、対応する値をすばやく取り出せます。
構造が単純なので、セッション情報、キャッシュ、設定値などの高速な読み書きに向いています。
ドキュメント指向
ドキュメント指向では、1件分のデータを1つのドキュメントとして保存します。
個々のドキュメントで項目が多少異なっていても扱いやすいのが特徴です。
文書A:氏名、住所
文書B:氏名、住所、電話番号
「データ構造が自由」「JSONやXML」といった表現があれば、ドキュメント指向を疑います。
グラフ型
グラフ型では、データそのものをノード、データ同士のつながりをエッジやリレーションシップとして表現します。
利用者A ─友人→ 利用者B
利用者B ─購入→ 商品X
人間関係、経路、推薦など、関係性そのものをたどる処理に向いています。
カラム指向
カラム指向では、列を中心にデータをまとめて扱います。
関係データベースの「行と列の表」と見た目が似ることがありますが、試験では、列単位で大量データを効率よく扱うという特徴で切り分けます。
このテーマは、基本情報技術者試験のデータベース分野と関係します。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、データモデルの説明を読んで、どの方式かを選ばせる問題に注意します。
試験中は、まず特徴語を探すと判断しやすいです。
| 問題文の表現 | 選びたいもの |
|---|---|
| 一意に識別できる値とデータを組で保存 | キーバリュー型 |
| 1件をドキュメントとして扱う | ドキュメント指向 |
| JSONやXMLのような自由な構造 | ドキュメント指向 |
| ノードと関係でつながりを表す | グラフ型 |
| 列を単位に大量データを扱う | カラム指向 |
| 行と列からなる2次元の表 | 関係データベース |
一番短い切り分け
キー → 値
→ キーバリュー
JSON → 文書
→ ドキュメント
ノード → 関係
→ グラフ
列単位
→ カラム指向
行・列・表
→ 関係DB
特に、「行と列の2次元表」=カラム指向と誤って判断しないように注意します。
2次元表そのものは、関係データベースの基本的な説明です。
どんな場面で使う?
NoSQLは、大量データや柔軟なデータ構造を扱いたい場面で使われます。
例えば、次のような用途があります。
- セッション情報やキャッシュを高速に扱う
- 項目が変化しやすいWebサービスのデータを保存する
- SNSの人間関係や経路情報を扱う
- 大量データを列単位で集計・処理する
- 分散処理しやすい構成で大量データを扱う
ただし、NoSQLなら常に関係データベースより優れているわけではありません。
複雑な表同士の結合や、厳密な整合性管理が重要な業務では、関係データベースが適する場面も多くあります。
FEでは、優劣ではなく、保存形式と用途の違いとして整理しておくと十分です。
よくある誤解・混同
キーバリュー型とドキュメント指向は同じ?
違います。
キーバリュー型
→ キーから値を取り出す
ドキュメント指向
→ 1件のデータを文書構造として保存する
キーバリュー型は構造が単純で、キーによる取得が中心です。
ドキュメント指向は、値の中身に複数の項目を持つ柔軟な構造を扱いやすい点が特徴です。
グラフ型と関係データベースは同じ?
どちらもデータ同士の関係を扱えますが、考え方が違います。
関係データベース
→ 表と表をキーで関連付ける
グラフ型
→ ノード同士の関係そのものを中心に扱う
「ノード」「エッジ」「リレーションシップ」が出てきたら、グラフ型を疑います。
カラム指向と2次元表を混同しない
ここはひっかけになりやすいです。
行と列からなる表
→ 関係データベース
列単位で効率よく扱う
→ カラム指向
単に「列がある」というだけでカラム指向を選ばないようにします。
NoSQLはSQLを一切使わない?
NoSQLは、関係データベース以外のデータモデルを広く指す言葉です。
名前だけを見て「SQLを絶対に使わない」と覚えるよりも、FEでは 「表形式以外の柔軟なデータモデル」 と押さえる方が安全です。
まとめ(試験直前用)
- キーと値の組で保存 → キーバリュー型
- JSON・XMLなどの文書単位 → ドキュメント指向
- ノードと関係 → グラフ型
- 列単位で大量データを扱う → カラム指向
- 行と列の2次元表 → 関係データベース
- キー→値、JSON→文書、ノード→グラフ、列単位→カラム指向で切り分ける
- NoSQLは万能ではなく、用途に応じて関係データベースと使い分ける