DBデータベーススペシャリスト試験 午後Ⅱ

平成25年度春期 データベーススペシャリスト 午後Ⅱ 問2

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問2 スーパーマーケットの特売業務,販売業務及び商品管理業務を支援するシステムに関する次の記述を読んで,設問に答えよ。 D社は,ある私鉄の沿線地域に,主に食品を扱うスーパーマーケットを展開している。現在,D社のシステムは,本部システムと店舗システムに分かれており,D社ではこれらのシステムを統合することにした。そこで,情報システム部では,まず対象業務である特売業務,販売業務及び商品管理業務を分析し,概念データモデル及び関係スキーマを完成させることにした。 〔業務の分析結果〕 1. 対象業務に関する組織 (1) 組織構造 ① 店舗は36店舗あり,店舗コードで識別している。 ② 店舗とは別に,全社に共通する業務に関わる本部がある。 (2) 品ぞろえをする組織 ① 店舗はそれぞれに業績に関して責任を負うので,品ぞろえの最終決定権限を委譲されている。品ぞろえとは,お客様のニーズに合わせて仕入れる商品の種類と数量を決めることである。 ② 店舗が全ての品ぞろえを行うのは負荷が高いので,全店舗共通の品ぞろえは本部で決定している。 ③ 店舗では,本部が行った全店舗共通の品ぞろえに対して,必要に応じて品ぞろえの追加を行っている。 2. 仕入先,メーカ (1) 仕入先は,D社が商品を仕入れる先であり,仕入先コードで識別している。 (2) メーカは,食品メーカ,日用品メーカなどD社の扱う商品の製造元であり,メーカコードで識別している。 (3) メーカの一部は,仕入れる量が多い商品について,直接仕入れに応じてくれることがある。そのようなメーカを仕入先メーカと呼び,仕入先としても登録している。 3. 商品の特性 (1) 商品の分類 ① 商品は,大・中・小の3段階に分類している。 ② 大分類は,青果,水産,精肉,総菜,菓子,日用品などである。 ③ 中分類と小分類は,大分類ごとの分け方で分類している。 (2) 商品 ① 商品は,全社共通の商品コードで識別し,商品マスタに登録している。 ② 商品のうち,製造元を特定できる商品をメーカ品と呼び,メーカ品フラグで区別している。 ③ 商品マスタについて,全商品共通の主な属性と,メーカ品だけに値が設定される主な属性を,表1に示す。 ④ 商品の中には,青果,水産などのように仕入単価も標準売価も日々変動するものがあり,商品マスタの内容は頻繁に変更される。商品マスタの内容を変更した場合は,変更前の内容の履歴をとっている。 表1 商品の主な属性 4. 品ぞろえの方法 (1) 本部では,全店舗に必ず置くべき商品を決め,商品マスタに登録する。 (2) 店舗では,お客様からの品ぞろえの要望にきめ細かく応えるために,店舗独自の商品を品ぞろえすることがある。その場合は,本部に依頼し,商品マスタに登録してもらう。その際,新規の仕入先の場合は,その仕入先も登録してもらう。また,新規のメーカの場合も同様に登録してもらう。店舗が登録を依頼した商品は,どの店舗で品ぞろえしてもよい。 (3) 全店舗に必ず置くべき商品のことを品ぞろえ必須商品,店舗に置く判断を任せている商品のことを品ぞろえ任意商品と呼び,品ぞろえ必須区分で区別している。 (4) 各店舗では,品ぞろえ任意商品の中から,自店舗で販売する商品だけを選んで,品ぞろえ任意商品店舗設定マスタに登録する。ただし,どの店舗にも品ぞろえされない商品はない。 5. 特売の方法 特売とは,例えば,金曜日から日曜日までのように期間を定めて,幾つかの商品を通常価格よりも下げて売ることである。特売を企画することを特売企画と呼び,全店舗共通で行う共通特売企画と,各店舗が独自に行う店舗特売企画がある。共通特売企画と店舗特売企画は,特売企画種類区分で区別している。 (1) 共通特売企画 ① 期間は,半期ごとに次の半期分を決めている。期間を決めた時点で,個々の期間について,特売企画番号を付与し,特売名,特売設定理由,店舗ごとの目標来客数,目標客単価を設定している。 ② 企画相互の実施期間が重複しないように,期間を定めている。 ③ 対象商品と特売の売価は,本部が仕入先と交渉し,特売開始4日前までに決定する。 ④ 対象商品は,品ぞろえ必須区分が必須のものである。 (2) 店舗特売企画 ① 企画に当たって特売企画番号を付与する。この番号は,共通特売企画の特売企画番号と重複しない一意な番号である。 ② 共通特売企画に対象商品を追加する商品追加特売企画と,店舗独自で企画する店舗独自特売企画があり,店舗特売企画種類区分で区別している。 ・商品追加特売企画では,追加対象の共通特売企画番号,特売名,特売設定理由,改定目標来客数,改定目標客単価を設定している。また,追加対象の共通特売企画の商品と重複した商品は対象にしない。 ・店舗独自特売企画では,特売名,特売設定理由,目標来客数,目標客単価を設定している。 ・店舗独自特売企画の期間は,共通特売企画及び商品追加特売企画の期間と日程が重なってもよい。その場合,重複した商品は対象としない。 ③ 対象商品と特売の売価を,特売開始の前日までに決定する。 ④ 品ぞろえ任意商品も対象とする場合は,自店舗の品ぞろえ任意商品店舗設定マスタに登録されていなければならない。 共通特売企画と店舗特売企画は,それぞれ共通特売企画書,店舗特売企画書を作成し,承認を受けて実施される。共通特売企画書は,A1票,B票,C票で構成され,店舗特売企画書はA2票とC票で構成される。 ・A1票とA2票は一部だけ書式が異なるもので,その特売企画の名称,期間,設定理由など基本情報を記載する。 ・B票には,店舗別の目標を記載する。 ・C票には,対象商品と売価を記載する。 共通特売企画書の例を図1に,店舗特売企画書の例を図2に示す。 図1 共通特売企画書の例 図2 店舗特売企画書の例 6. 売価の設定方法 (1) 同じ商品を,同じときに販売しても,店舗によって売価が異なることがある。例えば,店舗特売企画によって売価が異なることもあれば,売り切るための値引きによって売価が異なることもある。 (2) 店舗ごとに売価が異なる可能性があるので,商品マスタとは別に,店舗のPOSレジに連動する実際の売価を定める売価マスタを用意している。 (3) 売価マスタには,日次で開店前に,最新の商品マスタの情報を設定した後に,共通特売企画と店舗特売企画の当日の情報を反映している。 7. 現場での値引き方法 (1) 現場での値引きには,割引率又は割引金額を記した値引きシールを商品に貼ったり,店内の張り紙・アナウンスなどでタイムセールの案内を行ったりするなどの方法がある。 (2) 値引きシールによる値引きでは,売価マスタは変更せず,店舗のPOSレジで値引き入力することで対応する。 (3) タイムセールでは,店舗で売価マスタの売価を直接変更する。この売価変更は,後で効果を分析できるように,変更された商品について,変更前の売価の履歴をとっている。 8. 実地棚卸しと在庫更新の対象 (1) 実地棚卸しをするか否か,在庫数を都度更新するか否かは,商品によって次のように分けている。 ① 実地棚卸しをしない商品は,翌日まで品質を維持できない総菜など毎日の営業終了後に廃棄するものである。 ② 実地棚卸しをする商品は,在庫数を保持して,商品の販売・入荷の都度在庫数を更新する商品と,在庫数を保持しない商品に分けている。在庫数を保持しない商品は,日をまたがった品質の維持はできるが,箱を開けて中身の一部だけを売場に補充していたり,カットされて入荷時と重さが変わったりして,在庫数を更新できないものである。 (2) 実地棚卸しをする商品か否かは,棚卸対象フラグで区別している。 (3) 在庫数を都度更新する商品か否かは,在庫更新対象フラグで区別している。 9. 販売実績の把握 (1) お客様が買物かごに入れた商品の精算は,店舗のPOSレジで把握する。 (2) 販売実績は,レジでの1回当たりの精算単位に,店舗コード,販売年月日,店舗の当日中の販売連番,販売時刻,販売金額,商品コード,販売数,売価,値引額,値引後売価を記録する。特売企画で立てた目標来客数及び目標客単価に対する実績把握は,それぞれ精算の数と販売金額を集計して行っている。 10. 商品の入荷 (1) 仕入先から納入された商品を,バックヤードに入荷する。 (2) 入荷時に入荷数を記録する。 11. 商品の売場への補充 (1) 売場の商品を確認し,バックヤードから売場に商品を補充する。 (2) 売場への商品の補充時に補充数を記録する。 12. 商品戻入と廃棄 (1) 期限切れ,余剰,お客様からの返品,破損,汚れなど,理由は様々であるが,売場からバックヤードに商品を戻すことを,戻入という。 (2) 戻入時に戻入数を記録する。 (3) 戻入後に,期限切れ,破損などによって廃棄したものについては,廃棄数を記録する。 13. 実地棚卸し (1) 棚卸対象フラグが,実地棚卸しの対象となっている商品については,月次で実地棚卸しを行い,棚卸数,棚卸実施年月日を記録する。 (2) 在庫更新対象フラグが,在庫数を都度更新する対象となっている商品については,実地棚卸し時点の在庫数,棚卸差異数を記録する。 実地棚卸しを記録する画面の例を,図3に示す。 図3 実地棚卸しを記録する画面の例 〔概念データモデル及び関係スキーマの設計方針〕 概念データモデルと関係スキーマの設計は,次の方針で行うことにした。 (1) 今回の概念データモデリングでは,日常的に特売企画,販売などが行われている状態でのサブタイプ構造及びリレーションシップの対応関係を分析することを目的とする。例えば,店舗の新規開店時(店舗が開設され,まだ店舗の活動がない期間),商品の取扱い開始時(商品が登録され,まだ入荷及び販売がない期間)は考慮しない。 (2) 概念データモデリングに先立って制約を分析し,概念データモデルに反映すべき主な制約を洗い出した。その制約を表2に示す。 表2 概念データモデルに反映すべき主な制約(一部未完成) 制約を概念データモデルに反映する方法は次のAとBである。 A 制約内容に該当するリレーションシップが,1対多の場合は,多側の対応関係にゼロを含むことがないように,必要に応じて適切なサブタイプを切り出す。一方,制約内容に該当するリレーションシップが1対1の場合は,意味的に後からインスタンスが発生する側の対応関係にゼロを含むことがないように,固有の属性がなくても,必要に応じて適切なサブタイプを切り出す。 B 制約内容に該当するリレーションシップが,1対多の場合は,1側の対応関係にゼロを含むことがないように,必要に応じて適切なサブタイプを切り出す。一方,制約内容に該当するリレーションシップが1対1の場合は,意味的に先にインスタンスが発生する側の対応関係にゼロを含むことがないように,固有の属性がなくても,必要に応じて適切なサブタイプを切り出す。 表2に示した制約と制約を概念データモデルに反映する方法の組合せを表3に示す。 表3 制約と制約を概念データモデルに反映する方法の組合せ (3) 表2に示す制約以外でも,リレーションシップの1対多の多側において対応関係にゼロを含むことがないように,必要に応じて適切なサブタイプを切り出す。ただし,サブタイプの切り出しは,(2)の制約を概念データモデルに反映する方法のAに従う。 (4) 外部キー以外の従属属性についても,サブタイプを切り出したエンティティタイプがある場合は,適切なエンティティタイプに配置する。 (5) 1対1のリレーションシップの外部キーは,意味的に後からインスタンスが発生する側に配置する。 (6) 概念データモデルでは,スーパータイプとサブタイプの間のリレーションシップを除く全てのリレーションシップについて,対応関係にゼロを含むか否かを表す“○”又は“●”を記述する。ただし,“○”又は“●”の記述は,(1)の方針に従う。 〔概念データモデル及び関係スキーマの設計〕 設計方針に基づいて,設計した概念データモデルを図4に,関係スキーマを図5に示す。 図4 概念データモデル(未完成) 図5 関係スキーマ(未完成) 概念データモデルの解答に当たっては,エンティティタイプ間の対応関係にゼロを含むか否かの表記も含めて,巻頭の表記ルールに従うこと。関係スキーマの解答に当たっては,主キーを表す実線の下線,外部キーを表す破線の下線も示すこと。また,エンティティタイプ名及び属性名は,その意味を識別できる適切な名称にすること。 設問 概念データモデル及び関係スキーマの設計方針に従って,(1)~(4)に答えよ。 (1) 表2中の【ア】~【カ】に入れる適切な字句を答えよ。 (2) 図4に示した概念データモデルを,エンティティタイプ間の対応関係にゼロを含むか否かの表記も含めて完成させよ。 (3) 図5に示した関係スキーマについて,[a]に「商品」の不足する属性を,[b]に「商品履歴」の主キーを,[c]に「棚卸明細」の属性を答えよ。 (4) 図5において,不足している関係スキーマを答えよ。ただし,切り出したサブタイプに,主キー以外の固有属性がないものは答える必要はない。
表1 商品の主な属性。商品名、メーカー情報、仕入れ・販売単位、価格など、商品マスタの主な属性と説明を示す表。
表1 商品の主な属性。商品名、メーカー情報、仕入れ・販売単位、価格など、商品マスタの主な属性と説明を示す表。
図1 共通特売企画書の例。共通特売企画の基本情報、店舗別目標、特売対象商品と売価を記載した企画書の例。
図1 共通特売企画書の例。共通特売企画の基本情報、店舗別目標、特売対象商品と売価を記載した企画書の例。
図2 店舗特売企画書の例。店舗独自または商品追加の特売企画情報と、対象商品・売価を記載した企画書の例。
図2 店舗特売企画書の例。店舗独自または商品追加の特売企画情報と、対象商品・売価を記載した企画書の例。
図3 実地棚卸しを記録する画面の例。対象店舗と棚卸年月日を指定し、商品別の在庫数、棚卸数、棚卸差異数を記録する画面。
図3 実地棚卸しを記録する画面の例。対象店舗と棚卸年月日を指定し、商品別の在庫数、棚卸数、棚卸差異数を記録する画面。
表2 概念データモデルに反映すべき主な制約(一部未完成)。品ぞろえ、特売、在庫更新、実地棚卸しなどに関する七つの制約を一覧化した表。
表2 概念データモデルに反映すべき主な制約(一部未完成)。品ぞろえ、特売、在庫更新、実地棚卸しなどに関する七つの制約を一覧化した表。
表3 制約と制約を概念データモデルに反映する方法の組合せ。制約番号ごとに、方法Aまたは方法Bを採用するかを丸印と横線で示した対応表。
表3 制約と制約を概念データモデルに反映する方法の組合せ。制約番号ごとに、方法Aまたは方法Bを採用するかを丸印と横線で示した対応表。
図4 概念データモデル(未完成)。店舗、商品、特売企画、売価、入荷、棚卸しなどのエンティティタイプと関係を示す未完成モデル。
図4 概念データモデル(未完成)。店舗、商品、特売企画、売価、入荷、棚卸しなどのエンティティタイプと関係を示す未完成モデル。
図5 関係スキーマ(未完成)。店舗、商品、特売、売価、入荷、棚卸しなどの関係スキーマを属性とキー付きで示した未完成図。
図5 関係スキーマ(未完成)。店舗、商品、特売、売価、入荷、棚卸しなどの関係スキーマを属性とキー付きで示した未完成図。
解き方のヒントを見る

