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

令和5年度秋期 データベーススペシャリスト 午後Ⅱ 問2

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

問題

問2 ドラッグストアチェーンの商品物流の概念データモデリングに関する次の記述を読んで,設問に答えよ。 ドラッグストアチェーンのF社は,商品物流の業務改革を検討しており,システム化のために概念データモデル及び関係スキーマを設計している。 〔業務改革を踏まえた商品物流業務〕 1. 社外及び社内の組織と組織に関連する資源 (1) ビジネスパートナー(以下,BPという) ① BPは仕入先である。仕入先には,商品の製造メーカー,流通業である商社又は問屋がある。 ② BPは,BPコードで識別し,BP名をもつ。 (2) 配送地域 ① 全国を,気候と交通網を基準にして幾つかの地域に分けている。 ② 配送地域は,複数の郵便番号の指す地域を括ったものである。都道府県をまたぐ配送地域もある。 ③ 配送地域は配送地域コードで識別し,配送地域名,地域人口をもつ。 (3) 店舗 ① 店舗は,全国に約1、500あり,店舗コードで識別し,店舗名,住所,連絡先,店舗が属する配送地域などをもつ。 ② 店舗の規模や立地によって販売の仕方が変わるので,床面積区分(大型か中型か小型かのいずれか)と立地区分(商業立地かオフィス立地か住宅立地かのいずれか)をもつ。 (4) 物流拠点 ① 物流拠点は,拠点コードで識別し,拠点名,住所,連絡先をもつ。 ② 物流拠点の機能には,在庫をもつ在庫型物流拠点(以下,DCという)の機能と,積替えを行って店舗への配送を行う通過型物流拠点(以下,TCという)の機能がある。 ③ 物流拠点によって,TCの機能だけをもつところと,DCとTCの両方の機能をもつところがある。 ④ 物流拠点に,DCの機能があることはDC機能フラグで,TCの機能があることはTC機能フラグで分類する。 ⑤ TCは,各店舗に複数のDCから多数の納入便の車両が到着する混乱を防止するために,DCから届いた荷を在庫にすることなく店舗への納入便に積み替える役割を果たす。 ⑥ DCは配送地域におおむね1か所配置し,TCは配送地域に複数配置する。 ⑦ DCには,倉庫床面積を記録している。 ⑧ TCは,運営を外部に委託しているので,委託先物流業者名を記録している。 (5) 幹線ルートと支線ルート ① DCからTCへの配送を行うルートを幹線ルート,TCから配送先の店舗を回って配送を行うルートを支線ルートという。 ② 支線ルートは,TCごとの支線ルートコードで識別している。また,支線ルートには,車両番号,配送先店舗とその配送順を定めている。支線ルートの配送先店舗は8店舗前後にしている。支線ルート間で店舗の重複はない。 2. 商品に関連する資源 (1) 商品カテゴリー ① 商品カテゴリーには,部門,ライン,クラスの3階層木構造のカテゴリーレベルがある。商品カテゴリーはその総称である。 ② 部門には,医薬品,化粧品,家庭用雑貨,食品がある。 ③ 例えば医薬品の部門のラインには,感冒薬,胃腸薬,絆創膏などがある。 ④ 例えば感冒薬のラインのクラスには,総合感冒薬,漢方風邪薬,鼻炎治療薬などがある。 ⑤ 商品カテゴリーは,カテゴリーコードで識別し,カテゴリーレベル,カテゴリー名,上位のどの部門又はラインに属するかを表す上位のカテゴリーコードを設定している。 (2) アイテム ① アイテムは,色やサイズ,梱包の入り数が違っても同じものだと認識できる商品を括る単位である。例えば缶ビールや栄養ドリンクでは,バラと6缶パックや10本パックは異なる商品であるが,アイテムは同じである。 ② アイテムによって属する商品は複数の場合だけでなく一つの場合もある。 ③ アイテムは,アイテムコードで識別し,アイテム名をもつ。 ④ アイテムには,調達先のBP,温度帯(常温,冷蔵,冷凍のいずれか),属するクラスを設定している。また,同じアイテムを別のBPから調達することはない。 ⑤ BPから,全てのDCに納入してもらうアイテムもあるが,多くのアイテムは一部のDCだけに納入してもらう。 ⑥ F社が自社で保管・輸送できるのは常温のアイテムだけであり,冷凍又は冷蔵の保管・輸送が必要なアイテムはBPから店舗に直納してもらう。これを直納品と呼び,直納品フラグで分類する。直納品に該当するアイテムには直納注意事項をもつ。 (3) 商品 ① 商品は,BPが付与したJANコードで識別する。 ② 商品は,商品名,標準売価,色記述,サイズ記述,材質記述,荷姿記述,入り数,取扱注意事項をもつ。 3. 業務の方法・方式 (1) 物流網(物流拠点及び店舗の経路) ① 物流網は,効率を高めることを優先するので,DCからTC,TCから店舗は,木構造を基本に設計している。ただし,全てのDCが全てのアイテムをもつわけではないので,DCからTCの構造には例外としてたすき掛け(TCから見て木構造の上位に位置するDC以外のDCからの経路)が存在している。 ② DCでは,保有するアイテムが何かを定めている。 ③ 直納品を除いて,店舗に配送を行うTCは1か所に決めている。 ④ DCからTC,TCから店舗についての配送リードタイム(以下,リードタイムをLTという)を,整数の日数で定めている。DCからTCの配送LTを幹線LTと呼び,TCから店舗への配送LTを支線LTと呼ぶ。 ⑤ 幹線LTは,1日を数え始めとするLTで,ほとんどの場合は1日であるが,2日を要することもある。例えば九州にあるDCにしかない商品を,全国販売のために全国のTCへ配送する場合,東北以北のTCへは1日では届かないケースが存在する。 ⑥ TCに対してどのDCから配送するかは,TCが必要とする商品の在庫が同じ配送地域のDCにあればそのDCからとし,なければ在庫をもつ他のDCからたすき掛けとする。ただし,全体のたすき掛けは最少になるようにする。 ⑦ 支線LTは,0日を数え始めとするLTで,ほとんどの店舗への配送が積替えの当日中に行うことができるように配置しているので,当日中に配送できる店舗への支線LTは0日である。ただし,離島にある店舗の中には0日では配送できない場合もある。 ⑧ 店舗は,次を定めている。 ・どの商品を品揃えするか。 ・直納品を除くDC補充品(DCから配送を受ける商品)について,どのDCの在庫から補充するか。 (2) 補充のやり方 ① 店舗又はDCは,商品の在庫数が発注点を下回ったら,定めておいたロットサイズ(以下,ロットサイズをLSという)で要求をかける。ここで,DCが行う要求は発注であり,店舗が行う要求は補充要求である。 ② 店舗へのDCからの補充のために,商品ごとに全店舗一律の補充LSを定めている。 ③ DCでは,DCごと商品ごとに,在庫数を把握し,発注点在庫数,DC納入LT,DC発注LSを定めている。 ④ 店舗では,品揃えの商品ごとの在庫数を把握し,発注点在庫数を定めている。また,直納品の場合,加えて直納LTと直納品発注LSを定めている。 ⑤ 店舗から補充要求を受けたDCは,宛先を店舗にして,その店舗に配送を行うTCに向けて配送する。 (3) DCから店舗への具体的な配送方法 ① ものの運び方 ・配送は,1日1回バッチで実施する。 ・DCは,店舗からの補充要求ごとに商品を出庫し,依頼元の店舗ごとに用意した折りたたみコンテナ(以下,コンテナという)に入れる。 ・その日に出庫したコンテナを,依頼元の店舗へ配送するTCに向かうその日の幹線ルートのトラックに積み,出荷する。 ・TCは,幹線ルートのトラックが到着するごとに,配送する店舗ごとに用意したかご台車にコンテナを積み替える。かご台車には店舗コードと店舗名を記したラベルを付けている。 ・TCは,全ての幹線ルートのトラックからかご台車への積替えを終えると,かご台車を支線ルートのトラックに積み込む。 ・TCは,支線ルートのトラックを出発させる。 ・支線ルートのトラックは,順に店舗を回り,コンテナごと店舗に納入する。 ② 指示書の作り方 ・店舗の補充要求は,商品の在庫数が発注点在庫数を割り込む都度,店舗コード,補充要求年月日時刻,JANコードを記して発行する。 ・DCの出庫指示書は,店舗から当該DCに届いた補充要求を基に,配送指示番号をキーとして店舗ごと出庫指示年月日ごとに出力する。出庫指示書の明細には,配送指示明細番号を付与して店舗からの該当する補充要求を対応付けて,出庫する商品と出庫指示数を印字する。 ・出庫したら,出庫指示書の写しをコンテナに貼付する。 ・DCからの幹線ルートの出荷指示書は,その日(出荷指示年月日)に積むべきコンテナの配送指示番号を明細にして行き先のTCごとにまとめて出力する。 ・TCの積替指示書は,積替指示番号をキーとしてその日の支線ルートごとに伝票を作る。積替指示書の明細は,配送先店舗ごとに作り,その内訳に店舗へ運ぶコンテナの配送指示番号を印字する。 ・店舗への配送指示書は,積替指示書の写しが,配送先店舗ごとに切り取れるようになっており,それを用いる。 (4) BPへの発注,入荷の方法 ① DCは,その日の出庫業務の完了後に,在庫数が発注点在庫数を割り込んだ商品について,発注番号をキーとして発注先のBPごとに,当日を発注年月日に指定してDC発注を行う。DC発注の明細には,明細番号を付与して対象のJANコードを記録する。 ② 店舗は,直納品の在庫数が発注点在庫数を割り込むごとに直納品の発注を行い,直納品の発注では,店舗,補充要求の年月日時刻,対象の商品を記録する。 ③ DC及び店舗へのBPからの入荷は,BPが同じタイミングで納入できるものがまとめて行われる。入荷では,入荷ごとに入荷番号を付与し,どの発注明細又は直納品発注が対応付くかを記録し,併せて入荷年月日を記録する。 ④ DC及び店舗は,入荷した商品ごとに入庫番号を付与して入庫を行い,どの発注明細又は直納品発注が対応付くかを記録する。 〔設計した概念データモデル及び関係スキーマ〕 1. 概念データモデル及び関係スキーマの設計方針 (1) 関係スキーマは第3正規形にし,多対多のリレーションシップは用いない。 (2) リレーションシップが1対1の場合,意味的に後からインスタンスが発生する側に外部キー属性を配置する。 (3) 概念データモデルでは,リレーションシップについて,対応関係にゼロを含むか否かを表す“○”又は“●”は記述しない。 (4) 概念データモデルは,マスター及び在庫の領域と,トランザクションの領域とを分けて作成し,マスターとトランザクションとの間のリレーションシップは記述しない。 (5) 実体の部分集合が認識できる場合,その部分集合の関係に固有の属性があるときは部分集合をサブタイプとして切り出す。 (6) サブタイプが存在する場合,他のエンティティタイプとのリレーションシップは,スーパータイプ又はいずれかのサブタイプの適切な方との間に設定する。 2. 設計した概念データモデル及び関係スキーマ マスター及び在庫の領域の概念データモデルを図1に,トランザクションの領域の概念データモデルを図2に,関係スキーマを図3に示す。 図1 マスター及び在庫の領域の概念データモデル(未完成) 図2 トランザクションの領域の概念データモデル(未完成) 図3 関係スキーマ(未完成) 解答に当たっては,巻頭の表記ルールに従うこと。また,エンティティタイプ名及び属性名は,それぞれ意味を識別できる適切な名称とすること。 設問 次の設問に答えよ。 (1) 図1中の[a],[b]に入れる適切なエンティティタイプ名を答えよ。 (2) 図1は,幾つかのリレーションシップが欠落している。欠落しているリレーションシップを補って図を完成させよ。 (3) 図2は,幾つかのリレーションシップが欠落している。欠落しているリレーションシップを補って図を完成させよ。 (4) 図3中の[ア]~[ノ]に入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ。また,主キーを表す実線の下線,外部キーを表す破線の下線についても答えること。
図1 マスター及び在庫の領域の概念データモデル(未完成)。配送地域,郵便番号,物流拠点,DC,TC,空欄a・b(二重枠),店舗,BP,商品カテゴリー,部門,ライン,クラス,アイテム,直納アイテム,商品,DC保有アイテム,DC在庫,店舗在庫とそのサブタイプ(DC補充品店舗在庫・直納品店舗在庫)を配置した未完成の概念データモデル。一部のリレーションシップだけが描かれている。
図1 マスター及び在庫の領域の概念データモデル(未完成)。配送地域,郵便番号,物流拠点,DC,TC,空欄a・b(二重枠),店舗,BP,商品カテゴリー,部門,ライン,クラス,アイテム,直納アイテム,商品,DC保有アイテム,DC在庫,店舗在庫とそのサブタイプ(DC補充品店舗在庫・直納品店舗在庫)を配置した未完成の概念データモデル。一部のリレーションシップだけが描かれている。
図2 トランザクションの領域の概念データモデル(未完成)。積替指示,積替指示明細,DC出荷指示,DC出庫指示,DC出庫指示明細,店舗補充要求,DC発注,DC発注明細,直納品発注,入荷,入庫を配置した未完成の概念データモデル。積替指示→積替指示明細,DC出庫指示→DC出庫指示明細,DC発注→DC発注明細,店舗補充要求-DC出庫指示明細の関連だけが描かれている。
図2 トランザクションの領域の概念データモデル(未完成)。積替指示,積替指示明細,DC出荷指示,DC出庫指示,DC出庫指示明細,店舗補充要求,DC発注,DC発注明細,直納品発注,入荷,入庫を配置した未完成の概念データモデル。積替指示→積替指示明細,DC出庫指示→DC出庫指示明細,DC発注→DC発注明細,店舗補充要求-DC出庫指示明細の関連だけが描かれている。
図3 関係スキーマ(未完成)。配送地域,郵便番号,物流拠点,DC,TC,a,b,店舗,商品カテゴリー,部門,ライン,クラス,BP,アイテム,直納アイテム,商品,各在庫,店舗補充要求,DC出庫指示・明細,DC出荷指示,積替指示・明細,DC発注・明細,直納品発注,入荷,入庫の関係スキーマ。空欄ア~ノを含み,a・bは図1と同じ字句である旨の注記がある。
図3 関係スキーマ(未完成)。配送地域,郵便番号,物流拠点,DC,TC,a,b,店舗,商品カテゴリー,部門,ライン,クラス,BP,アイテム,直納アイテム,商品,各在庫,店舗補充要求,DC出庫指示・明細,DC出荷指示,積替指示・明細,DC発注・明細,直納品発注,入荷,入庫の関係スキーマ。空欄ア~ノを含み,a・bは図1と同じ字句である旨の注記がある。
解き方のヒントを見る

