問2 集客の効果を確認するためのデータベースの利用に関する次の記述を読んで,設問1,2に答えよ。

複数の飲食店を経営しているG社では,利用金額に応じてポイントが加算されるポイントカードを発行して,割引サービスを行っている。ポイントカードを発行した顧客(以下,会員という)のうち,携帯電話で電子メール(以下,メールという)を受信することに同意した会員に対して,来店時に提示すると優待を受けられる特典付きのメール(以下,特典メールという)を送信することになった。そこで,ポイントカードを管理するポイントカードシステムに,特典メールの送信履歴と利用履歴を蓄積して,特典メールによる集客の効果を確認することにした。ポイントカードシステムの概要と特典メールの仕組みは,次のとおりである。

〔ポイントカードシステムの概要〕

(1) ポイントカードシステムは,ポイントカードデータベースをもつ。図に,ポイントカードデータベースの構造を示す。
会員表

会員番号

氏名

メール可否

メールアドレス

利用可能ポイント

登録年月日

店舗表

店舗番号

店舗名

ポイント履歴表

会員番号

利用日時

店舗番号

人数

利用金額

獲得ポイント

利用ポイント

特典メール表

メール番号

送信日

特典内容

有効期限

送信履歴表

メール番号

会員番号

送信結果

特典メール利用表

会員番号

利用日時

メール番号

店舗番号

  下線は,主キーを表す。
図 ポイントカードデータベースの構造
(2) 会員表には,会員の情報が記録される。会員表の“メール可否”には,会員がメールの受信に同意した場合には“Y”,同意していない場合には“N”が登録される。
(3) ポイント履歴表には,ポイントカードを持って来店した会員が利用金額を支払う都度,利用情報が記録される。
(4) 特典メール表には,特典メールの内容が記録される。特典メールの種類は,“メール番号”で識別される。
(5) 送信履歴表には,特典メールの送信結果の情報が記録される。送信履歴表の“送信結果”には,通常は“OK”が登録されるが,特典メールの送信がエラーになったときには,“NG”が登録される。
(6) 特典メール利用表には,会員が利用した特典メールの情報が記録される。

〔特典メールの仕組み〕

(1) 携帯電話に保存されている特典メールを来店時に提示した会員は,来店ごとに1回,特典メールに記載された特典が受けられる。
(2) 特典メールに記載してある有効期限までは,同じ特典メールで何度でも特典が受けられる。
(3) 1回に利用できる特典メールは,1種類である。

設問1 会員に特典メールを送信するために,指定期間中にポイントカードを利用し,かつメールの受信に同意している会員のリストを作成する次の SQL 文を作成した。この SQL 文を実行して得られるデータに関する説明のうち,正しいものを解答群の中から選べ。ここで,[開始日時]と[終了日時]とは,指定期間の開始と終了の日時とする。

SELECT 会員表.氏名, 会員表.メールアドレス
 FROM 会員表, ポイント履歴表
 WHERE 会員表.会員番号 = ポイント履歴表.会員番号
  AND 会員表.メール可否 = 'Y'
  AND ポイント履歴表.利用日時 BETWEEN [開始日時] AND [終了日時]

解答群

ア 過去に来店したことのある会員が,すべて出力される。
イ 指定期間中に新たに会員登録した会員だけが,出力される。
ウ 指定期間中にポイントカードを利用した会員が,利用回数分出力される。
エ メールの受信に同意していない会員が,出力される。
オ ポイントの残っていない会員が,出力されない。

設問2 特典メールによる集客の効果を確認するために,特典メールごとの利用率を求めることにした。次の記述中の に入れる適切な字句を,解答群の中から選べ。ここで,利用率とは,特典メールの利用数を,送信がエラーにならなかった特典メールの送信数で割った値とする。

(1) 特典メールごとに,送信がエラーにならなかった特典メールの送信数を求める次の SQL 文の実行結果を,中間表1とする。

SELECT メール番号, AS 送信数
 FROM
 WHERE 送信結果 = 'OK'
 GROUP BY メール番号

(2) 特典メールごとに,会員の特典メールの利用数を求める次の SQL 文の実行結果を,中間表2とする。

SELECT メール番号, AS 利用数
 FROM
 GROUP BY メール番号

(3) 次の SQL 文によって,特典メールごとの利用率を求める。この SQL 文を実行して得られる利用率は, となる。ここで,小数点以下の切捨てはないものとする。

SELECT 中間表1.メール番号, 特典内容, 送信数, 利用数,
   利用数/送信数 AS 利用率
 FROM 中間表1, 中間表2,
 WHERE 中間表1.メール番号 = 中間表2.メール番号
  AND 中間表1.メール番号 = .メール番号

(4) 上記 (1) 〜 (3) を実行すると,

a に関する解答群

ア COUNT(*)       イ MAX(会員番号)     ウ MAX(メール番号)
エ MIN(会員番号)    オ MIN(メール番号)

b,c,e に関する解答群

ア 会員表       イ 送信履歴表       ウ 店舗表
エ 特典メール表    オ 特典メール利用表    カ ポイント履歴表

d に関する解答群

ア 0以上1以下の値    イ 0又は1    ウ 0より大きい値
エ 1以上の値

f に関する解答群

ア 送信がエラーになった特典メールの利用率が,すべて出力される
イ 送信がエラーにならなかった特典メールの利用率が,すべて出力される
ウ 利用された実績のある特典メールの利用率は,全く出力されない
エ 利用された実績のない特典メールの利用率は,全く出力されない

戻る 次頁:問03