JSON商品データの格納方法

取得元ごとに項目名と項目数が変わり、検索キーも事前に限定できないため、固定列を要求しない ドキュメント型データベース が適します。JSON文書を商品単位でそのまま保持し、文書内の任意項目へ索引を設けられます。 ア:階層型DBは親子関係の固定的な木構造を前提とし、未知の項目をもつ文書の柔軟な保持には向きません。 イ:グラフ型DBはノード間の関係探索に強い方式ですが、項目名ノードと値ノードへ分解する必要はありません。 ウ:商品ごとに異なる構造のJSON文書を一件として格納でき、条件に合致します。 エ:リレーショナルDBで各項目を列にすると、新しい項目が現れるたびに表定義の変更が必要になります。

JSON形式で表現される図1、図2のような商品データを複数のWebサービスから取得し、商品データベースとして蓄積する際のデータの格納方法に関する記述のうち、適切なものはどれか。ここで、商品データの取得元となるWebサービスは随時変更され、項目数や内容は予測できない。したがって、商品データベースの検索時に使用するキーにはあらかじめ制限を設けない。

{

 "_id":"AA09",

 "品名":"47 型テレビ",

 "価格":"オープンプライス",

 "関連商品 id": [

  "AA101",

  "BC06"

 ]

}

{

 "_id":"AA10",

 "商品名":"りんご",

 "生産地":"青森",

 "価格":100,

 "画像 URL":"http://www.example.com/apple.jpg"

}

図1 A社Webサービスの商品データ

図2 B社Webサービスの商品データ

出典令和元年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21
ア
階層型データベースを使用し、項目名を上位階層とし、値を下位階層とした2階層でデータを格納する。
イ
グラフ型データベースを使用し、商品データの項目名の集合から成るノードと値の集合から成るノードを作り、二つのノードを関係づけたグラフとしてデータを格納する。
ウ
ドキュメント型データベースを使用し、項目構成の違いを区別せず、商品データ単位にデータを格納する。
エ
リレーショナルデータベースを使用し、商品データの各項目名を個別の列名とした表を定義してデータを格納する。