NoSQLは、基本情報技術者・応用情報技術者のデータベース分野で繰り返し出題されるテーマです。「リレーショナルデータベース(RDB)との違いは何?」「KVSって何の略?」など、混乱しやすいポイントを整理しておくことが得点のカギになります。
対象試験と出題頻度
NoSQLは、基本情報技術者・応用情報技術者で出題されるテーマです。
排他制御やSQL関連の知識と並び、データベース分野の午前問題で定番化しています。RDBとの対比や、4種類のデータモデルの見分けが問われます。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★★☆
ランクA(重要)必ず覚えておくべき
NoSQLの定義
情報処理試験を勉強していると、「NoSQLって結局何?SQLを使わないデータベースのこと?」と混乱しがちです。
NoSQL(Not only SQL)とは、一言で言うと
「リレーショナルデータベース(RDB)以外のデータ管理方式の総称」
のことです。
イメージとしては、「整理棚のない倉庫」です。
RDBが「あらかじめ棚の仕切りとラベルを決めてから物を入れる几帳面な整理術」だとすると、NoSQLは「段ボール箱にラベルだけ貼って自由にどんどん積み上げていく収納法」です。
形やサイズがバラバラな荷物も素早く放り込めるが、全体を横断して検索するには工夫が要る。そんな性格を持っています。
NoSQLの基本情報
| 項目 | 内容 |
|---|---|
| 正式名称 | Not only SQL |
| 分類 | RDB以外のデータベース管理方式の総称 |
| 主な4種類 | キーバリュー型(KVS)、ドキュメント指向型、カラム指向型、グラフ型 |
| 代表的な製品 | Redis、MongoDB、Apache Cassandra、Neo4j |
| 得意な領域 | ビッグデータ処理、高頻度な読み書き、スキーマが変化するデータ |
解説
NoSQLが登場した背景
RDBは、行と列で構成される表形式でデータを管理し、SQLという問い合わせ言語で操作する仕組みです。
ACID特性(原子性・一貫性・独立性・永続性)によって高い信頼性を誇り、業務システムの中核として数十年にわたり使われてきました。
しかし、SNSの投稿やIoTセンサーのログなど、秒単位で爆発的に生成されるデータを処理する場面では、RDBの厳密なスキーマ定義やトランザクション管理がボトルネックになります。
サーバーを追加してもRDBは水平方向にスケールしにくい構造だからです。
この課題を解消するために、スキーマレスで水平分散に強いデータ管理方式が求められました。それがNoSQLです。
4つのデータモデル
NoSQLは「RDB以外」をまとめた呼び名であり、内部はデータの格納方式によって4つに分かれます。
それぞれの特徴と代表製品を正確に区別することが理解の土台になります。
| 種類 | 格納方式 | 代表製品 | 用途の例 |
|---|---|---|---|
| キーバリュー型 (KVS) |
1つのキーに1つの値を対応付けて保存。構造が最もシンプル | Redis、Amazon DynamoDB | セッション管理、キャッシュ |
| ドキュメント 指向型 |
JSONやXMLなどの半構造化データを1件=1ドキュメントとして格納。ドキュメントごとに項目の構造を変えられる | MongoDB、CouchDB | Webアプリのコンテンツ管理 |
| カラム指向型 | 行キーに対して複数のカラム(名前と値の組)を結びつけて格納。列単位の集計に強い | Apache Cassandra、HBase | ログ蓄積、時系列データ |
| グラフ型 | ノード(頂点)とリレーションシップ(辺)でデータ間の関係性を表現。グラフ理論に基づく | Neo4j、Amazon Neptune | SNSの人間関係分析、経路探索 |
図解:4種類のデータモデル
それぞれの格納イメージを視覚的に確認しておきましょう。
RDBとの比較
NoSQLを正しく位置づけるには、RDBとの違いを「設計思想」と「得意分野」の2軸で整理するのが近道です。
| 比較項目 | RDB | NoSQL |
|---|---|---|
| データ構造 | 行と列の表形式(スキーマ固定) | KVS・ドキュメント・カラム・グラフなど(スキーマレス) |
| 問い合わせ | SQL | 製品固有のAPI・クエリ言語 |
| 一貫性 | ACID特性で強い一貫性を保証 | 結果整合性(BASE特性)を採用する製品が多い |
| 拡張方式 | スケールアップ(垂直拡張)が中心 | スケールアウト(水平分散)が得意 |
| 得意分野 | 厳密な整合性が求められる業務(金融取引、在庫管理など) | 大量データの高速読み書き(SNS、IoT、リアルタイム分析など) |
ここだけは確実に押さえてください。NoSQLは「SQLを使えない」という意味ではなく「SQLだけに頼らない」という意味です。
実際、一部のNoSQL製品はSQLライクなクエリ言語を備えています。
もう少し詳しく知りたい方向け:BASE特性とCAP定理
NoSQLの設計指針としてよく挙げられるのがBASE特性です。Basically Available(基本的にいつでも応答する)、Soft state(状態は常に最新とは限らない)、Eventually consistent(時間が経てば整合する)の頭文字を取ったものです。RDBのACID特性と対比される概念として覚えておくと理解が深まります。
また、分散システムの理論であるCAP定理(一貫性・可用性・分断耐性の3つを同時に完全には満たせない)も関連トピックです。ただし、FE/APの午前問題でCAP定理そのものが問われることはほぼないため、深追いは不要です。
では、NoSQLが実際の試験でどのように出題されるか見ていきましょう。
NoSQLの核心を3行で
・RDB以外のデータベース管理方式の総称で、正式名称は「Not only SQL」
・KVS・ドキュメント指向・カラム指向・グラフの4つのデータモデルがある
・スキーマレスで水平分散に強く、大量データの高速処理に向いている
試験ではこう出る!
NoSQLは、FE・APの午前問題で「NoSQLに分類されるデータベースはどれか」という形式で繰り返し問われています。同一の問題がFEとAPをまたいで流用される典型的なテーマです。
過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R6春期 午前 問29 |
ビッグデータの基盤技術として利用されるNoSQLに分類されるDBを選ぶ問題 | ・正解は「キーバリュー型データベース」 ・オブジェクト指向DB、データウェアハウス、データディクショナリがひっかけ |
| AP H30春期 午前 問30 |
上記R6春と同一の問題(流用) | ・APでは同一問題が周期的に再出題される典型パターン |
| FE H31春期 午前 問30 |
キーバリューストアの説明として適切なものを選ぶ問題 | ・正解は「任意のデータとそれを一意に識別できる値を組として保存」 ・グラフ型DB、ドキュメント指向DB、関係DBの説明がひっかけ |
| FE R5 修了試験 問18 |
上記H31春と同一構成の問題(流用) | ・FEでもNoSQL/KVS関連は繰り返し出題されている |
IPA試験での出題パターン
パターン1:「NoSQLに分類されるDBを選べ」
4つのデータベースの説明文が並び、NoSQLに該当するものを選ぶ形式。ひっかけとして「オブジェクト指向DB」「データウェアハウス」「データディクショナリ(リポジトリ)」の説明が紛れ込む。キーワードは「キーに対応付けて管理」「キーバリュー型」。
パターン2:「KVSの説明を選べ」
NoSQLの4種類の説明文を並べ、KVSに該当するものを選ぶ形式。「ノード・リレーションシップ・プロパティ」はグラフ型、「ドキュメント」はドキュメント指向型の説明なので除外する。
試験ではここまででOKです。4種類の格納方式の違いと代表製品を区別できれば得点できます。BASE特性やCAP定理まで問われることは午前問題ではほぼないため、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. ビッグデータの基盤技術として利用されるNoSQLに分類されるデータベースの説明として、最も適切なものはどれでしょうか?
- A. 様々な形式のデータを一つのキーに対応付けて管理するキーバリュー型データベースであり、スキーマレスで水平分散に適した構造を持つ。
- B. 関係データモデルをオブジェクト指向データモデルに拡張し、操作の定義や型の継承関係の定義を可能としたデータベース。
- C. 経営者の意思決定を支援するために、ある主題に基づくデータを現在の情報とともに過去の情報も蓄積したデータベース。
正解と解説を見る
正解:A
解説:
NoSQL(Not only SQL)に分類されるデータベースとして代表的なのがKVS(キーバリューストア)です。キーと値の組を単位としてデータを格納するシンプルな構造で、ビッグデータの高速処理に適しています。AP R6春期 問29やAP H30春期 問30でも同様の問題が出題されています。
選択肢Bはオブジェクト指向データベースの説明です。RDBの表形式をオブジェクト指向に拡張したもので、NoSQLには分類されません。選択肢Cはデータウェアハウス(DWH)の説明です。意思決定支援のために過去データを蓄積する仕組みであり、NoSQLの範疇ではありません。
よくある質問(FAQ)
Q. NoSQLはRDBを完全に置き換えるものですか?
置き換えるものではありません。NoSQLは大量データの高速処理や柔軟なスキーマ変更に強みがある一方、複数テーブルにまたがる複雑な結合処理やトランザクションの厳密な一貫性が求められる場面ではRDBの方が適しています。実際の開発現場では、用途に応じてRDBとNoSQLを併用する「ポリグロットパーシステンス」という設計手法が主流です。
Q. 「Not only SQL」なのにSQLを使えるNoSQL製品はありますか?
あります。例えばApache CassandraはCQL(Cassandra Query Language)というSQLに近い構文でデータを操作できます。Amazon DynamoDBもPartiQLというSQL互換クエリをサポートしています。「NoSQL=SQLが一切使えない」というわけではなく、あくまで「SQLだけに限定しない」という意味であることを押さえておくと正確に理解できます。
Q. NoSQLとNewSQLは何が違いますか?
NewSQLは、RDBのACID特性(強い一貫性)を維持しつつ、NoSQLのようなスケールアウト性能も実現することを目指した新世代のデータベースです。Google Cloud SpannerやCockroachDBが代表的な製品です。NoSQLが一貫性を緩めて可用性と分散性を優先した設計であるのに対し、NewSQLは一貫性を犠牲にせず水平分散を実現する点が異なります。IPA試験の出題範囲には現時点で含まれていませんが、関連知識として知っておくと実務で役立ちます。
Q. NoSQLの4種類の中で、試験に出やすいのはどれですか?
過去の出題実績を見ると、圧倒的にキーバリュー型(KVS)が問われています。FE H31春期 問30、FE R5 修了試験 問18、AP H30春期 問30、AP R6春期 問29のいずれも正解選択肢はKVSの説明でした。ドキュメント指向型やグラフ型は不正解の選択肢として登場するため、「グラフ型=ノードとリレーションシップで関係性を表現」「ドキュメント指向型=JSONやXMLで格納」という特徴を見分けられれば十分です。