平成27年度 秋期 ITパスポート試験 公開問題 問72 解説 関係データベースのデータ抽出
関係データベースで管理された“売上”表,“顧客”表及び“商品”表がある。a〜cのうち,これらの表のデータを用いて作成できるものだけを全て挙げたものはどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。 売上 [売上番号][顧客番号][商品番号][売上年月日][売上額] 顧客 [顧客番号][顧客名] 商品 [商品番号][商品カテゴリ名][商品名] a 過去のある期間に一定額以上の売上があった顧客の一覧 b 前月に在庫切れがあった商品の一覧 c 直近1か月の商品別売上額ランキング
- ア a, b
- イ a, b, c
- ウ a, c ✓ 正答
- エ b, c
解説
各表に含まれる項目(カラム)を確認し、作成したい情報の項目が元の表にあるかどうかを判断します。
a: 売上表(顧客番号、売上年月日、売上額)と顧客表(顧客番号、顧客名)を結合すれば作成できます。 b: 売上表、顧客表、商品表のいずれにも「在庫数」や「在庫切れ」に関する情報が含まれていないため、作成できません。 c: 売上表(商品番号、売上額、売上年月日)と商品表(商品番号、商品名)を結合すれば作成できます。
よって、作成できるのはaとcとなり、正解はウです。
関係データベースにおけるデータの結合
関係データベースでは、複数の表を「キー」と呼ばれる共通の項目で結びつけることができます。これを結合(JOIN)と呼びます。
- aの判断: 売上表にある「顧客番号」をキーにして顧客表と結びつければ、誰が(顧客名)いつ(売上年月日)いくら(売上額)買ったかを一覧にできます。そこから特定の期間や金額でフィルタリングを行えば目的の情報が得られます。
- cの判断: 売上表にある「商品番号」をキーにして商品表と結びつければ、どの商品が(商品名)いくら(売上額)売れたかを計算できます。期間で絞り込み、集計を行えばランキングの作成が可能です。
一方で、bの判断については、データベース設計の基本である「必要なデータがテーブルに格納されているか」を問うています。どれほど高度なデータベース技術を使っても、そもそも「在庫切れ」というデータがどこにも存在しなければ、その情報を抽出することはできません。
データベースの設計とビジネス活用
この問題は、業務に必要なレポートを作成する際に、どのデータが必要で、どのデータが不足しているのかを判断する能力を問うています。
実務においては、基幹システムや販売管理システムからデータを分析する際、よくある課題です。たとえば「売上分析をしたいが、商品の在庫データとシステムが分断されていて直接結びつけられない」といったケースです。エンジニアやDX推進担当者は、このような設計上の制約を理解した上で、必要なデータをどのように収集・保持するのかを設計しなければなりません。
ITパスポート試験では、SQLなどのクエリを直接書かせる問題は出ませんが、このようにテーブルの構造を理解し、ビジネスの要件を満たすためにどのデータとどのデータを組み合わせればよいかを論理的に考える力は非常に重要です。