関連の多重度と参照属性の対応

概念データモデル上の関連と、関係スキーマに現れる属性とが矛盾なく対応しているかを一つの観点として確かめます。業務の説明の一文ずつがどの実体とどの関連に当たるかを整理し、補う要素がその対応を崩さないかを点検しましょう。

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

検討の軸は「関連の多重度が関係スキーマ上のどこに参照として表れるか」の一点です。一対多・多対多・任意か必須かといった関連の性質を業務の説明から読み取り、それと整合する形で欠けている要素を考えてください。

視点

実体間の関連は、関係スキーマでは他の関係を参照する属性として表現されます。どの関係にどの参照属性を持たせるかは、関連の多重度をどう読み取ったかによって考え方が変わります。業務の説明にある「一つの〜につき複数の〜」「必ず〜する」といった数量や必須性を示す言い回しは、多重度を判断する手がかりになります。まずは多重度を自分の言葉で確定させ、そのうえで関係スキーマ側の表現と照らし合わせる順序で考えると整理しやすくなります。

確認ポイント

  • 業務の説明から、対象となる二つの実体間の関連が一対一・一対多・多対多のどれに当たるかを、根拠となる記述とともに自分で言い切れるか
  • 確定させた多重度のもとで、参照のための属性をどちらの関係に持たせるのが自然かを、理由を添えて説明できるか
  • 補った要素を加えた後も、概念データモデルと関係スキーマの間で関連の向きや数に食い違いが残っていないかを見直したか