業務記述の一文をモデル要素に読み替える

業務の記述を読むときは、文章の言い回しをモデルの要素へ一つずつ置き換えていく姿勢が役立ちます。どの記述がどの要素の根拠になるのかを自分で書き出し、根拠のない判断を残さないことに観点を絞って検討しましょう。

この問題で問われていること

確認すべき観点は一つ、「その判断を支える記述が本文のどこにあるか」です。数や有無、区別に関わる言葉を見つけたら、それが対象同士のどの関係や属性に対応するかを確かめ、記述にない前提を持ち込んでいないか点検します。

視点

概念データモデルと関係スキーマは、同じ業務を異なる表現で描いたものです。片方で決めた内容は、もう片方にも矛盾なく現れるはずです。常識や他の業務での経験で補わず、本文の記述だけを根拠として扱うと、判断の迷いが減ります。

確認ポイント

  • 判断しようとしている箇所ごとに、根拠となる本文の記述を特定できているか
  • その記述の中で、数量や条件を限定する言葉を読み落としていないか
  • モデル側で決めた内容とスキーマ側の内容が、同じ記述から矛盾なく導けているか
正解と解説を見る

解説

スーパーマーケットの特売・販売・商品管理を題材に、表2の制約と設計方針A・Bに従ってサブタイプを切り出す問題です。商品・特売企画・売価・特売企画対象商品の各サブタイプ、販売と販売明細の親子関係、○と●の付け方を業務記述から決め、関係スキーマの主キー・外部キー・属性まで一貫させることが求められます。

