JSON データの蓄積に適したデータベース
出典: 令和5年度 春期 応用情報技術者試験 午前 問26 (IPA)
JSON 形式で表現される図 1,図 2 のような商品データを複数の Web サービスから取得し,商品データベースとして蓄積する際のデータの格納方法に関する記述のうち,適切なものはどれか。ここで,商品データの取得元となる Web サービスは随時変更され,項目数や内容は予測できない。したがって,商品データベースの検索時に使用するキーにはあらかじめ制限を設けない。
図 1 A 社 Web サービスの商品データ
{
"_id":"AA09",
"品名":"47 型テレビ",
"価格":"オープンプライス",
"関連商品 id": [
"AA101",
"BC06"
]
}
図 2 B 社 Web サービスの商品データ
{
"_id":"AA10",
"商品名":"りんご",
"生産地":"青森",
"価格":100,
"画像 URL":"http://www.example.com/apple.jpg"
}- ア 階層型データベースを使用し,項目名を上位階層とし,値を下位階層とした 2 階層でデータを格納する。
- イ グラフデータベースを使用し,商品データの項目名の集合から成るノードと値の集合から成るノードを作り,二つのノードを関係付けたグラフとしてデータを格納する。
- ウ ドキュメントデータベースを使用し,項目構成の違いを区別せず,商品データ単位にデータを格納する。
- エ 関係データベースを使用し,商品データの各項目名を個別の列名とした表を定義してデータを格納する。
正解と解説を見る
正解: ウ
- ア: 階層型データベースは親子関係を固定した構造で、項目名を階層にする方法は検索には向きません。
- イ: グラフデータベースは、ノード間の関係 (人脈など) の表現に向いたデータベースです。この用途には不自然な格納方法です。
- ウ: 項目構成の違いを区別せず、商品データ 1 件ずつ格納できるドキュメントデータベースが適しています。正しい答えです。
- エ: 関係データベースは列を事前に定義する必要があり、項目が随時変わるデータには向きません。
ポイント
- 取得元ごとに項目数や項目名が変わるので、スキーマ (項目構成) を事前に決められない データです。
- ドキュメントデータベース (NoSQL の一種) は、JSON のような文書を 1 件の単位でそのまま格納 でき、項目構成が違っていても扱えます。
- 関係データベースは列を固定する必要があるので、項目が予測できない場合には向きません。