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

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

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

問題

問1 OA周辺機器メーカの部品購買管理システムの統合に向けたデータベース概念設計,テーブル設計及び新システムへのデータ移行設計に関する次の記述を読んで,設問1~3に答えよ。 C社は,OA周辺機器メーカであり,複数の工場で製品を生産している。C社では,工場ごとに運用している部品購買管理システムを,新システムに統合することになった。新システムへの統合に当たって,現行業務の分析を行い,概念データモデル及びテーブル構造を設計し,新システムへのデータ移行に関する設計を行った。 〔部品購買業務の分析結果〕 1.部品購買業務に関連する社内組織と担当社員 (1)社内組織 ① 部品購買業務に関連する部門として,各工場に購買部と生産部がある。購買部と生産部は,部門コードによって全社で一意に識別される。 ② 購買部は,部品の発注,納入された部品の受入,及び製品の生産を行う生産部への部品の払出を行う。 (2)担当社員 ① 部品購買業務に従事する担当社員は,社員番号によって全社で一意に識別される。 ② 担当社員は,担当する工場の購買部に所属している。ただし,工場間又は部門間を不定期に異動する。 ③ 担当社員は,見積依頼,仕入先選定,在庫確認,発注,払出,受入,支払予定作成などの業務を行う(後述)。 2.部品購買業務に関連する社外組織 (1)仕入先は,部品を調達する先である。 (2)支払先は,部品の代金を支払う先である。 (3)仕入先と支払先を総称して,調達先と呼ぶ。中小規模の調達先では,仕入先と支払先が同一の場合が多い。一方,大規模な調達先では,複数の仕入先を代表する仕入先が支払先であったり,仕入先とは別の支払先があったりすることも多い。一つの仕入先に対して,複数の支払先が対応することはない。 (4)調達先は,調達先コードで識別される。仕入先に割り当てられた調達先コードを仕入先コード,支払先に割り当てられた調達先コードを支払先コードと呼ぶ。 (5)工場ごとに調達先コードを割り当てることから,一つの調達先に対して工場ごとに異なる複数の調達先コードが割り当てられている場合がある。 3.部品 (1)部品は,全社で一意な部品番号で識別される。部品番号は,製品の設計システムで採番されたものを使用する。 (2)部品は,主要部品と補充部品に分かれる。 ・主要部品は,製品を構成する主要な部品である。 ・補充部品は,主要部品を接続・固定するためのケーブル,Oリング,ネジ,ワッシャなどの部品である。 (3)主要部品は,通常納期主要部品と長納期主要部品に分かれる。 ・通常納期主要部品は,樹脂成型品,金属加工品などの部品であり,発注から納品までの日数(以下,納入LTという)は,30日未満である。部品ごとに1社に発注する。仕入先の選定は,一定期間ごとに行うが,部品購買管理システムの対象外である。 ・長納期主要部品は,設計が複雑な電子部品,電動部品などであり,納入LTは30日以上である。複数の仕入先から見積りをとり,見積結果を踏まえて1社に発注する。 (4)補充部品は,納入LTが30日未満である通常納期だけであり,一定期間ごとに複数の仕入先から見積りをとり,見積結果を踏まえて発注する。 4.発注方式 (1)分納発注方式 仕入先に対して,生産部が立てた生産計画に合わせて,部品ごとに月間発注総量(以下,発注総量という)を事前に提示し,必要となった時点で具体的な納入年月日と納入数量を指示する方式である。 ① 対象部品は,通常納期主要部品である。 ② 対象部品ごとに仕入先を1社選定し,単価,納入LTについて事前に仕入先の合意を得る。 ③ 発注総量は,前々月最終営業日に見積もり,前月最終営業日に見直しを行う。 ④ 必要時に仕入先に指示した納入数量(以下,納入指示数量という)の月間合計の最終値が,発注総量を下回らないように調整する。 ⑤ 生産部への部品の払出が1日に複数回ある場合でも,1回ごとに仕入先に納入指示を行う。仕入先も,納入指示に従って1回ごとに部品を納入する。 (2)都度発注方式 部品在庫の推移を確認し,今後の生産見通し,部品価格の変動状況を考慮して,発注ごとに仕入先,発注数量を決定する方式である。 ① 対象部品は,長納期主要部品である。 ② あらかじめ部品ごとに定められた複数の部品仕入先候補(以下,長納期主要部品仕入先候補という)に対して見積りを依頼し,見積結果の価格,納期及び品質ランクを踏まえて,1社を選定する。品質ランクは,長納期主要部品仕入先候補ごとに,過去の納入実績から設定されている。 (3)定量発注方式 毎日の業務終了時に部品の在庫数量を確認し,部品ごとの所定の数量(以下,発注点在庫数量という)を下回っている部品について,一定数量を発注する方式である。 ① 対象部品は,補充部品である。 ② あらかじめ部品ごとに定められた複数の部品仕入先候補(以下,補充部品仕入先候補という)に,一定期間(数か月以上)の発注数量を前提に見積りを依頼し,見積結果の価格及び優先順位を踏まえて,1社又は複数社を選定する。優先順位は,補充部品仕入先候補ごとに,過去の納入実績から設定されている。選定した仕入先からは,単価,納入LTについて事前に合意を得る。 (4)部品と発注方式の関係 部品と発注方式,仕入先などとの関係を,表1に示す。 表1 部品と発注方式,仕入先などとの関係 5.業務プロセス 現行の部品購買業務プロセスを図式化したものが,図1である。 図1 部品購買業務プロセス (1)分納発注方式の業務プロセス ① 総量発注 ・発注対象月の前々月最終営業日に,生産部が立てた生産計画と,使用する通常納期主要部品の数量を基に,対象部品単位に納入LTを勘案して,発注総量を見積もる。翌営業日に,仕入先に対して,この発注総量を参考情報として提示する。 ・発注対象月の前月最終営業日に,前々月以降の生産状況及び生産計画の変更を踏まえて,前々月に見積もった発注総量を見直し,発注対象月分の総量発注を行う。 ② 部品払出(納入指示) ・生産部からの部品払出要求を受けて,部品を払い出し,払出実績を生産部に通知する。 ・仕入先に,払出数量の納入指示を行う。 ・納入指示数量の月間合計の最終値は,発注総量以上とする。 ・納入指示数量の月間合計の最終値が発注総量に満たない場合,納入指示数量の月間合計が発注総量となるように納入指示を行う。この場合,当月の最終営業日から納入LTを差し引いた日以前で最も月末に近い営業日に納入指示を実施する。 ③ 納品受入 ・仕入先からの納入について,納入指示ごとの納品書と現品を照合して検品し,納入実績を記録して部品を入庫する。 ④ 支払予定作成 ・入庫後,納入実績単位に当月の支払予定を作成し,支払予定金額を記録する。ただし,既に当該支払先の支払予定が作成されている場合は,その支払予定金額を更新する。 ・月次処理として,支払処理を行う他システムに,当月の支払予定を通知する。 (2)都度発注方式の業務プロセス ① 部品在庫確認 ・毎日の業務終了時に,部品ごとの在庫数量を確認する。 ② 発注数量決定 ・対象部品について,在庫数量,今後の生産見通し及び部品価格の変動状況を考慮して,発注数量を決定する。 ③ 見積依頼 ・発注数量が決定した部品について,あらかじめ部品ごとに長納期主要部品仕入先候補として登録してある全仕入先に対して,同時に見積りを依頼する。 ④ 仕入先選定 ・見積りを依頼した仕入先から見積りを入手し,仕入先を選定する。 ⑤ 発注 ・選定した仕入先に発注する。 ⑥ 納品受入 ・仕入先からの納入について,発注ごとの納品書と現品を照合して検品し,納入実績を記録して部品を入庫する。 ⑦ 支払予定作成 ・分納発注方式と同様の手順で実施する。 (3)定量発注方式の業務プロセス ① 見積依頼 ・数か月~1年ごとに,あらかじめ部品ごとに補充部品仕入先候補として登録してある全仕入先に対して,同時に見積りを依頼する。 ② 仕入先選定 ・見積りを依頼した仕入先から見積りを入手し,仕入先を選定する。 ③ 部品在庫確認 ・毎日の業務終了時に,部品ごとの在庫数量を確認する。 ④ 発注 ・在庫数量が発注点在庫数量を下回っている部品について,仕入先に発注する。 ⑤ 納品受入 ・都度発注方式と同様の手順で実施する。 ⑥ 支払予定作成 ・分納発注方式と同様の手順で実施する。 〔現行システム〕 1.現状 (1)工場ごとに,部品購買管理システムとして分納発注システムと都度定量発注システムを運用している。分納発注システムと都度定量発注システムのそれぞれのテーブル構造は,全工場で同一である。 (2)部品ごとの発注方式は,全工場で同一である。 (3)見積依頼番号,発注番号,納品番号は,工場単位で採番されている。複数の工場で同一番号が存在する場合がある。 (4)長納期主要部品及び補充部品の在庫数量は,工場ごとに保持しているが,通常納期主要部品の在庫数量は保持していない。 (5)納入LT,発注点在庫数量,発注数量などは,工場ごとに設定されている。 (6)長納期主要部品及び補充部品の部品仕入先候補及び仕入先は,同一部品でも工場ごとに異なる場合がある。 2.テーブル構造 分納発注システムのテーブル構造を図2に,都度定量発注システムのテーブル構造を図3に示す。 図2 分納発注システムのテーブル構造(一部省略) 図3 都度定量発注システムのテーブル構造(一部省略) 〔システム統合〕 1.システム統合方針 (1)工場ごとに運用している分納発注システムと都度定量発注システムを統合して,全社共通の新システムとして構築する。全工場の三つの発注方式を一元管理する。 (2)サブタイプ構造の概念データモデルを作成し,三つの発注方式の違いを明確にする。 (3)テーブルを実装する場合,概念データモデルで明確にしたサブタイプ側のエンティティタイプを,スーパータイプ側にまとめたテーブル構造とする。 (4)調達先コード,見積依頼番号,発注番号,納品番号は,それぞれ全社で一意のコード・番号とする。同一のものに異なるコード・番号を使用している場合は,単一のコード・番号に統一する。また,コード・番号を変更した場合,現行システムと新システムの間でコード・番号の変換を可能にする。 (5)全社で統一しないコード・番号は,現行システムのコード・番号を使用する。 (6)現行システムで行った仕入先への見積依頼,発注は,新システムにそのまま移行し,再度同一仕入先に対して見積依頼,発注を行うことはない。 (7)現行システムから新システムへの移行は,工場単位に行う。各工場は,現行システムから新システムへ一括で切り替える。 (8)現行システムでは工場ごとに分かれているシステムを利用しており,システム内で工場を識別する必要はなかったが,システムの統合に当たって,識別が必要になった。新システムでは,工場を識別するための工場番号を新たに追加することにする。 (9)支払先への支払は,現在の工場単位から全社単位に一本化する。 (10)支払先への支払以外の見積り,発注,納品,払出などは,現行システムと同様に工場ごとに行う。新システムでは,新たな工場番号で工場を識別できるようにテーブル構造を見直す。 2.分納発注システム及び都度定量発注システムの概念データモデル システム統合に先立ち,分納発注システム及び都度定量発注システムの概念データモデルを作成し,その後で新システムの概念データモデルを作成することにした。作成途中の分納発注システムの概念データモデルを図4に,都度定量発注システムの概念データモデルを図5に示す。 図4 作成途中の分納発注システムの概念データモデル 図5 作成途中の都度定量発注システムの概念データモデル 解答に当たっては,巻頭の表記ルールに従うこと。ただし,エンティティタイプ間の対応関係にゼロを含むか否かの表記は必要ない。 なお,エンティティタイプ間のリレーションシップとして「多対多」のリレーションシップを用いないこと。エンティティタイプ名及び属性名は,それぞれ意味を識別できる適切な名称とすること。また,識別可能なサブタイプが存在する場合,他のエンティティタイプとのリレーションシップは,スーパータイプ又はサブタイプのいずれか適切な方との間に記述せよ。また,テーブル構造は第3正規形の条件を満たしていること。 設問1 現行システムについて,(1)~(3)に答えよ。 (1)図5中のマスタ領域(調達先と部品)は,サブタイプ及びリレーションシップが未完成である。必要なサブタイプ及びリレーションシップを追加し,図を完成させよ。 なお,マスタ領域(調達先と部品)以外のエンティティタイプとのリレーションシップは不要とする。 (2)図5中のトランザクション領域は,リレーションシップが未完成である。必要なリレーションシップを追加し,図を完成させよ。 なお,トランザクション領域以外のエンティティタイプとのリレーションシップは不要とする。 (3)分納発注方式における払出数量と納入指示数量の関係について,納入LTが2日の部品(部品番号が110001と221002)について,それぞれの発注総量が800である2013年2月の納入指示数量を例にとり,表2の形式で整理する。表2中の空欄に適切な数値を記入し,表を完成させよ。 表2 2013年2月の払出数量と納入指示数量 注記1 納入LTが2日なので,月末から数えて2営業日より前が,当月分の納入指示となる。 注記2 網掛けは休業日を表す。 設問2 新システムの概念データモデルの設計について,(1),(2)に答えよ。 (1)図4中と図5中のマスタ領域(調達先と部品)で,「調達先」エンティティタイプを除く部分について,新システムとしての概念データモデルを作成する。図6中の[a]~[f]に入れる適切なサブタイプ名を答えよ。また,図6にリレーションシップを追加して図を完成させよ。 なお,図6中のエンティティタイプ,サブタイプ以外のエンティティタイプとのリレーションシップは不要とする。 図6 新システムのマスタ領域(部品)の概念データモデル (2)図7に示す新システムのトランザクション領域の概念データモデルについて,「発注」,「払出」,「納品」,「納入指示」エンティティタイプに必要なサブタイプ及びリレーションシップを追加し,図を完成させよ。 なお,「発注」,「払出」,「納品」,「納入指示」エンティティタイプ及び追加したサブタイプ以外のエンティティタイプとのリレーションシップは不要とする。 図7 新システムのトランザクション領域の概念データモデル 設問3 新システムへの移行について,(1)~(3)に答えよ。 (1)都度定量発注システムから新システムへのデータ移行について,データ変換方法を表3で整理する。表3中に一部記入されている内容に倣って空欄を埋め,表を完成させよ。 表3 都度定量発注システムと新システムの間のデータ変換方法 注記1 変換パターン欄の「A」は無変換,「B」は変換テーブルによる変換を表す。 注記2 網掛けは表示していない。 (2)新システムにおいて,現行システムのテーブル構造を踏襲する場合,新システムのテーブルに「工場番号」列の追加が必要か否かを,表4の形式で整理する。表4中に一部記入されている内容に倣って空欄を埋め,表を完成させよ。 なお,「工場番号」列の追加要否欄には,追加が必要な場合は「○」,不要な場合は「×」を記入せよ。 表4 「工場番号」列の追加要否 注記 現行システム欄の「A」は分納発注システム,「B」は都度定量発注システムを表す。現行システム欄の「有」は当該システムにテーブルが存在すること,「無」は存在しないことを表す。 注1)「総量発注」テーブルが対応する。 (3)表4に示した新システムのテーブル名のテーブル構造が,「工場番号」列の追加以外は現行システムのテーブル構造と同じ,又は,現行の両システムの同じテーブルに含まれる列を包含したテーブル構造とした場合,データの冗長性が発生することから,テーブル分割が必要となる。分割が必要なテーブル名,新たなテーブル名,及び新たなテーブルに移す列名の具体例を答えよ。
表1 部品と発注方式,仕入先などとの関係。主要部品と補充部品について、納期、部品例、発注方式、仕入先数、仕入先選定方法の対応関係を示す表。
表1 部品と発注方式,仕入先などとの関係。主要部品と補充部品について、納期、部品例、発注方式、仕入先数、仕入先選定方法の対応関係を示す表。
図1 部品購買業務プロセス。分納発注、都度発注、定量発注の各方式と、共通する納品受入・支払予定作成までの業務プロセスを示す図。
図1 部品購買業務プロセス。分納発注、都度発注、定量発注の各方式と、共通する納品受入・支払予定作成までの業務プロセスを示す図。
図2 分納発注システムのテーブル構造(一部省略)。分納発注システムの部門、社員、調達先、部品、総量発注、払出、納入指示、納品、支払予定のテーブル構造を示す図。
図2 分納発注システムのテーブル構造(一部省略)。分納発注システムの部門、社員、調達先、部品、総量発注、払出、納入指示、納品、支払予定のテーブル構造を示す図。
図3 都度定量発注システムのテーブル構造(一部省略)。都度定量発注システムの部品仕入先候補、在庫、見積依頼、見積明細、発注、納品などのテーブル構造を示す図。
図3 都度定量発注システムのテーブル構造(一部省略)。都度定量発注システムの部品仕入先候補、在庫、見積依頼、見積明細、発注、納品などのテーブル構造を示す図。
図4 作成途中の分納発注システムの概念データモデル。分納発注システムのマスタ領域とトランザクション領域を分け、部門、社員、調達先、部品、発注関連エンティティを配置した概念モデル。
図4 作成途中の分納発注システムの概念データモデル。分納発注システムのマスタ領域とトランザクション領域を分け、部門、社員、調達先、部品、発注関連エンティティを配置した概念モデル。
図5 作成途中の都度定量発注システムの概念データモデル。都度定量発注システムのマスタ領域とトランザクション領域に、在庫、仕入先候補、見積、発注、納品などを配置した概念モデル。
図5 作成途中の都度定量発注システムの概念データモデル。都度定量発注システムのマスタ領域とトランザクション領域に、在庫、仕入先候補、見積、発注、納品などを配置した概念モデル。
表2 2013年2月の払出数量と納入指示数量。部品番号110001と221002について、日付別の払出数量、納入指示数量、月間累計を整理する表。
表2 2013年2月の払出数量と納入指示数量。部品番号110001と221002について、日付別の払出数量、納入指示数量、月間累計を整理する表。
図6 新システムのマスタ領域(部品)の概念データモデル。工場、部品、在庫、部品仕入先候補と、部品をスーパータイプとするサブタイプ構造の空欄付き概念モデル。
図6 新システムのマスタ領域(部品)の概念データモデル。工場、部品、在庫、部品仕入先候補と、部品をスーパータイプとするサブタイプ構造の空欄付き概念モデル。
図7 新システムのトランザクション領域の概念データモデル。発注、納品、払出、納入指示の四つのエンティティタイプを配置し、サブタイプとリレーションシップを追加するための図。
図7 新システムのトランザクション領域の概念データモデル。発注、納品、払出、納入指示の四つのエンティティタイプを配置し、サブタイプとリレーションシップを追加するための図。
表3 都度定量発注システムと新システムの間のデータ変換方法。部門コード、社員番号、調達先コード、部品番号、見積依頼番号、発注番号、納品番号などの変換方式を整理する表。
表3 都度定量発注システムと新システムの間のデータ変換方法。部門コード、社員番号、調達先コード、部品番号、見積依頼番号、発注番号、納品番号などの変換方式を整理する表。
表4 「工場番号」列の追加要否。現行二システムのテーブルごとに、新システムで工場番号列を追加する必要性と、不要な場合の理由を整理する表。
表4 「工場番号」列の追加要否。現行二システムのテーブルごとに、新システムで工場番号列を追加する必要性と、不要な場合の理由を整理する表。
解き方のヒントを見る