問題の全体像

D社は本部システムと店舗システムを統合するため、特売業務・販売業務・商品管理業務を分析し、概念データモデル(図4)と関係スキーマ(図5)を完成させます。商品は品ぞろえ必須区分、メーカ品フラグ、棚卸対象フラグ、在庫更新対象フラグで区別されます。特売企画は共通特売企画と店舗特売企画に分かれ、店舗特売企画はさらに商品追加特売企画と店舗独自特売企画に分かれます。売価は店舗ごとに持ちます。出題趣旨では、①マスタ設定上の制約を見抜く能力、②サブタイプを切り出す能力、③リレーションシップを考察する能力、④属性を抽出する能力、⑤それらを妥当なデータモデルにまとめる能力を評価するとしています。採点講評では、設問(2)の概念データモデルの正答率が低く、特に特売企画と売価のサブタイプ構造に誤りが多かったと指摘しています。

設問1(ア)

注目するのは〔業務の分析結果〕4(4)の「各店舗では、品ぞろえ任意商品の中から、自店舗で販売する商品だけを選んで、品ぞろえ任意商品店舗設定マスタに登録する」という記述です。このマスタに登録できる商品は品ぞろえ任意商品に限られるため、公式解答例では「品ぞろえ任意商品」としています。表3で制約2はAとBの両方を採用しています。そのため商品から品ぞろえ任意商品をサブタイプとして切り出し、品ぞろえ任意商品と品ぞろえ任意商品店舗設定の1対多で両端とも●になるモデルにつながります。