正解と解説を見る

解説

ドラッグストアチェーンの商品物流を題材にした概念データモデリングの問題です。マスター及び在庫の領域では、物流拠点のDC・TCサブタイプ、幹線ルートと支線ルート、3階層の商品カテゴリー、アイテムと商品、DC在庫と店舗在庫を本文の資源の記述から組み立てます。トランザクションの領域では、補充要求→出庫指示→出荷指示・積替指示、DC発注・直納品発注→入荷→入庫という業務の流れをキーのつながりとして表します。採点講評によると、前者の正答率は高く、業務手順を想定しないと解けない後者の正答率は低かったとされています。

問題の全体像

F社は、在庫をもつDCから積替え専用のTCを経て店舗へ商品を届ける物流網をもっています。冷凍・冷蔵のアイテムは直納品として、BPから店舗へ直接納入されます。問題文には、組織・商品に関する資源(1・2)と業務の方法・方式(3)が書かれ、未完成の図1(マスター及び在庫)、図2(トランザクション)、図3(関係スキーマ)を完成させます。設計方針は次のとおりです。第3正規形にする、多対多は使わない、1対1なら後からインスタンスが発生する側に外部キーを置く、固有の属性がある部分集合はサブタイプにする、マスターとトランザクションの間のリレーションシップは描かない。出題趣旨では、トップダウンにエンティティタイプとリレーションシップを分析する能力と、ボトムアップにエンティティタイプと関係スキーマを導く能力を問うとしています。採点講評では、(1)、(2)、(4)ア〜タの正答率は高く、(3)と(4)チ〜ノの正答率は低かったとされています。トランザクションの領域では、業務手順と、その中で連鎖する情報を想定する必要があったためです。

