DBデータベーススペシャリスト試験 午後Ⅱ
平成25年度春期 データベーススペシャリスト 午後Ⅱ 問2
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題








解き方のヒントを見る
業務記述の一文をモデル要素に読み替える
業務の記述を読むときは、文章の言い回しをモデルの要素へ一つずつ置き換えていく姿勢が役立ちます。どの記述がどの要素の根拠になるのかを自分で書き出し、根拠のない判断を残さないことに観点を絞って検討しましょう。
この問題で問われていること
確認すべき観点は一つ、「その判断を支える記述が本文のどこにあるか」です。数や有無、区別に関わる言葉を見つけたら、それが対象同士のどの関係や属性に対応するかを確かめ、記述にない前提を持ち込んでいないか点検します。
視点
概念データモデルと関係スキーマは、同じ業務を異なる表現で描いたものです。片方で決めた内容は、もう片方にも矛盾なく現れるはずです。常識や他の業務での経験で補わず、本文の記述だけを根拠として扱うと、判断の迷いが減ります。
確認ポイント
- 判断しようとしている箇所ごとに、根拠となる本文の記述を特定できているか
- その記述の中で、数量や条件を限定する言葉を読み落としていないか
- モデル側で決めた内容とスキーマ側の内容が、同じ記述から矛盾なく導けているか
正解と解説を見る
解説
スーパーマーケットの特売・販売・商品管理を題材に、表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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針