設問1(イ)

注目するのは5(1)④の「対象商品は、品ぞろえ必須区分が必須のものである」という記述です。共通特売企画は全店舗共通なので、全店舗に必ず置く商品だけが対象になります。公式解答例では「品ぞろえ必須商品」としています。表2に「全ての品ぞろえ必須商品が特売の対象になるわけではない」とあるため、表3で制約3はBだけを採用しています。つまり1側の品ぞろえ必須商品を切り出して1側を●にし、多側の共通特売企画対象商品は○のまま残します。

設問1(ウ)

注目するのは4(4)の「自店舗で販売する商品だけを選んで」と、5(2)④の「自店舗の品ぞろえ任意商品店舗設定マスタに登録されていなければならない」という記述です。売価は店舗ごとに設定するので(6(2))、品ぞろえ任意商品の売価を持てるのは、その店舗が販売すると決めた商品だけです。公式解答例では「自店舗」としています。

設問1(エ)

(ウ)と同じく4(4)に着目します。販売すると決めた品ぞろえ任意商品の登録先は品ぞろえ任意商品店舗設定マスタなので、公式解答例では「品ぞろえ任意商品店舗設定マスタ」としています。どちらも(店舗、商品)の組を単位とするので、品ぞろえ任意商品店舗設定と品ぞろえ任意商品売価は1対1になります。制約4はA・Bの両方を採用しているため、売価から品ぞろえ任意商品売価を切り出し、両端とも●になります。