統合設計は前提条件との対応で考える

複数システムを統合する場面では、設計や移行の判断が問題中のどの前提・制約に基づくのかを一つずつ結び付けて確認することが大切です。自分の知識や一般論だけで判断せず、記述された条件を根拠として検討しましょう。

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

確認する観点は「記述された業務上の前提や制約と、各設計・移行上の判断との対応関係」の一点です。どの記述がどの判断の根拠になり得るかを、自分で線を引くように対応付けてから考えると整理しやすくなります。

視点

データモデルの設計やデータ移行の判断は、それ単体で良し悪しが決まるものではなく、対象となる業務の前提や制約に照らして妥当かどうかが決まります。そのため学習の際は、判断そのものを覚えるよりも、判断と根拠となる記述とを対応付ける習慣を持つことが有効です。根拠が見つからない判断や、記述と食い違う判断に気付けるかどうかが、この分野での検討の要になります。

確認ポイント

  • 各判断について、その根拠になっている業務上の前提や制約の記述を具体的に指し示せるか
  • 根拠として挙げた記述を読み違えたり、書かれていない条件を自分で補ったりしていないか
  • 判断と記述の間に食い違いや対応しない部分が残っていないかを、最後にもう一度見直したか
正解と解説を見る

解説

C社の分納発注システムと都度定量発注システムを全社共通の新システムに統合する事例です。現行システムの概念データモデルを完成させ、表2で分納発注の納入指示数量を計算し、新システムのサブタイプ構造を設計し、最後にコード変換・工場番号の追加・部品テーブルの分割という移行時のテーブル設計を答えます。出題趣旨では、エンティティタイプを読み取る力、サブタイプを切り出す力、リレーションシップを読み取る力、システム統合に伴ってテーブル構造を見直す力を評価するとしています。

