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











解き方のヒントを見る
業務記述とモデル要素の対応を確かめる
設計問題では、業務の説明に書かれた一つ一つの事実が、データモデルや関係スキーマのどこに表現されているかを対応づけて確かめることが大切です。解答に迷ったら、根拠となる記述へ戻って照合しましょう。
この問題で問われていること
この問題で確認したい観点は一つで、業務上の決まりごと(何が何を識別し、何と何がどれだけ対応するか、どの区分で扱いが分かれるか)が、どの記述を根拠に読み取れるかを明確にしたうえで設計に反映できているかです。
視点
データモデルの設計は、業務の事実を構造に置き換える作業です。思い込みや一般的な業務知識で補うと、記述にない制約を加えたり、記述にある制約を落としたりしがちです。そこで、設計した要素ごとに『この形にした根拠はどの記述か』を言えるかを確かめます。逆に、業務の説明で条件や例外を述べている箇所が、設計のどこにも反映されていない状態がないかも見直します。どの形式で問われていても、この往復の照合が判断の軸になります。
確認ポイント
- 自分が考えた設計の各要素について、根拠となる業務の記述を具体的に指し示せるか
- 業務の説明で条件・例外・区分に触れている箇所が、設計のどこかに反映されているか
- 記述に書かれていない前提を、一般的な業務知識から持ち込んでいないか
正解と解説を見る
解説
オフィスじゅう器メーカY社の部材在庫管理を題材に、概念データモデルと関係スキーマを完成させる問題です。拠点は表1に従い、生産現場・倉庫・部材メーカとさらにその下位にサブタイプ化します。部材は図1に従い、部品と部品生産用部材という重なりのあるサブタイプに分けます。出庫・入庫は表5の物流事象ごとにサブタイプ化します。物流事象整理表(表6)で出庫・入庫・発送の記録の有無を整理すれば、どの出庫サブタイプが発送番号を持つか、どの入庫サブタイプが出庫番号で出庫と1対1に対応するかが導けます。
問題の全体像
Y社は在庫管理システムの再構築に向けて、拠点(生産現場・倉庫・部材メーカ)、部材(部品・部品生産用部材)、出庫・入庫・発送・棚卸しの業務を分析しています。設問では、物流事象整理表(表6)、マスタ系・在庫系の概念データモデル(図3)、トランザクション系の概念データモデル(図4)、関係スキーマ(図5)を完成させます。出題趣旨では、トップダウンでエンティティタイプを見抜き、サブタイプを切り出し、リレーションシップを考察する能力と、ボトムアップで属性を抽出する能力を評価するとしています。採点講評では、全体として正答率は高かったものの、(2)(3)のモデル図の正答率が低かったと述べています。特に、発送を参照するリレーションシップと、出庫サブタイプと入庫サブタイプの間の1対1のリレーションシップで誤りが多く、リレーションシップの成立をインスタンスのレベルで理解していないことがうかがわれると指摘しています。
設問(1)
判定の根拠は本文の定義です。5.(1)で出庫は「倉庫から部材を出すこと」、7.(1)で入庫は「倉庫に部材を入れること」と定められています。そのため、物流元が倉庫(パーツセンタ・組立工場倉庫)なら出庫記録は有、物流先が倉庫なら入庫記録は有です。発送記録は、6.(1)(2)のとおり、パーツセンタや組立工場倉庫が他事業所の拠点へ送るために出庫し、その部材をトラックで発送する場合にだけ有になります。単に事業所をまたぐだけでは有になりません。1.(12)では部材メーカも事業所に数えられるので、購入部材受入れも事業所をまたぐ物流です。しかしY社の倉庫からの出庫ではないため、表6の記入済みの行と公式解答例では、出庫記録も発送記録も無になっています。公式解答例の各行は次のとおりです。部品生産用部材払出しは、パーツセンタから部品生産現場へ部品生産用部材を送ります。出庫記録は有、入庫記録と発送記録は無です(同じ本社工場内の移動です)。部品完成は、部品生産現場からパーツセンタへ部品を送ります。出庫記録は無、入庫記録は有、発送記録は無です。通常支給は、パーツセンタから組立工場倉庫へ部品を送ります。出庫・入庫・発送の記録はすべて有です。部品払出しは、倉庫から製品組立現場へ部品を送ります。出庫記録は有、入庫記録と発送記録は無です。表5で「同じ事業所内の倉庫」とあるため、物流元はパーツセンタと組立工場倉庫の両方を含む倉庫になります。横持ちは、組立工場倉庫から組立工場倉庫へ部品を送り、すべて有です。余剰戻しは、生産現場から倉庫へ部材を送ります。出庫記録は無、入庫記録は有、発送記録は無です。部品生産現場と製品組立現場のどちらからも戻るので、物流元は生産現場、対象は部材です。余剰返送は、組立工場倉庫からパーツセンタへ部品を送り、すべて有です。廃版廃棄は、パーツセンタから出庫して本社工場の構内で産業廃棄物処理業者へ引き渡します。業者は拠点ではないので物流先拠点は「-」、対象は部材です。出庫記録は有、入庫記録と発送記録は無です。
設問(2)
公式解答例の図3は、次の要素で構成されています。(1)事業所から拠点へ1対多(1.(11):事業所には拠点が一つ又は複数ある)。(2)拠点をスーパータイプとし、生産現場・倉庫・部材メーカを排他的サブタイプとする(方針(2))。(3)生産現場の下に部品生産現場・製品組立現場、倉庫の下にパーツセンタ・組立工場倉庫をそれぞれサブタイプとして切り出す。(4)部門と生産現場・倉庫、取引先と部材メーカを対応付ける(表1で生産現場・倉庫はY社の部門、部材メーカは取引先とされています。公式解答例の図では三角の記号を介して結ばれています)。(5)部材品目から部材へ1対多。(6)部材の下に部品と部品生産用部材を、それぞれ別の三角記号で共存的サブタイプとして置く(図1の重なり)。(7)倉庫から在庫へ、部材から在庫へそれぞれ1対多。在庫を拠点全体ではなく倉庫に結ぶ点に注意してください。4.(1)で在庫は倉庫の管轄とされています。部門コードや取引先コードを拠点に置くと、どちらかが必ずNULLになります。そのため、方針(6)に従い、それぞれ値が必ず決まる生産現場・倉庫・部材メーカ側に置きます。
設問(3)
公式解答例の図4では、出庫の下に6つのサブタイプ(部品生産用部材払出出庫、通常支給出庫、部品払出出庫、横持出庫、余剰返送出庫、廃版廃棄出庫)を置きます。入庫の下にも6つのサブタイプ(購入部材受入入庫、部品完成入庫、通常支給入庫、横持入庫、余剰返送入庫、余剰戻し入庫)を置きます。これらは設問(1)で出庫記録・入庫記録が有とした物流事象に対応します。発送から1対多の線が引かれるのは、発送記録が有の通常支給出庫・横持出庫・余剰返送出庫の3つだけです。発送番号を出庫スーパータイプに置くと、発送の無い出庫で常にNULLになるためです(方針(6)の例外は、出庫から発送までの間のNULLだけです)。出庫・入庫・発送の記録がすべて有の3事象(通常支給・横持ち・余剰返送)では、同じ部材の移動が出庫と入庫の両方に記録されます。そのため、通常支給出庫と通常支給入庫、横持出庫と横持入庫、余剰返送出庫と余剰返送入庫の間に1対1のリレーションシップを引きます。棚卸しから棚卸明細への線は与えられています。採点講評は、この発送の参照と1対1関係の正答率が低かったと指摘しています。
設問(4)(a)
公式解答例では、拠点の属性は拠点コード(主キー)、拠点区分、事業所コード(外部キー)です。拠点区分は、方針(7)に従い、どのサブタイプに当たるかを識別する属性です。事業所コードは全拠点が必ず持つため、スーパータイプに置きます。部門コードと取引先コードは、一部の拠点にしか当てはまらないため、ここには置きません。
設問(4)(b)
公式解答例では、生産現場(生産現場拠点コード、部門コード、現場区分)です。主キーは方針(3)に従い、拠点分類名で修飾します。生産現場はY社の部門なので、部門コードを外部キーとして持ちます。さらに下位のサブタイプを識別するため、現場区分を持ちます。b~hは順不同です。
設問(4)(c)
公式解答例では、部品生産現場(部品生産現場拠点コード、部品払出要求時間)です。表1で部品生産現場に固有とされる部品払出要求時間を、方針(9)に従ってこのサブタイプに置きます。
設問(4)(d)
公式解答例では、製品組立現場(製品組立現場拠点コード、部品投入時間)です。表1の部品投入時間は製品組立現場に固有の属性です。
設問(4)(e)
公式解答例では、倉庫(倉庫拠点コード、部門コード、倉庫区分)です。表1で倉庫はY社の部門なので、部門コードを外部キーとして持ちます。下位のサブタイプを識別するため、倉庫区分を持ちます。
設問(4)(f)
公式解答例では、パーツセンタ(パーツセンタ拠点コード、棚卸実施日入出庫終了時間)です。表1でパーツセンタだけに定められている属性を置きます。
設問(4)(g)
公式解答例では、組立工場倉庫(組立工場倉庫拠点コード、入出庫可能コンテナサイズ)です。表1で組立工場倉庫に固有とされる属性を置きます。
設問(4)(h)
公式解答例では、部材メーカ(部材メーカ拠点コード、取引先コード、物流費負担率)です。1.(6)に従い取引先コードを外部キーとして持ち、表1の物流費負担率を持ちます。
設問(4)(i)
公式解答例では、部材品目(部材品目番号、部材品目名)です。2.(4)(5)のとおり、部材品目番号が主キー、部材品目名が属性です。
設問(4)(j)
公式解答例では、部材(部材番号、部材品目番号、部材名、部材単価、部品生産用部材フラグ、部品フラグ)です。部材品目番号は外部キーです。部品と部品生産用部材は重なり得る(図1)ため、単一の区分では両方に当たる部材を表せません。そこで、方針(7)の識別属性を2つのフラグとして持たせます。j~ℓは順不同です。
設問(4)(k)
公式解答例では、部品(部品部材番号、製品組立投入ロットサイズ)です。主キーは2.(3)の呼称である部品部材番号です。2.(9)により、製品組立投入ロットサイズは部品生産投入ロットサイズとは別の属性として部品側に置きます。
設問(4)(ℓ)
公式解答例では、部品生産用部材(部品生産用部材番号、部品生産投入ロットサイズ)です。主キーは2.(3)の呼称である部品生産用部材番号で、固有属性は部品生産投入ロットサイズです。
設問(4)(m)
公式解答例では、在庫(倉庫拠点コード、部材番号、倉庫内在庫数量、積置在庫数量、輸送中在庫数量)です。主キーは倉庫拠点コードと部材番号の組です。4.(1)(4)~(6)で在庫はすべて倉庫の管轄とされているため、拠点コードではなく倉庫拠点コードを使います。数量は4.(3)の3区分それぞれを持ちます。
設問(4)(n)
公式解答例では、部品生産用部材払出出庫(出庫番号、出庫パーツセンタ拠点コード、出庫先部品生産現場拠点コード、部品生産用部材番号)です。表6の行に合わせて、参照先を拠点・部材のサブタイプにし、方針(8)に従い役割名(出庫・出庫先)で修飾します。発送記録は無なので、発送番号は持ちません。n~sは順不同です。
設問(4)(o)
公式解答例では、通常支給出庫(出庫番号、出庫パーツセンタ拠点コード、出庫先組立工場倉庫拠点コード、部品部材番号、発送番号)です。他事業所へ発送するので、発送番号を外部キーとして持ちます。出庫から発送までの間のNULLは許容されます。
設問(4)(p)
公式解答例では、部品払出出庫(出庫番号、出庫倉庫拠点コード、出庫先製品組立現場拠点コード、部品部材番号)です。払い出すのはパーツセンタと組立工場倉庫のどちらもあり得るため、出庫元は倉庫のレベルで参照します。同じ事業所内の移動なので、発送番号はありません。
設問(4)(q)
公式解答例では、横持出庫(出庫番号、出庫組立工場倉庫拠点コード、出庫先組立工場倉庫拠点コード、部品部材番号、発送番号)です。組立工場倉庫どうしの事業所間の移送なので、発送番号を持ちます。
設問(4)(r)
公式解答例では、余剰返送出庫(出庫番号、出庫組立工場倉庫拠点コード、出庫先パーツセンタ拠点コード、部品部材番号、発送番号)です。通常支給の戻り便のトラックでパーツセンタへ送るため、発送番号を持ちます。
設問(4)(s)
公式解答例では、廃版廃棄出庫(出庫番号、出庫パーツセンタ拠点コード、部材番号)です。出庫先は拠点ではない産業廃棄物処理業者なので、出庫先拠点コードを持ちません。対象は部材全般なので、部材番号を参照します。
設問(4)(t)
公式解答例では、購入部材受入入庫(入庫番号、入庫パーツセンタ拠点コード、受入元部材メーカ拠点コード、部材番号)です。対応する出庫がないので、入庫元(部材メーカ)を役割名で修飾した外部キーとして直接持ちます。t~yは順不同です。
設問(4)(u)
公式解答例では、部品完成入庫(入庫番号、入庫パーツセンタ拠点コード、入庫元部品生産現場拠点コード、部品部材番号)です。生産現場からの入庫には出庫がないため、入庫元の拠点を直接参照します。
設問(4)(v)
公式解答例では、通常支給入庫(入庫番号、入庫組立工場倉庫拠点コード、出庫番号、部品部材番号)です。通常支給出庫と1対1で、入庫の方が後から発生するので、方針(10)に従い入庫側に出庫番号を外部キーとして持たせます。入庫元はこの出庫から分かるので、入庫元拠点コードは持ちません。
設問(4)(w)
公式解答例では、横持入庫(入庫番号、入庫組立工場倉庫拠点コード、出庫番号、部品部材番号)です。横持出庫との1対1関係を、後から発生する入庫側の出庫番号で表します。
設問(4)(x)
公式解答例では、余剰戻し入庫(入庫番号、入庫倉庫拠点コード、戻し元生産現場拠点コード、部材番号)です。戻り先はパーツセンタと組立工場倉庫のどちらもあり得るので倉庫、戻し元も生産現場のレベルで参照します。対象は部材です。
設問(4)(y)
公式解答例では、余剰返送入庫(入庫番号、入庫パーツセンタ拠点コード、出庫番号、部品部材番号)です。余剰返送出庫と1対1なので、出庫番号を外部キーとして持ちます。
設問(4)(z)
公式解答例では、棚卸明細の残りの属性は棚卸数量、補正前倉庫内在庫数量、補正数量です。これは表4と8.(5)の補正手順に基づきます。実施年月日は棚卸し側にすでにあるので、明細には含めません。
学習のポイント
本文の定義(出庫・入庫・発送)を物流事象ごとにインスタンスのレベルで当てはめることが大切です。そのうえで、サブタイプの切出し、NULLにならない外部キーの配置、1対1関係の外部キーの向きを決める練習をしましょう。
出典:独立行政法人 情報処理推進機構(IPA)平成23年度特別 データベーススペシャリスト試験 午後Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針