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











解き方のヒントを見る
業務要件の記述とデータ構造の対応確認
この分野では、業務要件に書かれた一つ一つの記述を根拠として、データの構造がその記述と矛盾なく対応しているかを確かめる姿勢が大切です。思い込みや一般的な業務知識ではなく、記述された条件に立ち返って判断しましょう。
この問題で問われていること
検討の観点は一つ、「業務要件の記述が、どの単位のものを、どの単位のものと、どの程度結び付けると述べているか」を正確に読み取ることです。記述の主語や数量に関わる言い回しに注意し、自分の解釈を記述と照合してください。
視点
データモデルを補完・検証する学習では、まず業務要件の記述を根拠として押さえます。記述の中で、何が何に対応し、その対応がどの範囲で成り立つかを確かめます。そのうえで、読み取った内容をデータ構造の表現に一つずつ照らし合わせる手順を意識します。記述にない前提を自分で補わないことが、検証の精度を左右します。
確認ポイント
- 業務要件の該当箇所で、結び付けられている二つの対象がそれぞれ何の単位を指しているかを確認したか
- その記述が、対応の数や範囲についてどのような言い回しをしているかを読み落としていないか
- 自分が想定した対応関係が、記述そのものに根拠を持つか、それとも一般的な業務知識からの推測にすぎないかを見直したか
正解と解説を見る
解説
機械メーカA社の調達業務と調達物流業務を題材にした概念データモデリングの問題です。設問1では、品目(専用品と汎用品、部材の区分)と組織(調達先・生産先・地点)の複数の観点によるサブタイプ構造、構成と在庫の参照先を問います。設問2では、調達手配から出庫・入庫・輸送に至るトランザクション間のリレーションシップと外部キーを問います。設問3では、車両の最大積載重量超過を防ぐ荷量計算を関係スキーマ処理フローで検証し、確定輸送指示を追加する設計変更を問います。
問題の全体像
A社は、調達業務と調達物流業務のシステム再構築に向けて、マスタ及び在庫の領域とトランザクションの領域に分けて、概念データモデルと関係スキーマを設計しています。品目は二つの観点で分類されます。一つは製品・部品・素材(部品と素材を併せて部材)の区分、もう一つは専用品・汎用品の区分です。組織も、調達先(BP・仕入先)、生産先(部品生産部・BP)、地点(倉庫・BP)という重なり合う総称で整理されます。後半では、車両の最大積載重量超過という問題を解決するために荷量計算を追加します。まず現状の関係スキーマで荷量計算ができるかを処理フローで検証し、その後、確定輸送指示を追加します。出題趣旨では、①トップダウンにエンティティタイプとリレーションシップを見抜く能力、②ボトムアップに関係スキーマを分析する能力、③問題解決のためにモデルを変更する能力、④変更したモデルを検証する能力を評価するとしています。採点講評では、問2全体の正答率は低かったと述べています。設問1(1)は、調達先と品目のサブタイプの正答率は高かったものの、品目の構成と在庫の対象品目を表すリレーションシップの正答率は低かったとしています。設問2は、トランザクション間のリレーションシップと外部キーの正答率が低く、特に在庫更新につながる部分に不十分な解答が散見されたとしています。設問3は、正答率は高かったものの、(3)について不十分な解答が散見されたとしています。
設問1(1)
本文の総称・分類の記述と、図5の外部キーを突き合わせて考えます。公式解答例で追加されているのは次のとおりです。①地点をスーパタイプとし、倉庫とBPをサブタイプとする(2.(3)②「倉庫とBPを総称して地点」)。②生産先をスーパタイプとし、部品生産部とBPをサブタイプとする(2.(3)①)。③調達先をスーパタイプとし、BPと仕入先をそれぞれ別の三角記号でサブタイプとする。BPでかつ仕入先という調達先を禁じておらず、BPフラグと仕入先フラグを独立に持つため、排他的な一つの分類にはしません。④品目をスーパタイプとし、既存の製品・部材の分類とは別の観点で、専用品と汎用品をサブタイプとする。⑤部材をスーパタイプとし、部品と素材をサブタイプとする。⑥専用品をスーパタイプとし、製品と専用部品をサブタイプとする(製品は全て専用品)。⑦汎用品をスーパタイプとし、汎用部品と素材をサブタイプとする(素材は全て汎用品)。⑧生産先から専用部品へ1対多(専用部品ごとに生産先を一つに決めている)。⑨仕入先から汎用品へ1対多(汎用品ごとに仕入先を一つに決めている)。⑩部材から構成へ1対多(製品と専用部品のどちらの構成でも、下位には専用部品・汎用部品・素材、すなわち部材が来るため)。⑪部材から倉庫在庫へ1対多。⑫専用部品からBP在庫へ1対多(BPの在庫は支給される子部品であり、子部品は専用部品であるため)。採点講評が正答率の低さを指摘しているのは⑩〜⑫です。「品目」ではなく、サブタイプ構造のどのエンティティタイプを参照するのかを見極める必要があります。
設問1(2)(ア)
2.(1)④に「製品生産部は…生産ライン数を設定している」とあります。この属性は製品生産部に固有なので、サブタイプの属性とします。公式解答例は「生産ライン数」です。
設問1(2)(イ)
部品生産部は生産先のサブタイプでもあり、生産先コードが付与されています(2.(3)①)。部門コードで識別される部品生産部を生産先に対応付けるため、公式解答例では外部キー(破線の下線)として「生産先コード」を持たせています。
設問1(2)(ウ)
BPは調達先のサブタイプであると同時に、生産先(2.(3)①)と地点(2.(3)②)のサブタイプでもあります。調達先コードを主キーとするBPから生産先と地点を参照するため、公式解答例では外部キーとして「生産先コード,地点コード」を持たせています。
設問1(2)(エ)
1.(1)②に「専用品には設計番号を設定」とあるので、専用品に固有の属性として、公式解答例は「設計番号」です。
設問1(2)(オ)
1.(1)②から、汎用品には汎用品仕様を設定します。さらに2.(4)①「汎用品は、その汎用品を調達する仕入先を一つに決めている」から、仕入先への外部キーが必要です。仕入先の主キーは調達先コードなので、役割が分かるように名前を付けます。公式解答例は「汎用品仕様,仕入先調達先コード(外部キー)」です。
設問1(2)(カ)
2.(4)②「専用部品は、その専用部品を生産する生産先を一つに決めている」から、生産先への外部キーが必要です。また1.(1)④から、専用部品には個体重量を設定します。公式解答例は「生産先コード(外部キー),個体重量」です。
設問1(2)(キ)
製品構成は、製品とその下位品目の組で識別します。製品の構成には専用部品・汎用部品・素材があり得る(1.(2)③)ので、下位品目は部材です。公式解答例は、主キーの一部(実線の下線)となる「部材品目コード」です。
設問1(2)(ク)
専用部品の構成にも専用部品・汎用部品・素材があり得る(1.(2)④)ので、下位品目は部材です。子部品が構成に専用部品を持たないという制約(1.(2)⑥)があっても、参照先の型は部材のままです。公式解答例は、主キーの一部となる「部材品目コード」です。
設問1(2)(ケ)
調達手配の対象も基準在庫数の設定対象も部材なので(1.(1)⑤、4.(2)①)、倉庫在庫の対象品目は部材です。倉庫地点コードと組み合わせて主キーとし、公式解答例は「部材品目コード」です。
設問1(2)(コ)
BPが在庫を持つのは支給部品(子部品)で、子部品は専用部品です(1.(2)⑤、2.(2)③)。このため、BP在庫の対象品目は専用部品となり、公式解答例は主キーの一部となる「専用部品品目コード」です。
設問2(1)
図2の業務の流れと図6の外部キーから、トランザクションどうしの連鎖を読み取ります。公式解答例で追加されているのは次のとおりです。①調達手配をスーパタイプとし、汎用品発注・専用部品生産指示・専用部品発注・支給指示をサブタイプとする(図6で主キーが調達番号で共通)。②支給指示と輸送指示の1対1(支給部品を支給する輸送指示。輸送指示は外部キーとして調達番号を持つ)。③支給指示と支給部品出庫指示の1対1(外部キーは支給指示調達番号)。④荷卸実績と支給部品理論入庫実績の関係。これは1対1のリレーションシップではなく、サブタイプの関係です。公式解答例の図では、荷卸実績から太線を引き、三角のサブタイプ記号を介して支給部品理論入庫実績につないでいます。つまり、支給部品理論入庫実績を荷卸実績のサブタイプとして下に置く構造です(支給部品理論入庫実績は、既存の入庫実績のサブタイプでもあります)。根拠は4.(1)⑤の「荷卸実績のうち支給部品のBPへの荷卸実績は、支給部品理論入庫実績でもある」という記述で、「〜のうち…は〜でもある」という部分集合の関係を表しています。⑤専用部品生産実績と倉庫入庫実績の1対1(内製した専用部品の倉庫への入庫)。⑥専用部品生産指示から専用部品用出庫指示へ1対多(一つの生産指示に対して、部材ごとの出庫指示)。⑦専用部品発注から支給部品理論出庫実績へ1対多(親部品の発注ごとに、子部品ごとの理論出庫)。⑧出庫指示と倉庫出庫実績の1対1(出庫番号が共通)。採点講評が指摘するとおり、在庫更新につながる入庫・出庫実績とのつながりに特に注意します。
設問2(2)(サ)
輸送指示は、該当する調達手配に対応させて行います(4.(3)③)。専用部品発注と支給指示のどちらにも対応するので、両者に共通するスーパタイプの主キーを参照します。公式解答例は外部キーとしての「調達番号」です。
設問2(2)(シ)
支給部品理論入庫実績は、支給部品のBPへの荷卸実績でもあります。荷卸実績は輸送番号で識別されるので、公式解答例では外部キーとして「輸送番号」を持たせています。
設問2(2)(ス)
製品用出庫指示は、受注に基づいて、製品の生産に必要な部材の出庫を指示するものです(2.(1)④)。公式解答例は、外部キーとなる「受注番号,部材品目コード」です。
設問2(2)(セ)
専用部品用出庫指示は、専用部品の生産指示に基づく部材の出庫指示です(2.(1)⑤、表1 C②)。参照先の役割を示す名前を付け、公式解答例は外部キーとしての「専用部品生産指示調達番号,部材品目コード」です。
設問2(2)(ソ)
支給部品出庫指示は、支給指示に基づく子部品の出庫指示です(図2 D)。品目と支給先は支給指示から分かるので、公式解答例は外部キーの「支給指示調達番号」だけです。
設問2(2)(タ)
4.(1)⑤から、親部品の発注に基づいて、構成から求められる子部品を使用数分だけ使ったものとして記録します。そのため、発注・子部品・数量が必要になります。公式解答例は「専用部品発注調達番号,子部品品目コード(いずれも外部キー),使用数」です。
設問3(1)(a)
荷量計算は、翌営業日分の輸送指示が対象です。EXTの抽出対象属性名に日付を指定し、翌営業日に等しい組を選びます。抽出後の関係からは輸送日が消えていることも手掛かりになります。公式解答例は「輸送日」です。
設問3(1)(b)
荷卸側のフローも、aと同じく翌営業日分に絞ります。公式解答例は「輸送日」です。
設問3(1)(c)
各地点で荷積みされる重量は、そこを積地とする輸送指示の輸送重量の和です。図7の荷積重量がこれに当たります。公式解答例は「輸送重量」です。
設問3(1)(d)
荷積重量はルート別・巡回順別に求めます。荷積側の巡回順は積地巡回順です。公式解答例は「ルート番号,積地巡回順」です。
設問3(1)(e)
荷卸しされる重量も、輸送重量の和として求めます。公式解答例は「輸送重量」です。
設問3(1)(f)
荷卸側は、卸地の巡回順ごとに集計します。公式解答例は「ルート番号,卸地巡回順」です。
設問3(1)(g)
荷積計算と荷卸計算を、同じルートの同じ巡回順どうしで結合します。巡回順1は荷積みだけ、最後の巡回順は荷卸しだけなので、完全外結合を使います。公式解答例では、g〜jは「g=ルート番号,h=ルート番号,i=積地巡回順,j=卸地巡回順」、又は「g=積地巡回順,h=卸地巡回順,i=ルート番号,j=ルート番号」です。gは「ルート番号」(又は「積地巡回順」)です。
設問3(1)(h)
gと対になる荷卸計算側の属性です。公式解答例は「ルート番号」(gを積地巡回順とした場合は「卸地巡回順」)です。
設問3(1)(i)
二つ目の結合条件で、巡回順(又はルート番号)を一致させます。公式解答例は「積地巡回順」(gを積地巡回順とした場合は「ルート番号」)です。
設問3(1)(j)
iと対になる荷卸計算側の属性です。公式解答例は「卸地巡回順」(gを積地巡回順とした場合は「ルート番号」)です。
設問3(1)(k)
差引重量は、その巡回順で車両の積載重量がどれだけ増減したかを表します。図7の例では、巡回順3で4、000−2、000=2、000、巡回順6で0−11、000=−11、000です。完全外結合によって片側がNULLになる組があっても、注記4によりNULLは0に置き換えられるため、そのまま引き算できます。公式解答例は「荷積重量 − 荷卸重量」です。これをTOTで累計すると、累計輸送重量になります。
設問3(2)
確定輸送指示は、荷量計算によって車両を確定させた輸送指示です。輸送指示一つにつき一つ作られます。荷積みは確定した車両で行われるので、荷積実績は確定輸送指示に対応付けます。公式解答例では、輸送指示と確定輸送指示、確定輸送指示と荷積実績を、それぞれ1対1のリレーションシップ(矢印のない線)で結んでいます。
設問3(3)
確定輸送指示は輸送指示と1対1なので、主キーは「輸送番号」(実線の下線)です。加えて、確定した車両を表す車両への外部キーが必要です。ルートの標準車両番号と区別するため、役割を表す名前にします。公式解答例は「確定輸送指示(輸送番号,確定車両番号)」で、確定車両番号には破線の下線を引きます。図7の「別に割り当てる車両番号」も「確定した車両番号」に含まれるので、属性を二つに分ける必要はありません。採点講評では、(3)に不十分な解答が散見されたとし、問題解決のための変更で属性にどのような役割が必要かを洞察してほしいと述べています。
学習のポイント
サブタイプを分類の観点ごとに分けて描くこと、構成・在庫が参照するのはサブタイプ構造のどのエンティティタイプかを見極めること、業務の連鎖を外部キーで表すこと、完全外結合と累計によって検証フローを組み立てること、の四つを重点的に練習してください。
出典:独立行政法人 情報処理推進機構(IPA)令和2年度10月 データベーススペシャリスト試験 午後Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針