設問(1)a

図1では、aはTCから矢印を受けており、1(5)①にはDCからTCへ配送するルートを幹線ルートとすると書かれています。3(1)①⑥より、DCからTCへの経路は基本的に木構造ですが、例外としてたすき掛けがあります。そのため、DCとTCの関係は多対多になります。3(1)④⑤では、この組ごとに幹線LTを定めています。つまり、DCとTCの組を実体として切り出し、固有の属性として幹線LTをもつエンティティが必要です。公式解答例では、aは「幹線ルート」です。

設問(1)b

bは店舗へ矢印を出しています。1(5)②によると、TCから店舗を回るルートを支線ルートといい、TCごとの支線ルートコードで識別します。車両番号と、配送先店舗とその配送順を定め、支線ルートの間で店舗は重複しません。このため、1つの支線ルートに複数の店舗が属する1対多になります。公式解答例では、bは「支線ルート」です。TCの下で識別されるので、主キーはTC拠点コードと支線ルートコードになります。

設問(2)

公式解答例で追加されている主なリレーションシップは次のとおりです。

①物流拠点をスーパータイプとし、DCとTCをそれぞれサブタイプにします。1(4)③では、TCだけの拠点と、DCとTCの両方をもつ拠点があるとされています。排他的ではないため、三角の記号を2つに分けて描きます。