問題の全体像

C社は工場ごとに、分納発注システム(通常納期主要部品が対象)と都度定量発注システム(長納期主要部品と補充部品が対象)を運用しています。これを全社共通の新システムに統合します。統合方針は次のとおりです。三つの発注方式の違いはサブタイプで明確にします。調達先コード・見積依頼番号・発注番号・納品番号は全社で一意にします。工場を識別する工場番号を新たに追加します。支払は全社単位に一本化します。設問1は現行システムの概念データモデルの完成と分納発注の計算、設問2は新システムの概念データモデル、設問3は移行時のコード変換・工場番号の追加要否・テーブル分割を問います。出題趣旨では、業務要件からエンティティタイプ、サブタイプ、リレーションシップを読み取る力と、システム統合に伴ってテーブル構造を見直す力を評価するとしています。

設問1(1)

着目点は〔部品購買業務の分析結果〕2の調達先の記述と、図3の調達先・部品・在庫・部品仕入先候補のテーブル構造です。調達先テーブルには仕入先区分と支払先区分が別々にあります。また、仕入先と支払先が同一の場合も多いと書かれています。そのため、公式解答例では「仕入先」と「支払先」を、調達先の互いに独立したサブタイプ(排他ではなく、別々のサブタイプ関係)として表しています。さらに、一つの仕入先に複数の支払先が対応することはないが、一つの支払先は複数の仕入先を代表しうるので、支払先から仕入先への1対多のリレーションシップを置きます(調達先テーブルの外部キー「支払先コード」が対応します)。部品仕入先候補の主キーは{部品番号、 仕入先コード}なので、部品と仕入先のそれぞれから部品仕入先候補への1対多を引きます。在庫の主キーは部品番号だけなので、部品と在庫は1対1です。部品のサブタイプとしては「補充部品」を追加します。採点講評では、調達先のサブタイプと部品・在庫のリレーションシップの正答率が低かったとしています。そのうえで、①支払先と仕入先が独立していること、②仕入先と支払先のリレーションシップが存在すること、③部品と在庫が1対1であることを問題文から読み取ってほしい、と述べています。表記ルールに従っていない解答が散見されたことも指摘されています。