設問1(オ)

注目するのは8(3)の「在庫数を都度更新する商品か否かは、在庫更新対象フラグで区別している」という記述です。店舗在庫が存在するのは在庫数を都度更新する商品だけなので、公式解答例では「在庫更新対象フラグで在庫数を都度更新すると区別した商品」としています。この区別は区分名だけでなく、どのフラグで区別するかまで含めて書くのがポイントです。8(1)②から、在庫数を都度更新する商品は実地棚卸しをする商品の一部なので、在庫更新対象商品は実地棚卸対象商品のさらにサブタイプになります。

設問1(カ)

注目するのは8(2)の「実地棚卸しをする商品か否かは、棚卸対象フラグで区別している」と、13(1)の記述です。棚卸明細を記録するのは実地棚卸しの対象商品だけなので、公式解答例では「棚卸対象フラグで実地棚卸しをすると区別した商品」としています。これにより、商品から実地棚卸対象商品をサブタイプとして切り出し、実地棚卸対象商品と棚卸明細を1対多で結びます。

設問2

【記号の意味】巻頭の表記ルールと設計方針(6)により、●は対応関係にゼロを含まないこと、○はゼロを含むことを表します。記号は線の端に付けます。その端のエンティティタイプが、相手側の1インスタンスに対して必ず存在すれば●、0件の場合があれば○です。スーパータイプとサブタイプの間には付けません。設計方針(1)により、判定は日常的に業務が行われている状態で行います(新規開店時や商品の取扱い開始時は考慮しません)。