②DC→幹線ルート、TC→支線ルート(どちらも1対多)。

③商品カテゴリーをスーパータイプとし、部門・ライン・クラスをサブタイプにします。さらに部門→ライン、ライン→クラスの1対多を描きます(3階層の木構造)。

④BP→アイテム(調達先。同じアイテムを別のBPから調達することはありません)、クラス→アイテム(アイテムが属するクラス)。

⑤DC保有アイテム→DC在庫、商品→DC在庫。DCは保有すると定めたアイテムの商品について、商品ごとに在庫を管理します(3(2)③)。

⑥商品→店舗在庫。

⑦DC在庫→DC補充品店舗在庫。3(1)⑧で、店舗はDC補充品ごとにどのDCの在庫から補充するかを定めています。そのため、参照先はDCではなくDC在庫(DCと商品の組)になります。

配送地域→店舗、支線ルート→店舗、アイテム→商品などは、図1にもともと描かれています。

設問(3)

業務手順を追いながら、トランザクションどうしのつながりを補います。公式解答例で追加されているのは次のとおりです。

①DC出荷指示→DC出庫指示(1対多)。出荷指示書は、その日に積むコンテナの配送指示番号を明細にして、行き先のTCごとにまとめたものです。

②積替指示明細→DC出庫指示(1対多)。積替指示明細の内訳には、店舗へ運ぶコンテナの配送指示番号が印字されます。

③入荷→DC発注明細、入荷→直納品発注(どちらも1対多)。入荷ごとに、どの発注明細または直納品発注が対応するかを記録します。

④DC発注明細—入庫、直納品発注—入庫(どちらも1対1)。入庫は入荷した商品ごとに行い、対応する発注明細または直納品発注を記録します。設計方針(2)により、外部キーは後から発生する入庫の側に置きます。

採点講評が指摘しているように、ここは本文の業務の方法・方式から業務手順を想定しないと導けない部分です。

設問(4)ア