設問1(2)

着目点は、見積明細と発注の「定量発注都度発注区分」、発注テーブルの外部キー{見積依頼番号、 見積依頼明細番号}、そして業務プロセスの違いです。公式解答例では、見積明細の排他的サブタイプとして定量発注見積明細と都度発注見積明細を、発注の排他的サブタイプとして都度発注と定量発注を置いています。そのうえで次のように結んでいます。都度発注見積明細と都度発注は1対1です。都度発注方式では発注ごとに見積りを取り、1社を選んで発注するので、一つの見積明細から生じる発注は一つだけです。定量発注見積明細から定量発注へは1対多です。定量発注方式では数か月~1年ごとに見積りを取り、その期間中は在庫が発注点を下回るたびに繰り返し発注するので、一つの見積明細に複数の発注が対応します。採点講評では、この二つのリレーションシップの正答率が低かったとし、業務の分析結果をよく読んで1対1と1対多のどちらかを判別してほしいとしています。

設問1(3)

根拠は、分納発注方式の部品払出(納入指示)のルールと、表2の注記1「納入LTが2日なので、月末から数えて2営業日より前が当月分の納入指示となる」です。2月の最終営業日は28日(木)なので、当月分の納入指示は26日(火)までです。27日と28日の指示は翌月分となり、月間合計は新たに数え直します。公式解答例の数値は次のとおりです。部品110001:25日 納入指示40・月間合計780、26日 50・830、27日 40・40、28日 50・90。26日時点で830となり発注総量800以上なので、払出数量をそのまま指示します。部品221002:25日 40・740、26日 60・800、27日 35・35、28日 40・75。26日に払出数量40だけを指示すると月間合計は780で、800に20足りません。そこで「当月の最終営業日から納入LTを差し引いた日以前で最も月末に近い営業日」である26日に20を上乗せし、60を指示して合計を800にそろえます。採点講評では、当月分から翌月分に切替りがあることを読み取っていない解答が散見されたとしています。

