2017年4月9日日曜日

[平成28年度秋] 午後 問6 解説

[問題文・解答]


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

[問題概要]


この問題は選択問題です。
出題分野はデータベースで、題材はネットショップの会員管理です。


[設問1]

(1)

図1より、会員一人に対して購入は複数のレコードが対応します。一方、1回の購入は1人の会員に紐付けられるため、会員エンティティと購入エンティティは1対多の関係になります。従って、図1の凡例より「イ」の→が正解です。
[答] a) イ


(2)

商品エンティティには商品を一意に特定する主キーがありません。購入明細エンティティを見ると、外部キーとして商品番号属性があるため、これが商品エンティティの主キーとなると考えられます。図1の注記より主キーは下線  をつけるため、bには「商品番号」が当てはまります。
[答] b) 商品番号

[設問2]

P.27下段に述べられているように図2のSQL文では、会員番号と商品分類番号ごとに1年間の購入した商品の購入金額の合計一覧を表示します。使用している表とその別名は以下の通りです。
会員:t1、購入:t2及びt3、購入明細:t4、商品:t5、商品分類:t6
FROM文以降では、各表を会員番号や商品番号等を元に結合して、会員番号及び商品分類番号等でグループ分けしています。

c) 求めたい各会員の商品分類ごとの購入金額合計を算出する部分なので、購入明細表t4の商品単価と個数の積の合計値を算出します。
d) 購入日時が1年前の日時(:一年前)以降であるかどうかの判定部分なので、購入表t2の購入日時と":一年前"を比較します。
[答]
c) SUM( t4.商品単価 * t4.個数 )
d) t2.購入日時

[設問3]

図3のSQL文では、カーソルを使用して会員の購入履歴から会員種別判定バッチ処理を行います。使用する表と別名は以下の通りです。
会員:t1、購入:t2

e) 購入表のレコードが会員種別判定の対象となるかどうかを判定する部分です。見落としがちですが、P.26下段に購入表の購入ステータスが”完了”のものだけが会員種別判定バッチ処理の対象となるため、これを判定する条件文が入ります。
f) P.28中段の「会員の購入の履歴を会員番号と購入日時の昇順に」の部分です。
g) 会員種別を特別会員にするかどうかの判定部分です。購入金額の合計(goukei)が5万円以上かどうかを判定します。
h) 会員種別を特別会員に設定する部分です。
[答]
e) t2.購入ステータス = '完了'
f) ORDER BY t2.会員番号, t2.購入日時
g) goukei >= 50000
h) SET t1.会員種別 = '特別会員'

[設問4]

(1)

各会員の会員種別の履歴情報を格納するエンティティを作成するため、会員エンティティと追加するエンティティが1対多の関連となります。
[答] 会員


(2)

各会員の会員種別を判定する度にどの会員がいつどの会員種別になったかを1つのレコードとして記録していく為、必要な属性は会員番号、会員種別、適用日時の3つとなります。
[答] 会員番号, 会員種別, 適用日時

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

0 件のコメント:

コメントを投稿