NoSQL(NoSQL)
表の形にこだわらないデータベースの総称。キーバリュー型・ワイドカラム型・ドキュメント型・グラフ型に分かれる。
もう少し詳しい説明
NoSQLは、表の形にこだわらないデータベースの総称です。
名前は「SQLではない」と読めますが、SQLを否定するものではありません。いまは Not only SQL(SQLだけではない)という読み方が使われます。関係データベース(データを表の形で持ち、表どうしを結び付けて扱うデータベース)と使い分ける、という立場です。
なぜ別の形が要ったのか
関係データベースは、守るべき決まりを持っています。
| 決まり | 守ることで得られるもの |
|---|---|
| 表の構造を先に決める | 形が崩れない |
| 1つのマスに1つの値 | 集計できる |
| トランザクションでACID特性(まとめて成功させるか、まとめて取り消すかにする。途中の状態を残さない、など4つの性質)を守る | 矛盾した状態にならない |
これらは、量が増えると重荷になります。
機械が1秒に何万件も記録を送ってくるような場面では、矛盾のなさより、受け取りきることのほうが大事になります。項目が後から増えることもあり、先に構造を決められないこともあります。
そこで、守る決まりを減らして、量と速さを取るという選択が出てきました。これがNoSQLです。
4つの型
| 型 | 持ち方 | 向く場面 |
|---|---|---|
| キーバリュー型 | 鍵と値の組だけ | 設定値、一時的な保存 |
| ワイドカラム型(列指向型) | 行ごとに列が違ってよい | 大量のログ、センサーの記録 |
| ドキュメント型 | JSON(項目名と値を組にして書く、データのやりとりによく使われる書き方)などのかたまりごと | 構造が一定しない記録 |
| グラフ型 | 点と点のつながり | 人間関係、経路 |
キーバリュー型
鍵を指定すると値が返る、それだけです。値の中身は問いません。
単純なぶん非常に速いので、何度も読む値を手前に置いておく用途によく使われます。
鍵でしか探せません。 「値が100以上のものを全部」といった探し方はできません。
ワイドカラム型
行ごとに、持つ列の種類が違ってよい形式です。
関係データベースでは、表に列を足すと全部の行にその列ができます。使わない行では空のまま場所を取ります。
ワイドカラム型では、その行に必要な列だけを持ちます。列を後から増やすのも自由です。
| 関係データベース | ワイドカラム型 | |
|---|---|---|
| 列の種類 | 全行で同じ | 行ごとに違ってよい |
| 列を増やすとき | 表の定義を変える | そのまま足せる |
センサーの記録のように、機器によって送ってくる項目が違うものに向きます。
ドキュメント型
JSONのようなひとかたまりを、そのまま1件として格納します。
入れ子になった構造をそのまま持てるので、中身の形が一定しない記録に向きます。JSONを扱うアプリとの相性がよいところです。
グラフ型
点(ノード)と、点をつなぐ線(エッジ)で持ちます。
「AさんとBさんは友人」「BさんとCさんは友人」という関係を、そのまま線として持ちます。
つながりをたどる検索が速いのが特徴です。関係データベースで同じことをすると、表を何度も結合することになり、たどる回数が増えるほど重くなります。
何を手放しているのか
NoSQLを選ぶときは、代わりに失うものを知っておく必要があります。
| 手放すもの | 中身 |
|---|---|
| 厳密な一貫性 | いま書いた値が、別の場所からすぐ見えるとは限らない |
| 表をまたぐ集計 | 結合の仕組みがない、または弱い |
| 共通の問合せ言語 | 製品ごとに書き方が違う |
「いま書いた値がすぐ読めるとは限らない」というのは、関係データベースに慣れていると驚くところです。複数の機械に分けて持つ代わりに、行き渡るまで少し待つという作りになっています。
銀行の残高のようにずれてはいけないものには向きません。そこは関係データベースの領分です。
矛盾を許さないなら関係データベース、量と速さを取るならNoSQL。
どちらが優れている、という話ではありません。
試験ではこう出る
科目A(旧・午前)では、4つの型の区別が出ます。「鍵と値の組」=キーバリュー型、「行ごとに列が違う」=ワイドカラム型、「JSONのような文書」=ドキュメント型、「点と線のつながり」=グラフ型です。
NoSQLの意味も問われます。「SQLを使わない」ではなく「関係データベース以外の形も使う」という立場です。
何を手放しているかも出ます。厳密な一貫性より、量と速さを取る作りです。
応用情報では、どの型を選ぶかという形で出ます。扱うデータの形と、一貫性がどれだけ要るかで決めます。
関連する用語
- 関係データベース
- 表の形で持つ従来の方式。NoSQLはこれと対になる言い方
- データウェアハウス・データマート・データマイニング
- 大量のデータをためて分析する。NoSQLが使われる場面と重なる
- トランザクション
- ACID特性を守るか、速さを取るか。NoSQLは後者に寄る
- 木構造
- グラフ型は、点と線のつながりをそのまま持つ
ミニクイズ
NoSQLのうち、ワイドカラム型(列指向型)の説明として適切なものはどれか。
正解は 4番:行ごとに持つ列の種類が違ってよく、列を後から自由に増やせる
ワイドカラム型は、行ごとに持つ列の種類が違ってよい形式です。列を後から増やすこともでき、ある行だけに存在する列があっても構いません。関係データベースのように、すべての行が同じ列を持つ必要がないのが特徴です。鍵と値の組だけを持つのはキーバリュー型、点と点のつながりを保持するのはグラフ型です。表の構造をあらかじめ決めてすべての行が同じ列を持つのは関係データベースの形で、NoSQLがあえて外した制約にあたります。
この分野をまとめて解く → データベースのミニテスト(全35問)
最終更新:2026-10-20