設問2(1)

図6では、部品が主要部品と補充部品に分かれ、主要部品がさらに通常納期と長納期に分かれる2段階のサブタイプ構造になっています。部品仕入先候補も、長納期主要部品用と補充部品用に分かれています。公式解答例で追加しているリレーションシップは次のとおりです。統合方針により、在庫・部品仕入先候補は工場ごとに管理するので、工場から在庫へ、工場から部品仕入先候補へ、それぞれ1対多を引きます。在庫へは、長納期主要部品(d)と補充部品(b)からそれぞれ1対多を引きます。現行システムの記述では、在庫数量を持つのは長納期主要部品と補充部品だけで、通常納期主要部品の在庫は保持しません。そのため、スーパータイプの部品ではなくこの二つのサブタイプに結び付けます。採点講評では、在庫と部品のサブタイプとのリレーションシップを適切に記述していない解答が多かったとしています。

設問2(1)(a)

部品の直下にあり、さらにc・dに分かれるサブタイプです。問題文3(2)「部品は、主要部品と補充部品に分かれる」と3(3)「主要部品は、通常納期主要部品と長納期主要部品に分かれる」から、公式解答例では「主要部品」です。

設問2(1)(b)

部品の直下にあるもう一方のサブタイプで、fへのリレーションシップを持ちます。公式解答例では「補充部品」です。補充部品は定量発注方式の対象で、補充部品仕入先候補から見積りを取るので、f(補充部品仕入先候補)とつながります。