【公式解答例のサブタイプ】(1)仕入先メーカ:仕入先とメーカの両方のサブタイプです(2(3)「仕入先としても登録」)。(2)メーカ品:商品のサブタイプです(3(2)②メーカ品フラグ、表1のメーカ品だけの属性)。(3)品ぞろえ必須商品と品ぞろえ任意商品:商品のサブタイプです(品ぞろえ必須区分、制約2〜4)。(4)実地棚卸対象商品:商品のサブタイプで、その下にさらに在庫更新対象商品があります(制約5・6)。(5)共通特売企画と店舗特売企画:特売企画のサブタイプです(特売企画種類区分、制約1)。店舗特売企画の下には商品追加特売企画と店舗独自特売企画があります(店舗特売企画種類区分)。(6)共通特売企画対象商品と店舗特売企画対象商品:特売企画対象商品のサブタイプです。(7)品ぞろえ必須商品売価と品ぞろえ任意商品売価:売価のサブタイプです(制約4)。

【リレーションシップと記号】表記は「1側(記号)→多側(記号)」です。

・店舗まわり:店舗(●)→店舗特売企画(○)、店舗(●)→店舗別特売目標(●)、店舗(●)→品ぞろえ任意商品店舗設定(○)、店舗(●)→販売(●)、店舗(●)→商品入荷(●)、店舗(●)→商品売場補充(●)、店舗(●)→商品バックヤード戻入(●)。図4にある店舗→売価・棚卸・店舗在庫は両端●です。

・仕入先・メーカ・分類:メーカ(●)→メーカ品(●)。仕入先→商品、大分類→中分類→小分類→商品は図4のとおり両端●です。

・特売:共通特売企画(●)→店舗別特売目標(●)。店舗別特売目標(●)と商品追加特売企画(○)は1対1です。特売企画(●)→特売企画対象商品(●)は図4のとおりです。品ぞろえ必須商品(●)→共通特売企画対象商品(○)、商品(●)→店舗特売企画対象商品(○)。

・売価:品ぞろえ必須商品(●)→品ぞろえ必須商品売価(●)。品ぞろえ任意商品(●)→品ぞろえ任意商品店舗設定(●)。品ぞろえ任意商品店舗設定(●)と品ぞろえ任意商品売価(●)は1対1です。売価(●)→売価変更履歴(○)は図4のとおりです。

・商品管理・販売:商品(●)→商品履歴(○)、商品(●)→商品入荷明細(●)、商品(●)→商品売場補充(●)、商品(●)→商品バックヤード戻入(○)、商品(●)→販売明細(●)、販売(●)→販売明細(●)、実地棚卸対象商品(●)→棚卸明細(●)、在庫更新対象商品(●)→店舗在庫(●)。商品入荷→商品入荷明細、棚卸→棚卸明細は図4のとおり両端●です。

【着目点と理由】設計方針(3)では、1対多の多側にゼロを含まないようサブタイプを切り出します。そのため、店舗在庫は在庫更新対象商品に、棚卸明細は実地棚卸対象商品に、品ぞろえ任意商品店舗設定は品ぞろえ任意商品に、店舗別特売目標は共通特売企画に結ぶことで、どれも両端●になります。一方、業務上「0件のことがある」と読める箇所は○が残ります。具体的には次のとおりです。

・店舗特売企画:各店舗が独自に行うもので、全店舗にあるとは限りません。

・品ぞろえ任意商品店舗設定:店舗が選んだ商品だけが登録されます。

・共通特売企画対象商品:制約3のただし書きのとおり、全ての品ぞろえ必須商品が特売対象になるわけではありません。

・店舗特売企画対象商品:特売の対象は一部の商品です。

