2016年12月6日火曜日

[平成27年度秋] 午後 問3 解説

[問題文・解答]


平成27年度10月に実施された基本情報技術者試験の午後試験の問題・解答はIPA公式ページからダウンロード出来ます。(以下リンク)

[問題概要]


この問題は、選択問題で問2〜問7のうち4問を選択する必要があります。
出題分野はデータベースで、問題の題材は電子部品の出荷データを管理する関係データベースの運用です。
電子部品の出荷・回収に関する関係データベースの操作や改良について問われます。関係データベースとSQLの基礎知識が必要な問題です。

[設問1]


リコール対象の電子部品の条件は以下の2点です。
①部品番号が"007551"
②出荷日が2015年1月10日〜2015年1月15日
①については「出荷表.部品番号 = '007551' 」の部分で条件指定されているため、aには②の出荷日に関する条件指定文が当てはまります。SQLでは以下の形式で列名で指定した列の値が下限と上限の間に入るかどうかの判定を行えるため「ウ」が適切です。
WHERE 列名 BETWEEN 下限 AND 上限

[答] a) ウ

[設問2]


パッケージも対象となったことで、リコール対象の電子部品の条件は以下のようになります。
①部品番号が"007551"又は部品番号が"007551"の部品を同梱部品に含むパッケージ
②出荷日が2015年1月10日〜2015年1月15日
設問1より条件②についてはaの部分で条件指定しています。
従って、bには条件①の判定文が入ります。
①-(a) 部品番号が"007551" は 「出荷表.部品番号 = '007551'」で判定できます。
①-(b) 部品番号が"007551"の部品を同梱部品に含むパッケージは、同梱部品が'007551'であるパッケージの部品番号を求めればよいため、
SELECT パッケージ表.部品番号 FROM パッケージ表
 WHERE パッケージ表.同梱番号 = '007551'
が適切です。①-(a)と①-(b)は並列条件なのでORでつなげばよいため、「エ」が正解となります。

[答] b) エ

[設問3]


合計を求める場合はSUM関数を用いればよいため「エ」が正解となります。

[答] c) エ

[設問4]


d) 回収・再出荷は出荷表の各レコードごとに行われるため、出荷表に追加するのが適切です。よって「イ」が正解と成ります。

e) 回収対象となった出荷の出荷金額を除いたある月の出荷金額の合計を求めたい場合は、まず出荷表から出荷日が当該月であるレコードを選択します。その後、回収表にあるレコードの出荷番号と同じ出荷番号を持つレコードを除外します。その結果に対して出荷金額の合計をとればよいため、出荷表と回収表があれば集計可能です。従って、「ア」が正解です。

[答] d) イ e) ア

上記の解説は問題と解答を元に自分なりの考え方を記述しており、間違っている部分もあるかと思いますので、ご了承願います。また、誤りについては正しい考え方をご指摘・ご教授頂けると助かります。


0 件のコメント:

コメントを投稿