応用情報技術者過去問題 平成23年特別 午後問6

問6 データベース

データベースの設計と実装に関する次の記述を読んで,設問1,2に答えよ。

 Y社は,インターネットで個人向けに書籍を販売する書籍販売サイトを運営している。書籍販売サイトでの顧客からの注文を受け付ける注文管理システム(以下,現行システムという)では,書籍情報,注文情報に加えて,顧客の会員情報を管理している。現行システムのE-R図を図1に示す。現行システムでは,E-R図のエンティティ名を表名,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理している。
pm06_1.gif/image-size:519×229
〔新刊お薦め機能の追加について〕
 Y社では,販売促進のために"新刊お薦め機能"を書籍販売サイトに追加することにした。新刊お薦め機能は,顧客の購入履歴から顧客が興味をもつ書籍ジャンルを推定し,そのジャンルで過去60日以内に発行された書籍(以下,新刊という)をすべてお薦め商品として表示する機能である。ここで,過去180日間に購入した書籍の"総冊数に占めるジャンルごとの冊数の割合"(購入割合)が10%を超えているものを,その顧客が興味をもつ書籍ジャンルとする。同一書籍を複数購入した場合も,その冊数をそのまま集計する。新刊お薦め機能は,次の三つの手順によって実現するものとする。
[手順1]
全書籍から新刊だけを抽出する。
>[手順2]
今日を含めて過去180日以内の購入履歴から,顧客ごと,書籍ジャンルごとの購入冊数を求める。
>[手順3]
今日を含めて過去180日以内の,その顧客の購入割合が10%を超えているジャンルについて,そのジャンルの新刊をお薦め商品として表示する。
 [手順1]を実現するために,新しいエンティティ"新刊"を追加し,"新刊"に対応するテーブルを作成するためのSQL文と,データを挿入するためのSQL文を作成した。エンティティとSQL文を図2に示す。ここで,":今日"は,SQL実行時の年月日を格納するホスト変数である。図2中の"発行年月日+60>:今日"は,発行年月日がSQL実行時の年月日を含めて過去60日以内であることを示す。また,現行システムで年月日を格納する列と,年月日を格納するホスト変数は,基準日からの日数を値としている。
pm06_2.gif/image-size:506×194
 [手順2]を実現するために,新しいエンティティ"購入傾向"を追加し,"購入傾向"に対応するテーブルを作成するためのSQL文と,
pm06_3.gif/image-size:483×311
 [手順3]を実現するために,お薦め商品の情報を抽出するSQL文を作成した。SQL文を図4に示す。ここで,":顧客番号"は指定された顧客の顧客番号を,":購入総冊数"は指定された顧客が今日を含めて過去180日以内に購入した総冊数を格納するホスト変数である。
pm06_4.gif/image-size:492×124
〔新刊お薦め機能の改善について〕
 Y社では新刊お薦め機能を構築し,一部の顧客に対して試験的に導入した。しばらく試験運用を続けた結果,新刊お薦め機能を利用している複数の顧客から,"商品購入後にすぐにお薦め商品が更新された方が使いやすい"との指摘を受けた。
 そこで,毎日バッチ処理で実行していた[手順2]の処理に加えて,顧客が商品を購入したタイミングで,その顧客に対する"購入傾向"にその時購入した商品の情報を追加することにした。その更新処理のためのSQL文を図5に示す。ここで,":顧客番号"はその顧客の顧客番号を,":注文番号"はその顧客の直前の注文に対応する注文番号を,":注文明細番号"はその注文のうちの一つの注文明細に対応する注文明細番号を格納するホスト変数である。
pm06_5.gif/image-size:518×193
 図5の更新処理の動作確認のために,図6及び図7に示すテストデータを用意した。図6は[手順2] の結果として"購入傾向テーブル"に格納するテストデータである。図7は,顧客が新たに購入した書籍に関するテストデータである。
pm06_6.gif/image-size:492×133

設問1

三つの手順を実現するためのエンティティとSQL文について,(1)〜(3)に答えよ。
  • 図2中のabに入れる適切な字句を答えよ。
  • 図3中のcfに入れる適切な字句を答えよ。ここで,SQL実行時の年月日はホスト変数":今日"に格納されているものとする。
  • 図4中のgに入れる適切な字句を答えよ。

-解答入力欄-

    • a:
    • b:
    • c:
    • d:
    • e:
    • f:
    • g:

-解答例・解答の要点-

    • a:CREATE TABLE
    • b:PRIMARY KEY
    • c:SUM(注文明細.数量)
    • d:注文.注文年月日+180>:今日
    • e:注文.顧客番号
    • f:書籍.ジャンル
    • g:購入傾向.購入冊数 * 10

-解説-

この設問の解説はまだありません。

設問2

図6及び図7のテストデータで図5の更新処理の動作確認を行った結果について,(1),(2)に答えよ。
  • 図6のテストデータが格納された購入傾向テーブルに対して,図7のテストデータを用いて図5の更新処理を行った結果,図6のテストデータのうち,更新されたすべてのレコードの更新後の内容(顧客番号,ジャンル,購入冊数)を答えよ。
  • (1)の結果から,図5の更新処理では一部の商品を購入したときに購入傾向テーブルが変更されないことが分かった。どのような商品を購入したときにこの問題が起こるか。35字以内で述べよ。

-解答入力欄-

    • (図表で回答する問題のため解答入力欄はありません。)

-解答例・解答の要点-

    • pm06_7.gif/image-size:215×81
    • ・過去180日以内にその顧客が購入したことがないジャンルの商品 (30文字)
      ・購入傾向テーブルにその顧客のデータがないジャンルの商品 (27文字)

-解説-

この設問の解説はまだありません。
問6成績
【23年特別 午後問題】
 問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11 問12
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop