この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

本問は、複数のWebサービスから取得する、項目数や内容が一定でない(スキーマが予測できない)商品データを蓄積する際の、適切なデータベースの選択を問うものです。図1と図2のJSONデータを見ると、項目名(品名と商品名など)や項目の構成が異なっており、取得元のWebサービスが随時変わるため、あらかじめ決まった項目構成(スキーマ)を定義できません。このような、構造が一定でない柔軟なデータを格納するのに適しているのが、ドキュメント型データベース(NoSQLの一種)です。ドキュメント型データベースは、JSONのような構造をもつ「ドキュメント」を単位としてデータを格納し、各ドキュメントが異なる項目構成をもっていても、スキーマを固定せずにそのまま柔軟に保存できます。選択肢cの「ドキュメント型データベースを使用し、項目構成の違いを区別せずに、商品単位にデータを格納する」が、この要件に適した格納方法として正しく、正解です。他の選択肢を確認すると、リレーショナルデータベース(選択肢d)はあらかじめ列(項目)を固定した表を定義する必要があり項目が予測できない本件には不向き、階層型(選択肢a)やグラフ型(選択肢b)も今回のような不定形な商品データの単純な蓄積には適しません。スキーマレスで柔軟なデータにはドキュメント型データベースが適する、という点を押さえましょう。

なぜ他の選択肢は違うのか

選択肢 ア
「階層型データベースを使用し、項目名を上位階層とし、値を下位階層とした2階層データを格納する」は適切ではありません。階層型データベースは木構造で親子関係を表すもので、項目構成が一定でない不定形な商品データを柔軟に蓄積する用途には向かず、本件の要件に適していません。木構造で親子関係を表す階層型データベースの説明であり、項目構成が一定でない不定形な商品データを柔軟に蓄積する本件の用途には向かず、要件に適していません。
選択肢 イ
「グラフ型データベースを使用し、項目名のノードと値のノードを作り、グラフとして格納する」は適切ではありません。グラフ型データベースはデータ間の関係(つながり)を表現するのに適したもので、項目構成が予測できない商品データを単純に蓄積する本件の用途には適していません。データ間の関係(つながり)を表現するのに適したグラフ型データベースの説明であり、項目構成が予測できない商品データを単純に蓄積する本件の用途には適していません。
選択肢 エ
「リレーショナルデータベースを使用し、各項目名を個別の列名とした表を定義してデータを格納する」は適切ではありません。リレーショナルデータベースはあらかじめ列(スキーマ)を固定する必要があり、項目数や内容が予測できず随時変わる本件のデータには、表定義が追いつかず不向きです。あらかじめ列(スキーマ)を固定する必要があるリレーショナルデータベースの説明であり、項目数や内容が予測できず随時変わる本件のデータには表定義が追いつかず不向きです。

解くときのポイント

スキーマが一定でない(項目が予測できない)柔軟なデータの蓄積=ドキュメント型データベース(NoSQL、JSON等を単位に格納、スキーマレス)。あらかじめ列を固定するリレーショナルDBは不向き。データの性質でDB種別を選ぶ。