・商品バックヤード戻入:戻入は期限切れや破損などのときだけ発生します。

・商品履歴:商品マスタを変更したときだけ作られます。

・売価変更履歴:制約7のとおりタイムセールのときだけ登録します。

・商品追加特売企画:店舗が追加特売をしたときだけ存在します。

商品追加特売企画は追加対象の共通特売企画番号を持ち、その店舗の店舗別特売目標に対して改定目標を設定します。1対1の外部キーは、設計方針(5)により後から発生する商品追加特売企画側に置きます。品ぞろえ任意商品売価は店舗設定と同じ(店舗、商品)単位なので1対1で、制約4をA・Bで反映して両端●になります。販売はレジ1回の精算単位で、商品ごとの販売数や売価はその明細として持つので、販売→販売明細の親子関係を新たに設けます。

設問3(a)

図5の商品には、サブタイプを区別する属性が不足しています。公式解答例は「品ぞろえ必須区分、メーカ品フラグ、棚卸対象フラグ」で、それぞれ4(3)、3(2)②、8(2)で商品全体を区別する属性として説明されています。製造元メーカコード、JANコード、メーカ希望小売価格はメーカ品だけに値が入るので、設計方針(4)によりメーカ品に置きます。在庫更新対象フラグは実地棚卸しをする商品の中だけの区別なので、実地棚卸対象商品に置きます。このため、どちらも商品には含めません。

設問3(b)

3(2)④に、商品マスタは頻繁に変更され、変更前の内容の履歴をとるとあります。履歴を一意に識別するには、商品に加えて変更日時が必要です。公式解答例の主キーは「商品コード、変更年月日、変更時刻」です。同じ日に何度も変更される可能性もあるため、図5の売価変更履歴(変更年月日、変更時刻を主キーに含む)と同じ考え方で時刻まで含めます。

設問3(c)

図3の実地棚卸し画面の明細部と、13(1)(2)の記述に着目します。公式解答例は「店舗コード、棚卸対象年月、商品コード、在庫数、棚卸数、棚卸差異数」です。親の棚卸(店舗コード、棚卸対象年月)を引き継ぎ、商品コードで明細を区別します。値として棚卸数に加え、在庫を都度更新する商品について記録する在庫数と棚卸差異数を持ちます。商品名は商品から参照できるので含めません。

設問4

主キー以外の固有属性があるサブタイプと、まだ図5にない関係スキーマを挙げます。公式解答例は次のとおりです。

・仕入先メーカ(主キー:仕入先コード、外部キー:メーカコード)

・メーカ品(主キー:商品コード、外部キー:製造元メーカコード、JANコード、メーカ希望小売価格)

・実地棚卸対象商品(主キー:商品コード、在庫更新対象フラグ)

・店舗特売企画(主キー:特売企画番号、外部キー:店舗コード、目標来客数、目標客単価、店舗特売企画種類区分)

・商品追加特売企画(主キー:特売企画番号、外部キー:共通特売企画番号)

・店舗別特売目標(主キー:特売企画番号・店舗コード、目標来客数、目標客単価)

・販売(主キー:店舗コード・販売年月日・販売連番、販売時刻、販売金額)

・販売明細(主キー:店舗コード・販売年月日・販売連番・販売明細番号、外部キー:商品コード、販売数、売価、値引額、値引後売価)

9(2)の販売実績では、精算単位の項目(販売時刻、販売金額)を販売に置き、商品単位の項目を販売明細に置きます。共通特売企画、店舗独自特売企画、品ぞろえ必須商品、品ぞろえ任意商品、在庫更新対象商品、各特売企画対象商品、各売価サブタイプは固有属性がないので、答える必要はありません。採点講評では、販売と販売明細の主キーの誤りや従属属性の配置の誤りが多かったと指摘しています。また、販売金額のように導出できる属性でも、帳票などに現れる属性を分析者の判断で外すのは避けるべきだと述べています。

学習のポイント

区分・フラグ・「〜だけ」「必ず」「ただし全てではない」といった記述を、サブタイプの切り出しと○・●に変換する練習を重ねることが大切です。販売・販売明細のような親子関係では、主キーと属性をインスタンスの粒度で決めることも重点になります。

出典:独立行政法人 情報処理推進機構(IPA)平成25年度春期 データベーススペシャリスト試験 午後Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針