令和5年度 春期 応用情報技術者試験 午前 問26

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

図1 A社 Web サービスの商品データ
図の説明テキスト

JSON形式のデータ

{
  "_id":"AA09",
  "品名":"47型テレビ",
  "価格":"オープンプライス",
  "関連商品 id": [
    "AA101",
    "BC06"
  ]
}
図2 B社 Web サービスの商品データ
図の説明テキスト

JSON形式のデータ

{
  "_id":"AA10",
  "商品名":"りんご",
  "生産地":"青森",
  "価格":100,
  "画像 URL":"http://www.example.com/apple.jpg"
}
解答・解説

正解: ウ. ドキュメントデータベースを使用し,項目構成の違いを区別せず,商品データ単位にデータを格納する。

本設問は、様々な項目構成をもつJSONデータを蓄積するのに適したデータベースモデルを問う問題です。問題文において「取得元となるWebサービスは随時変更され、項目数や内容は予測できない」「検索時に使用するキーにはあらかじめ制限を設けない」とあることから、事前のスキーマ定義が不要(スキーマレス)で、JSONのような複雑な階層構造をもつデータをそのまま格納できるデータベースが適しています。このような要件に最も合致するのは、NoSQLの一つであるドキュメントデータベースです。

各選択肢の解説

  • ア: 階層型データベースは、データを木構造で管理する方式です。上位・下位の2階層に分けるといった固定的な構造では、動的に変化するJSONデータの柔軟な管理には適しません。
  • イ: グラフデータベースは、データ(ノード)間の関係性(エッジ)を表現することに特化したデータベースです。SNSのつながりや経路探索などには適していますが、JSONドキュメントそのものを格納・検索する目的には最適ではありません。
  • ウ: 正解です。ドキュメントデータベースは、JSONやXMLなどの形式のデータを1つの「ドキュメント」として格納します。データごとに異なる構造を持たせることが可能であるため、項目構成が予測できないデータの蓄積に最適です。
  • エ: 関係データベース(RDB)は、あらかじめ表の構造(列名やデータ型などのスキーマ)を厳密に定義する必要があります。項目数や内容が予測できないケースでは、列の追加や変更が頻繁に発生し運用が困難になるため不適切です。

Spineチーム