1(2)②により、配送地域は複数の郵便番号の地域をまとめたものです。そのため、1つの郵便番号は1つの配送地域に属し、図1でも配送地域→郵便番号の1対多になっています。公式解答例では、アは配送地域コード(外部キー)です。

設問(4)イ

1(4)④では、DC機能フラグとTC機能フラグで拠点を分類するとしています。また1(4)⑥から、拠点は配送地域に配置され、図1でも配送地域→物流拠点のリレーションシップがあります。公式解答例では、イはDC機能フラグ、TC機能フラグ、配送地域コード(外部キー)です。サブタイプが排他的ではないので、区分を1つにまとめず、フラグを2つ持たせる点がポイントです。

設問(4)ウ

サブタイプのDCの主キーは、スーパータイプの拠点コードを引き継ぎ、役割名を付けてDC拠点コードとします。固有の属性は、1(4)⑦の倉庫床面積です。公式解答例では、ウはDC拠点コード(主キー)と倉庫床面積です。

設問(4)エ

TCも同じように、TC拠点コードを主キーとします。固有の属性は、1(4)⑧の委託先物流業者名です。公式解答例では、エはTC拠点コード(主キー)と委託先物流業者名です。

設問(4)オ

幹線ルートは、DCとTCの多対多を分解したエンティティです。主キーはDC拠点コードとTC拠点コードの組で、それぞれがDCとTCを参照する外部キーを兼ねます。組ごとに決まる属性は幹線LT(3(1)④⑤)です。公式解答例では、オはDC拠点コード、TC拠点コード(主キーかつ外部キー)と幹線LTです。

設問(4)カ

支線ルートはTCごとの支線ルートコードで識別するので、主キーはTC拠点コードと支線ルートコードです。TC拠点コードはTCへの外部キーを兼ねます。ルートごとの属性は車両番号です。公式解答例では、カはTC拠点コード、支線ルートコード(主キー)と車両番号です。

設問(4)キ

店舗は1つの支線ルートに属し、ルート間で重複しません。支線ルート上の配送順も店舗ごとに決まります。3(1)③より店舗に配送するTCは1か所で、支線LT(TCから店舗へのLT)も店舗ごとに決まります。公式解答例では、キは支線LT、TC拠点コード、支線ルートコード(2つ合わせて支線ルートを参照する外部キー)、配送順です。TC拠点コードは、支線ルートを参照する複合外部キーの一部として持ちます。

設問(4)ク

2(1)⑤で、商品カテゴリーはカテゴリーレベルをもつとされています。部門・ライン・クラスのどのサブタイプに当たるかを示す区分として、スーパータイプに置きます。上位のカテゴリーコードは、参照先がサブタイプによって異なるため、サブタイプ側に置きます(ケ、コ)。公式解答例では、クはカテゴリーレベルです。

設問(4)ケ

ラインはどの部門に属するかを、上位のカテゴリーコードとして持ちます。部門→ラインの1対多を表す外部キーです。公式解答例では、ケは部門カテゴリーコード(外部キー)です。

設問(4)コ

クラスはどのラインに属するかを持ちます。ライン→クラスの1対多を表す外部キーです。公式解答例では、コはラインカテゴリーコード(外部キー)です。

設問(4)サ

2(2)④で、アイテムには調達先のBP、温度帯、属するクラスを設定するとされています。同じアイテムを別のBPから調達することはないので、BPは1つに決まります。公式解答例では、サは調達先BPコード(外部キー)、クラスカテゴリーコード(外部キー)、温度帯です。

設問(4)シ

商品はどれか1つのアイテムに属します(2(2)①②)。また3(2)②により、補充LSは商品ごとに全店舗一律で定めるので、商品の属性になります。公式解答例では、シはアイテムコード(外部キー)と補充LSです。

設問(4)ス

3(2)③では、DCごと商品ごとに在庫数を把握し、発注点在庫数、DC納入LT、DC発注LSを定めるとしています。したがって、主キーはDC拠点コードとJANコードです。公式解答例では、スはJANコード(主キーの一部)、在庫数、発注点在庫数、DC納入LT、DC発注LSです。

設問(4)セ

3(2)④では、店舗は品揃えの商品ごとに在庫数を把握し、発注点在庫数を定めるとしています。これはDC補充品にも直納品にも共通するので、スーパータイプの店舗在庫に置きます。公式解答例では、セは在庫数と発注点在庫数です。

設問(4)ソ

3(1)⑧によると、DC補充品は、どのDCの在庫から補充するかを店舗ごと商品ごとに定めます。サブタイプ固有の属性として、要求先のDCを持たせます。DC補充品JANコードと組み合わせるとDC在庫を参照することになり、これが設問(2)のDC在庫→DC補充品店舗在庫のリレーションシップに対応します。公式解答例では、ソは要求先DC拠点コード(外部キー)です。

設問(4)タ

3(2)④で、直納品の場合は加えて直納LTと直納品発注LSを定めるとされています。これが直納品店舗在庫に固有の属性です。公式解答例では、タは直納LTと直納品発注LSです。

設問(4)チ

出庫指示書は、店舗ごと・出庫指示年月日ごとに出力されます。そのため、出庫指示年月日と配送先店舗コードを持ちます。さらに、このコンテナがどの出荷指示に載り、どの積替指示明細で店舗へ運ばれるかを表す必要があります。積替指示明細の主キーは積替指示番号と配送先店舗コードなので、配送先店舗コードと積替指示番号の組で積替指示明細を参照できます。公式解答例では、チは出庫指示年月日、配送先店舗コード、出荷指示番号、積替指示番号(外部キーはいずれも破線)です。

設問(4)ツ

出庫指示書の明細には、店舗からの補充要求が対応付けられます。店舗補充要求とDC出庫指示明細は1対1で、明細の方が後から発生するので、明細側に店舗補充要求の主キーを外部キーとして持たせます。公式解答例では、ツは店舗コード、補充要求年月日時刻、DC補充品JANコード(外部キー)です。出庫する商品は、この参照から特定できます。

設問(4)テ

出荷指示書は、出荷指示年月日ごとに行き先のTCごとにまとめて出力されます。DCから出るので、出荷元のDCも必要です。出荷元DCと出荷先TCの組は幹線ルートを参照します。公式解答例では、テは出荷指示年月日、出荷元DC拠点コード、出荷先TC拠点コード(外部キー)です。

設問(4)ト

積替指示書は、その日の支線ルートごとに作られます。そのため、積替指示年月日と支線ルートを表すキーを持ちます。支線ルートの主キーはTC拠点コードと支線ルートコードの組です。公式解答例では、トは積替指示年月日、TC拠点コード、支線ルートコード(外部キー)です。

設問(4)ナ

DC発注は、DCが当日を発注年月日として行います。公式解答例では、ナは発注DC拠点コード(外部キー)と発注年月日です。発注先のBPは公式解答例に含まれていません。発注先BPを属性として加える案は、公式解答例と異なるため正答とは断定できません。

設問(4)ニ

DC発注の明細には、対象のJANコードを記録します(3(4)①)。また、入荷→DC発注明細の1対多に従い、どの入荷に対応するかを明細側に持たせます。公式解答例では、ニはDC補充品JANコード(外部キー)と入荷番号(外部キー)です。

設問(4)ヌ

直納品の発注では、店舗、補充要求の年月日時刻、対象の商品を記録します(3(4)②)。発注番号のような別の番号はないので、この3つの組が主キーになります。入荷→直納品発注の1対多に従って、入荷番号も持ちます。公式解答例では、ヌは店舗コード、補充要求年月日時刻、直納品JANコード(主キー)と入荷番号(外部キー)です。

設問(4)ネ

入荷では、入荷番号を付与し、入荷年月日を記録します(3(4)③)。どの発注明細・直納品発注が対応するかは、1対多の多側(発注側)に入荷番号を持たせて表すので、入荷自体には発注の情報を持たせません。公式解答例では、ネは入荷年月日です。

設問(4)ノ

入庫は、入荷した商品ごとに入庫番号を付与し、どの発注明細または直納品発注が対応するかを記録します。発注明細—入庫と直納品発注—入庫はどちらも1対1で、後から発生するのは入庫です。そのため、設計方針(2)により入庫側に外部キーを置きます。公式解答例では、ノは発注番号、発注明細番号(DC発注明細への外部キー)と、店舗コード、補充要求年月日時刻、直納品JANコード(直納品発注への外部キー)です。

学習のポイント

業務の流れを想定して、トランザクション間の参照(複合外部キーや、1対1で後から発生する側に置く外部キー)を導く練習をすることが重点です。

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

関連する過去問一覧

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