情報処理試験を勉強していると、「NoSQLにはいろいろ種類があるらしいけど、ドキュメント指向って結局何が違うの?」と混乱しがちです。
対象試験と出題頻度
ドキュメント指向データベースは、基本情報技術者・応用情報技術者で出題されるテーマです。
NoSQLの4タイプ(キーバリュー型・カラム指向・ドキュメント指向・グラフ指向)を正確に区別できるかが問われます。選択肢の中でドキュメント指向の説明文が登場し、他のタイプと取り違えさせるパターンが定番です。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
ドキュメント指向データベース(NoSQL)の定義
ドキュメント指向データベース(Document-Oriented Database)とは、一言で言うと
「JSONやXMLなどの半構造データを、1件ずつ”ドキュメント”として格納するNoSQLデータベース」
のことです。
イメージとしては、「クリアファイルに入った書類の束」です。
通常のExcel管理(=関係データベース)では、すべてのデータが同じ列構成の表に収まります。しかし書類の束は、1枚ごとにフォーマットが異なっても構いません。
A4の報告書、B5のメモ、写真付きの資料…形式がバラバラでも1つのファイルにまとめて保管できます。
ドキュメント指向データベースも同じで、格納するデータ1件ごとに項目の数や構造が違っていても問題なく保存できます。
📊 ドキュメント指向データベースの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Document-Oriented Database |
| 分類 | NoSQL(Not only SQL)の一種 |
| データ形式 | JSON、XML、BSONなどの半構造データ |
| 代表的な製品 | MongoDB、CouchDB、Amazon DocumentDB |
| 特徴 | スキーマレス(データ構造を事前に固定しない) |
解説
なぜドキュメント指向が登場したのか
従来の関係データベース(RDB)は、行と列で構成される表形式でデータを管理します。
すべてのデータが事前に定義されたスキーマ(列名・型・制約)に従う必要があり、データの整合性を強固に保てる反面、構造が異なるデータを柔軟に扱うのが苦手です。
Webサービスやモバイルアプリが普及すると、ユーザーごとにプロフィール項目が異なる、商品ごとに属性の数が変わる、といったケースが急増しました。
こうした「同じテーブルに収まりきらないデータ」を自然な形で保存するために、ドキュメント単位でデータを管理する方式が生まれました。
データ構造のイメージ(JSON形式)
実際に格納されるデータはJSON形式が主流です。
以下のように、ドキュメントごとに項目の有無が異なっていても問題ありません。
▼ ドキュメント1(電子書籍)
{
"_id": "001",
"title": "NoSQL入門",
"author": "山田太郎",
"pages": 320,
"tags": ["データベース", "入門"]
}
▼ ドキュメント2(動画コンテンツ)
{
"_id": "002",
"title": "MongoDB実践講座",
"instructor": "鈴木花子",
"duration_min": 90,
"subtitles": ["日本語", "英語"]
}
※ ドキュメント1には “pages”、ドキュメント2には “duration_min” があり、項目構成が異なる
RDBであれば「pages列を持たないレコード」は許容しにくいですが、ドキュメント指向なら項目の有無が自由です。これがスキーマレスと呼ばれる最大の特徴です。
NoSQL 4タイプの比較
NoSQLはデータモデルの違いにより4つのタイプに分類されます。
ドキュメント指向の位置づけを他の3タイプと比較して整理します。
| タイプ | データの持ち方 | 代表製品 |
|---|---|---|
| キーバリュー型 | 1つのキーに1つの値を対応付けて格納する。構造が最も単純で高速 | Redis、Amazon DynamoDB |
| カラム指向 | 行キーに対して複数のカラム(名前と値のペア)を結び付けて格納する | Apache Cassandra、HBase |
| ドキュメント指向 | JSONやXMLなどの階層構造を持つデータを1件ずつ格納する。ドキュメントごとに構造が異なってもよい | MongoDB、CouchDB |
| グラフ指向 | ノード・エッジ・プロパティの3要素でデータ間の関係性を表現する | Neo4j、Amazon Neptune |
図解:RDBとドキュメント指向の構造比較
RDB(関係データベース)
| id | title | author | pages |
|---|---|---|---|
| 001 | NoSQL入門 | 山田太郎 | 320 |
| 002 | MongoDB実践 | 鈴木花子 | NULL ⚠ |
▲ 全レコードが同じ列構成。不要な列にはNULLが入る
ドキュメント指向DB
“author”: “山田太郎”,
“pages”: 320 }
“instructor”: “鈴木花子”,
“duration_min”: 90 }
▲ ドキュメントごとに項目が自由。NULLは不要
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 ドキュメント指向データベースの核心を3行で
・NoSQL4タイプの1つで、JSONやXMLなどの半構造データを1件ずつ格納する
・ドキュメントごとに項目構成が異なってもよい(スキーマレス)
・キーバリュー型・カラム指向・グラフ指向との違いを正確に区別することが重要
試験ではこう出る!
ドキュメント指向データベースが単独で問われることは少なく、NoSQLの4タイプを区別させる問題の選択肢の一つとして登場するのが典型的なパターンです。ここだけは確実に押さえてください。
📊 過去問での出題実績
| 試験回 | 出題内容 | ドキュメント指向の扱い |
|---|---|---|
| FE R5免除 問18 |
キーバリューストアの説明を選ぶ問題 | 選択肢イに「1件分のデータをドキュメントと呼び、個々のドキュメントのデータ構造は自由」というドキュメント指向の説明がひっかけとして出題 |
| FE H31春 問30 |
同じくキーバリューストアの説明を問う問題(上記と同一構成) | ドキュメント指向の説明文が不正解選択肢として登場 |
| AP R6春 問29 |
NoSQLに分類されるデータベースを選ぶ問題 | 正解はキーバリュー型。ドキュメント指向はNoSQLの分類表内で言及 |
| AP H30春 問30 |
上記AP R6春 問29と同一構成(流用問題) | 同上 |
| AP R3春 問28 |
グラフ指向DBの特徴を選ぶ問題 | 選択肢アに「階層構造のデータをドキュメントとして持つ」というドキュメント指向の説明がひっかけとして出題 |
📝 出題パターンと得点のコツ
パターン:「NoSQLの○○型の説明を選べ」
キーバリュー型やグラフ指向の説明を問う問題で、ドキュメント指向の説明文が不正解選択肢として紛れ込む形式が最も多いです。出題者は「ドキュメント」「データ構造が自由」「JSON/XML」というキーワードを使った選択肢を混ぜてきます。
見分けポイント:
「キーと値のペア」→ キーバリュー型、「ノード・エッジ・プロパティ」→ グラフ指向、「行キーにカラムを結び付ける」→ カラム指向、「ドキュメント単位で構造が自由」→ ドキュメント指向。この4つの対応を暗記すれば、試験ではここまででOKです。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. NoSQLのデータモデルの1つであるドキュメント指向データベースの説明として、最も適切なものはどれでしょうか?
- A. ノード、エッジ、プロパティの3要素で構成され、データ間の関係性をグラフ構造で表現するデータベースである。
- B. JSONやXMLなどの半構造データを1件ずつ格納し、データごとに項目構成が異なってもよいスキーマレスなデータベースである。
- C. 1つのキーに1つの値を対応付け、連想配列のような単純な構造でデータを格納するデータベースである。
正解と解説を見る
正解:B
解説:
ドキュメント指向データベースは、JSONやXMLなどの階層構造を持つデータを「ドキュメント」という単位で格納するNoSQLの一種です。ドキュメントごとに項目の数や型が異なっていても格納できる(スキーマレス)点が最大の特徴です。
選択肢Aはグラフ指向データベースの説明です。グラフ指向はノード間の関係性を表現することに特化しており、SNSの人間関係やWebリンク構造などの用途に適しています。選択肢Cはキーバリューストア(KVS)の説明です。キーと値の1対1のペアでデータを格納する最も単純な構造であり、ドキュメント指向のような階層構造は持ちません。
よくある質問(FAQ)
Q. MongoDBの名前は試験に出ますか?
IPA試験の科目A(午前)では、製品名を直接問う問題はほぼありません。「ドキュメント指向データベース」という分類名と、その特徴(JSONやXMLで格納、データ構造が自由)を理解していれば十分です。深追いは不要です。
Q. ドキュメント指向データベースではSQLは使えないのですか?
標準的なSQLはそのまま使えません。MongoDBであれば独自のクエリ言語(MQL)を使い、CouchDBはHTTP APIでデータを操作します。ただし、近年はSQLライクな構文でNoSQLを操作できるツールも増えています。試験で問われるのは「NoSQL=SQLに限定しないDBMS」という定義の部分なので、個別の操作言語まで覚える必要はありません。
Q. ドキュメント指向とカラム指向の見分けが付きません。覚え方はありますか?
「ドキュメント=書類1枚まるごと保存」「カラム=列ごとに値を束ねて保存」と覚えるのが手っ取り早いです。ドキュメント指向はJSONのように1件の中にネスト(入れ子)構造を持てるのに対し、カラム指向は行キーに対して複数のカラム(名前と値)をフラットに並べる構造です。試験の選択肢では「行キーにカラムを結び付ける」と書かれていればカラム指向、「ドキュメント」「構造が自由」と書かれていればドキュメント指向と判断できます。
Q. 実務ではどんな場面でドキュメント指向データベースが選ばれますか?
商品カタログ(商品ごとに属性が異なる)、ユーザープロフィール(登録項目が人によって違う)、CMS(コンテンツ管理システム)のように、データ構造が頻繁に変わるケースで選ばれます。逆に、厳密なトランザクション管理(銀行の送金処理など)が必要な場面ではRDBが適しています。