設問2(1)(c)

主要部品のサブタイプのうち、他とのリレーションシップを持たない方です。通常納期主要部品は分納発注方式の対象で、仕入先の選定はシステムの対象外であり、在庫数量も保持しません。そのため仕入先候補とも在庫ともつながりません。公式解答例では「通常納期主要部品」です。

設問2(1)(d)

主要部品のサブタイプのうち、eへのリレーションシップを持つ方です。長納期主要部品は、あらかじめ定めた複数の長納期主要部品仕入先候補から見積りを取ります。公式解答例では「長納期主要部品」です。

設問2(1)(e)

部品仕入先候補のサブタイプのうち、dから参照される方です。問題文4(2)②で「長納期主要部品仕入先候補」と定義され、品質ランクを持つ候補です。公式解答例では「長納期主要部品仕入先候補」です。

設問2(1)(f)

部品仕入先候補のサブタイプのうち、bから参照される方です。問題文4(3)②で「補充部品仕入先候補」と定義され、優先順位を持つ候補です。公式解答例では「補充部品仕入先候補」です。

設問2(2)

新システムでは三つの発注方式を一元管理するので、公式解答例では「発注」の排他的サブタイプとして分納発注(現行の総量発注に当たる)・都度発注・定量発注を置いています。「納品」も、納入指示ごとに納品書を照合する分納発注方式と、発注ごとに照合する都度・定量発注方式とで参照先が異なります。そのため、分納発注納品・都度発注納品・定量発注納品の三つのサブタイプに分けます。リレーションシップは次のとおりです。都度発注と都度発注納品、定量発注と定量発注納品をそれぞれ結びます。分納発注から納入指示へは1対多です(一つの総量発注に対して必要時に何回も納入指示を出すため)。払出と納入指示、納入指示と分納発注納品をそれぞれ結びます(払出1回ごとに納入指示を出し、その納入指示ごとに納入されるため)。採点講評では、納品のサブタイプを切り出していない解答と、分納発注と納入指示を1対多としていない解答が多かったとし、業務の分析結果からサブタイプを注意深く識別してほしいとしています。

