スクリーンショット_2020-02-08_10

H25年春期 問3データベース

試験問題はこちら

テーマは「会員情報を管理する関係データベースの設計と運用」

複数の店舗を持つヘアサロンの売り上げを管理してポイントを付けたり、必要な集計を行ったりするシステムです。SQL文の穴埋めはデータベース問題の定番ですが、選択肢の中には明らかに間違いというのもあって絞り込みやすく、比較的取り組みやすい問題と思います。

【設問1】

(a)は保有ポイントをどの表で管理するかという問題です。
ポイントは問題文にあるように「合計金額に応じて、千円につき1ポイント付与」されます。
なので単純に考えれば、「合計金額」のある「会計表」で管理するのが適当です。
「合計金額÷1000」で計算したポイントを集計することで管理できます。

しかし問題文には、表1の後に
「管理システムで会員の保有ポイントを参照する機会が多いので、参照の都度、保有ポイントの集計処理を実行することは避けたい」
と書かれています。
ポイントは割引サービスに使えるので、会員が会計時にポイント利用を申し出たら、そのたびにその会員が持っているポイントの集計、例えば
 SELECT SUM (合計金額/1000) FROM 会計表
 WHERE 会員番号 = その人の会員番号
みたいな問合せと集計を伴うSQLを実行しなければならないわけです。
これを参照の都度行うことは避けたいと言っているので、会員表で管理するわけにはいきません。

スクリーンショット 2020-02-09 08.37.09

じゃあポイントはどの表で管理すべきか。
ポイントは会員一人ひとりにつくものですから、表には会員情報が必要です。
残り4つの表でそれがあるのは「会員表」だけです。
「会員表」に「保有ポイント」という列を作り、そこに「会計表」の「合計金額」から計算したポイントを加算していけば、会員がいまポイントをいくつ持っているかを、集計することなく随時参照できます。

ここから先は

3,246字 / 1画像

¥ 100

この記事が気に入ったらサポートをしてみませんか?