応用情報技術者試験 過去問 2012年(平成24年) 秋期 午後 問6

スーパーマーケットの販売管理システム

スーパーマーケットを営むQ社では、3年前にポイント制度を導入した。希望する顧客には、会員になってもらい、ポイントカードを提供する。買物の際にポイントカードを提示すると、100円につき1ポイントを加算する。たまったポイントは1ポイントにつき1円の換算で、精算の際に利用できる。ポイントの有効期限は、最後にポイントカードを使用した日から2年間である。

Q社の販売管理システムでのポイント制度に関係する部分のE-R図を図1に示す。

E-R図
図1 E-R図

E-R図に対応する関係データベースのテーブル構造を図2に示す。実線の下線は主キーを表す。

テーブル名 項目
会員 会員コード、氏名、ポイント、最終使用日
売上 売上番号、売上日時、会員コード、利用ポイント
売上明細 売上番号明細番号、商品コード、単価、数量
商品 商品コード、商品種別コード、商品名、単価
商品種別 商品種別コード、商品種別名
図2 テーブル構造

会員でない顧客が購入した場合は、テーブル"売上"の列"会員コード"にはNULLが設定される。会員になっても、一度も購入しない場合もあり得る。

商品は、いずれかの商品種別に分類されるが、商品が存在しない商品種別もあり得る。商品の単価は、頻繁に変更される。

ポイント制度の改良

最近、競合する他のスーパーマーケットでもポイント制度を導入し、そちらのポイント制度の方が魅力的との評判で、売上を伸ばしている。そこで、Q社では、ポイント制度を会員にとって、より魅力的なものに改良し、売上の増加を図ることにした。検討の結果、次の仕様を追加することにした。

  1. マイレージサービス

    会員の購入累計額に応じて、精算時に加算するポイントを整数倍する。この倍率をマイレージ倍率といい、例えば、"購入累計額が50万円以上だと2倍、100万円以上だと3倍"といった具合にして決定する。

    購入累計額は、その年の1月1日からの購入金額の合計とする。年初におけるマイレージ倍率の初期値は、前年の購入累計額から決定する。買物での精算の際に、その年の購入累計額が、現在のマイレージ倍率よりも大きくなる金額に達したら、マイレージ倍率を更新し、次回の精算からは、新しいマイレージ倍率を適用する。

  2. タイムサービス

    特定の曜日、時間帯に、特定の商品種別の商品を購入すると、その商品の購入金額に対して付与するポイントを整数倍する。この倍率をタイムサービス倍率という。

    例えば、"日曜日の午前中は日用品のポイントを5倍にする"などの指定が可能である。設定の見直しと変更は随時行われる。

これらの仕様を追加するために、現行データベースのテーブルに必要な列を追加するとともに、図3に示すテーブルを新たに追加した。

テーブル名 項目
マイレージサービス 購入累計額の下限、マイレージ倍率
タイムサービス 曜日、時間帯、d、タイムサービス倍率
図3 追加したテーブルのテーブル構造
出典:平成24年度 秋期 応用情報技術者試験 午後 問6