設問3(1)

判断の根拠は統合方針(4)(5)と現行システムの記述です。部品番号は全社で一意で、設計システムで採番された番号なので、変換は不要(A)です。調達先コード・見積依頼番号・発注番号・納品番号は全社で一意にすると定められており、現行では工場単位で採番されていて重複の可能性があるため、変換テーブルによる変換(B)が必要です。見積依頼明細番号は、全社で統一するコードの対象に含まれず、親である見積依頼番号の変換で一意性が保たれるので、無変換(A)です。調達先コードの変換テーブルは、同じ現行コードが工場ごとに別の調達先を指しうるため、工場番号を含めます。公式解答例では(工場番号、 現行調達先コード、 新調達先コード)です。

設問3(2)

工場ごとに持つ情報か、他のテーブルから工場を判別できるか、全社共通か、の三つの観点で判断します。公式解答例で○(工場番号の列が必要)とされているのは、部品仕入先候補・在庫・見積依頼・発注・払出です。いずれも工場ごとに内容が異なる、または工場ごとに行う業務の起点となるテーブルです。×とその理由は次のとおりです。調達先は「調達先は全社共通とするから」。見積依頼仕入先別明細と見積明細は「見積依頼から判別できるから」。納入指示と納品は「発注から判別できるから」。支払予定は「支払は工場単位ではないから」(支払を全社単位に一本化する方針のため)。採点講評では×とした理由の正答率が低かったとし、行の一意性以外の観点で工場番号が必要となる理由を、システム統合方針から読み取ってほしいとしています。

設問3(3)

現行システムの記述(5)に「納入LT、発注点在庫数量、発注数量などは、工場ごとに設定されている」とあります。一方、部品番号は全社で一意です。部品テーブルに工場番号を加えて{部品番号、 工場番号}を主キーにすると、部品名のような全社共通の列が工場の数だけ重複して冗長になります。部品番号だけを主キーのままにすると、工場ごとに異なる値を持てません。そこで公式解答例では、分割が必要なテーブルを「部品」とし、新たなテーブル「工場部品」を作って、納入LT・発注点在庫数量・発注数量を移しています。採点講評では、この設問は正答率が低かったとし、工場番号の列を追加することで全社共通の列と工場単位で異なる値を持ちうる列があることに着目して解答を導いてほしいとしています。

学習のポイント

業務ルールを根拠にサブタイプを独立(重なりあり)か排他かで判断し、1対1と1対多を判別すること。営業日と納入LTから月の切替りを読み取ること。統合時には、全社共通の値と工場単位で変わる値を見分けてテーブルを分割すること。

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

関連する過去問一覧

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