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

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

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

問題

問2 部品在庫の倉庫管理に関する次の記述を読んで、設問1~3に答えよ。 C社は、産業用機械を開発・生産・販売するメーカである。C社では、3か月前に、部品在庫を対象にした倉庫管理システム(以下、現行システムという)を稼働させたが、業務運用がうまくいっていない。そこで、現在、業務の変更と、それに伴う現行システムの変更及び移行を計画中である。 〔現行システム及び現行業務の概要〕 1. マスタ系及び在庫系の内容 (1) 従業員は、従業員番号で識別する。 (2) 部品メーカは、部品メーカコードで識別する。 (3) 生産は、本社工場1か所で、部品の保管は、本社倉庫1か所で行っている。 (4) 倉庫内の保管場所 ① 倉庫内は、同一面積の50のエリアに分割し、各エリアは、エリア番号で識別する。 ② エリアのうちの幾つかを、廃止部品用のエリア(以下、廃止エリアという)としている。廃止エリア以外のエリアを、通常エリアとしている。通常エリアか廃止エリアかは、エリア区分で分類する。 ③ 各エリアには、全て80の棚を設置している。 ④ 通常エリアの棚は、棚番号で識別する。廃止エリアの棚は、棚番号を付与していない。 (5) 部品及び部品品目 ① 部品は、部品番号で識別する。部品を分類する部品品目は、部品品目番号で識別する。部品ごとに、調達先の部品メーカを一つに決めている。 ② 部品は、約18、000点ある。C社の製品は、顧客の要望に基づいて開発することが多く、新たな製品が開発されると、多くの新規部品の追加が発生する。 ③ 新たな製品の開発に伴って、生産を終了させる製品もあり、新規部品の追加と同程度の部品の廃止が発生する。 ④ 部品の追加又は廃止の連絡を、購買部から受けると、物流部が部品を登録又は変更する。廃止になった部品を廃止部品と呼び、廃止になっていない部品を有効部品と呼ぶ。有効部品か廃止部品かは、廃止区分で分類する。 ⑤ 部品の主な登録内容は、部品名、部品メーカ、重量、幅、高さ、奥行き、一つの棚に保管可能な個数(以下、棚保管可能数という)、在庫され得る最大数(以下、最大在庫可能数という)、部品を登録した従業員である。 (6) 部品の保管方法 ① 有効部品については、部品の登録時に、部品を保管するエリアと棚を決めて登録する。その際、設定年月日と登録した従業員を記録する。 ② 最大在庫可能数は、棚保管可能数を上回ることも、下回ることもある。最大在庫可能数が棚保管可能数を上回る場合、棚を複数割り当てる。最大在庫可能数が棚保管可能数を下回る場合、一つの棚に複数の部品を割り当てることもある。ただし、同じ部品を複数のエリアに保管することはない。 ③ 廃止部品については、どの廃止エリアに保管するか決めている。 (7) 部品の登録内容 ① 部品の登録において、購買部から伝達される内容は、部品番号、部品名、部品メーカ、部品品目番号、重量、幅、高さ、奥行き、最大在庫可能数である。 ② 棚保管可能数、エリア番号、棚番号、登録従業員番号、登録年月日は、物流部が決めて登録する。 ③ 廃止部品には、廃止年月日とエリア番号を記録する。 ④ 最大在庫可能数は、製品の生産状況によって変動するので、月次で、統計に基づいて算出し、更新する。 ⑤ 部品に必要な棚数は、“月次で更新した最大在庫可能数÷棚保管可能数”(切上げ)で算出する。部品に必要な棚数が変わった場合、棚を割り当て直す。 (8) 部品の在庫 ① 有効部品は、棚別に在庫数をもつ。これを棚別部品在庫という。 ② 棚別部品在庫とは別に、倉庫全体の在庫数も必要なので、棚別部品在庫を集約した在庫数ももつ。これを集約部品在庫という。集約部品在庫では、在庫数の他に、引当済数と引当可能数をもつ。 ③ 廃止部品は、倉庫全体で在庫数をもつ。 2. トランザクション系の内容 (1) 入荷予定、入荷、入庫 ① 購買部が、部品メーカからの入荷予定を登録する。入荷予定は、発注番号で識別し、入荷予定年月日と部品メーカを記録する。 ② 入荷予定は、一つ又は複数の部品を対象に入荷予定明細をもち、発注番号と発注明細番号で識別する。入荷予定明細には、部品番号、発注数を記録する。 ③ 入荷予定に基づいて、部品メーカから入荷されると、入荷及び入荷明細を記録する。部品メーカからの入荷は、購買部が登録した入荷予定の単位で行われる。入荷は、入荷番号で識別し、入荷年月日と対応する入荷予定を記録する。入荷明細は、入荷番号と入荷明細番号で識別し、入荷した部品と実際の入荷数、入荷予定に対する入荷の対応を把握するために、対応する入荷予定明細を記録する。 ④ 入荷において、対象の部品が入荷予定と異なる場合、発注数と入荷数が異なる場合があり得る。いずれの場合も入荷を記録する。 ⑤ 入荷後、調達先に返品する場合がある。その場合、返品数を入荷明細に記録する。 ⑥ 入荷した部品の入庫は、1日に数回あり、それまでの入荷分を対象に実施する。入庫は、入庫の実施単位に入庫番号で識別し、入庫年月日時刻を記録する。入庫明細は、入荷明細の単位を、一つ又は複数の棚に分割して記録し、入庫番号と入庫明細番号で識別する。 ⑦ 入庫明細は、エリア別、棚別に、入庫した部品と実際の入庫数を記録する。 ⑧ どの入庫で、どこまでの入荷を対象にしたかを把握するために、対応する入荷明細を、入庫明細に記録する。 ⑨ 確定した入庫に基づいて、在庫の更新を行う。 (2) 引渡要求、出庫、引渡 ① 引渡要求とは、生産現場から、生産に必要な部品を要求されることである。1回の引渡要求では、1種類又は複数種類の部品が要求される。引渡要求は要求番号で識別し、引渡要求明細は要求番号と要求明細番号で識別する。 ② 引渡要求は、数日先まで先行して発行される。 ③ 引渡要求では、生産現場から、要求発行年月日、引渡指定年月日時刻、引渡対象の受注番号、製品コード、及び着工番号が通知される。受注番号以降の内容は、引渡時に、生産現場側の照合のために表示できるようにしている。 ④ 引渡要求明細では、引渡対象の部品番号、要求数が通知される。これに対して物流部が在庫引当を行う。在庫引当では、在庫引当識別を「可」にするとともに、集約部品在庫の引当済数と引当可能数を更新する。 ⑤ 全ての引渡要求明細の在庫引当識別が「可」になると、出庫を行う。 ⑥ 出庫は出庫番号で識別し、出庫明細は出庫番号と出庫明細番号で識別する。 ⑦ 出庫明細には、エリア別、棚別に、出庫した部品と実際の出庫数を記録する。 ⑧ どの出庫が、どの引渡要求に基づくものか把握するために、出庫には対応する引渡要求を、出庫明細には対応する引渡要求明細を記録する。また、出庫には、出庫年月日を記録する。 ⑨ 確定した出庫に基づいて、在庫の更新を行う。 ⑩ 出庫が完了し、引渡指定年月日時刻が到来すると、生産現場へ引渡を行う。引渡は引渡番号で識別し、引渡明細は引渡番号と引渡明細番号で識別する。 ⑪ 引渡には、引渡が完了した引渡年月日時刻と対応する出庫を記録し、引渡明細には、引渡した部品と実際の引渡数を記録する。 (3) 移動 ① 部品の移動は、次の二つの場合に行う。 ・最大在庫可能数の減少に伴って棚数を減らし、減らした棚に保管してあった部品を他の棚に移す場合 ・廃止部品を廃止エリアに移す場合 ② 棚数を減らす場合の移動を通常移動と呼び、移動先のエリア番号、棚番号を記録する。 ③ 廃止部品を廃止エリアに移す場合の移動を廃止移動と呼び、移動先のエリア番号を記録する。 ④ いずれの移動の場合も、移動は移動番号で識別し、移動年月日、部品番号、移動実績数、移動元のエリア番号と棚番号を記録する。 ⑤ 確定した移動に基づいて、在庫の更新を行う。 現行システムの概念データモデルを図1に、関係スキーマを図2に示す。図1では、領域をまたがるリレーションシップは表していない。 図1 現行システムの概念データモデル(未完成) 図2 現行システムの関係スキーマ(未完成) 〔現行システム及び現行業務を変更する背景〕 3か月前に切り替えた現行システム及び現行業務の目的は、棚別の在庫管理による入出庫の効率向上であった。しかし、購買部からの新規部品・廃止部品の連絡に基づく棚の決定は、1件当たりの時間が掛かり、その連絡は日によって件数が多いこともあるので、部品登録が数日遅れとなることが頻発している。これに対して、新規部品の入荷や引渡は、購買部からの新規部品の連絡から間をおかず行われるが、部品登録が完了するまでは、入庫も出庫もシステムに記録できず、在庫も計算できないので、これら全てを人間系で運用することになり、大きな混乱を起こしている。また、棚数の減少によって移動しなければならない部品も毎月多く発生し、1件当たりの移動の指図にも時間が掛かるので、毎月の最終営業日の業務終了後から始める移動業務の完了を、翌営業日の業務開始までに間に合わせることができない。これによって、棚の空きが遅れ、部品の棚の登録が、より困難になっている。 現行システムの稼働開始から3か月経過しても、この状況は、収束する兆しはなく、棚別の在庫管理の継続は無理と判断した。 〔現行システム及び現行業務に対する変更内容〕 部品の保管場所の管理単位はエリアとし、エリア内の部品の保管方法は、廃止エリアを含む全てのエリアに倉庫担当者を固定して、その倉庫担当者に任せるようにする。その際、1人の倉庫担当者が複数のエリアを担当することもあるが、一つのエリアを複数の倉庫担当者が担当することはない。 有効部品は、入出庫頻度でランク付けすることにする。部品品目とランクの全ての組合せに対して、それぞれ一つの通常エリアをあらかじめ割り当てる。有効部品は、ランクと部品品目で、どの通常エリアに保管するか決める。これによって、入出庫の効率を落とさず、〔現行システム及び現行業務を変更する背景〕の状況を解消する。 現行システム及び現行業務に対する変更内容を、表1に示す。 表1 現行システム及び現行業務に対する変更内容 〔現行システム及び現行業務に対する変更に伴う移行〕 現行システム及び現行業務に対する変更に伴って移行が必要になる。移行に向けて、現状調査を行い、移行方針を立て、移行計画を立案した。 1. 移行に向けての現状調査結果 (1) 現行システム及び現行業務への切替えと在庫移動には、数日を要し、年末年始の休業期間に実施した。今回の変更に伴う移行も数日を要するので、夏季休暇期間に実施する。 (2) 倉庫全体の棚のうち、部品を保管していない未使用の棚は十分にあり、その状況は、移行を行うまで大きく変わることはない。 2. 移行方針 (1) 移行に当たっては、新データベースを構築する。 (2) 新データベースへは、マスタ系、トランザクション系、在庫系のデータについて、次の方針で移行する。 ① マスタ系は、現行システムから複写できるものは複写し、新たに設定が必要なものは、設定を行う。 ② トランザクション系は移行しない。 ③ 在庫系は、現行システムと現行データベースを一部改修した上で、部品の保管方法を変えるための現物の移動(以下、現物移動という)を、現行システムで実施する。その後、新たな保管方法で在庫を確定させた上で、現行システムから複写する。 (3) 新たな保管方法では、部品品目とランクの組合せで部品保管エリアを決める。エリアごとに、そのエリアにある全ての部品を別のエリアの空棚に退避し、新たな保管方法で保管すべき部品をそのエリアに移動する。これを全てのエリアについて繰り返す。 (4) トランザクション系はデータを移行しないので、移行前に、日常業務の入荷予定、入荷、入庫、引渡要求、出庫及び引渡を全て完了させ、仕掛りがない状態にする。新たな入荷予定の投入を止め、既に入荷予定のある部品は、全て入庫まで終わらせる。また、新たな引渡要求の受付を止め、既に引渡要求のある部品は、全て引渡まで終わらせる。 (5) マスタ系のデータ移行では、外部キーの参照先のデータが先に移行されていなければならない。参照関係を考慮した移行の順序とする。 3. 現行システムの変更と移行の計画 立案した現行システムの変更と移行の計画を表2に示す。 表2 現行システムの変更と移行の計画(未完成) 解答に当たっては、巻頭の表記ルールに従うこと。ただし、エンティティタイプ間の対応関係にゼロを含むか否かの表記は必要ない。 なお、エンティティタイプ間のリレーションシップとして“多対多”のリレーションシップを用いないこと。また、エンティティタイプは、第3正規形の条件を満たしていること。 設問1 現行システムの概念データモデル及び関係スキーマについて、(1)、(2)に答えよ。 (1) 図1中の“入荷予定、入荷、入庫に関するトランザクションの領域”について、本文中の字句を用いて、概念データモデルを完成させよ。ただし、この領域と他の領域との間のリレーションシップは記述しないこと。 (2) 図2中の“入荷予定、入荷、入庫に関するトランザクションの領域”について、本文中の字句を用いて、主キーを表す実線の下線、外部キーを表す破線の下線も含めて、関係スキーマを完成させよ。 設問2 〔現行システム及び現行業務に対する変更内容〕に基づいて、(1)~(4)に答えよ。概念データモデルの解答に当たっては、次の解答方法に従うこと。 ・不要になるエンティティタイプ及びリレーションシップは、解答欄の該当する箇所に✕印を記入せよ。 ・追加するエンティティタイプ及びリレーションシップは、巻頭の表記ルールに従って記入せよ。 (1) 図1中の“マスタ及び在庫の領域”について、〔現行システム及び現行業務に対する変更内容〕を反映した概念データモデルを完成させよ。 (2) (1)で追加したエンティティタイプについて、本文中の字句を用いて、主キーを表す実線の下線、外部キーを表す破線の下線も含めて、関係スキーマを示せ。 (3) 図2中の“マスタ及び在庫の領域”について、変更すべき関係スキーマの関係名と新たに必要となる属性名を答えよ。 なお、答案用紙の欄は全て埋まるとは限らない。 (4) 図1中の“引渡要求、出庫、引渡に関するトランザクションの領域”について、〔現行システム及び現行業務に対する変更内容〕を反映した概念データモデルを完成させよ。 設問3 表2に示した移行計画について、(1)、(2)に答えよ。 (1) 表2中の太枠で示した“マスタ系のデータの移行”について、空欄を埋め、完成させよ。 (2) 表2中の【a】~【c】に入れる適切な字句を、表2中の字句を用いて答えよ。
図1 現行システムの概念データモデル(未完成)。現行システムの概念データモデル。マスタ及び在庫、入荷予定・入荷・入庫、移動、引渡要求・出庫・引渡の各領域を示す未完成図。
図1 現行システムの概念データモデル(未完成)。現行システムの概念データモデル。マスタ及び在庫、入荷予定・入荷・入庫、移動、引渡要求・出庫・引渡の各領域を示す未完成図。
図2 現行システムの関係スキーマ(未完成)。現行システムの関係スキーマ。マスタ及び在庫、入荷予定・入荷・入庫、引渡要求・出庫・引渡、移動の関係と属性を示す未完成図。
図2 現行システムの関係スキーマ(未完成)。現行システムの関係スキーマ。マスタ及び在庫、入荷予定・入荷・入庫、引渡要求・出庫・引渡、移動の関係と属性を示す未完成図。
表1 現行システム及び現行業務に対する変更内容。現行システム及び現行業務について、ランク付け、保管方法、入出庫、引渡、移動などの変更内容を整理した表。
表1 現行システム及び現行業務に対する変更内容。現行システム及び現行業務について、ランク付け、保管方法、入出庫、引渡、移動などの変更内容を整理した表。
表2 現行システムの変更と移行の計画(未完成)。新データベース準備、処理開発、現物移動、日常業務完了、マスタ系データ移行などの計画と、未完成の移行項目を示す表。
表2 現行システムの変更と移行の計画(未完成)。新データベース準備、処理開発、現物移動、日常業務完了、マスタ系データ移行などの計画と、未完成の移行項目を示す表。
解き方のヒントを見る

変更前後で守るべきものを見極める

データの持ち方や作業の段取りを変える場面では、変更前と変更後で何が保たれ、何が変わるのかを切り分けることが検討の出発点になります。問題中の条件をこの一点に照らして整理しましょう。

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

問題に示された業務上の前提や制約を読み取り、変更の前後を通じて一貫していなければならない事柄が何かを自分の言葉で定めてから、各内容がその一貫性とどう関わるかを確かめる姿勢が問われます。

視点

データモデルの見直しや移行を考えるときは、個々の手段の良し悪しを比べる前に、利用者や業務から見て変わってはいけない性質を整理しておくと、判断の軸がぶれにくくなります。そのうえで、問題中の条件がその性質に影響するかどうかを一つずつ照合していきます。

確認ポイント

  • 問題の前提条件のうち、変更後も維持すべきと読み取れる事柄を書き出したか
  • 書き出した事柄が、変更の途中段階でも保たれる必要があるかを考えたか
  • 判断の根拠を問題中の記述に結び付けて説明できるか
正解と解説を見る

解説

C社の倉庫管理を題材に、現行の入荷予定・入荷・入庫のデータモデルとキーを完成させ、棚別からエリア別への管理単位の変更をマスタ・在庫および引渡要求・出庫・引渡の各領域に反映させる問題です。後半では、参照関係を考えたマスタ移行の順序と、現物移動の手順を問います。出題趣旨では、①エンティティタイプとリレーションシップをトップダウンに見抜く力、②管理対象の粒度が変わったときのデータモデルへの影響を見抜く力、③運用が変わったデータベースの移行を考える力を評価するとしています。

問題の全体像

C社は部品在庫を棚別に管理する現行システムを3か月前に稼働させました。しかし、新規部品・廃止部品ごとの棚決定や棚数変更に伴う移動に時間が掛かり、部品登録の遅れや移動の積み残しが起きています。そこで、保管場所の管理単位をエリアに変更します。各エリアには倉庫担当者を1人固定し、有効部品には入出庫頻度で'A'~'E'のランクを付けます。部品品目とランクの組合せごとに通常エリアを割り当て、在庫は集約部品在庫に一本化します。出庫は引渡要求をエリア単位に分けて行い、引渡では出庫を引渡要求単位にまとめます。設問1は現行モデルの復元、設問2は粒度変更の反映、設問3は移行計画を問います。採点講評では、全体として正答率は高かった一方、設問1(1)の入荷と入庫の関連、設問2(1)の部品保管エリアの関連、設問2(4)の引渡要求明細と出庫明細の関連、設問3(1)の移行順序などで誤りが多かったと指摘されています。

設問1(1)

公式解答例では、エンティティタイプとして入荷予定、入荷予定明細、入荷、入荷明細、入庫、入庫明細の6つを置きます。関連は次のとおりです。

・入荷予定→入荷予定明細、入荷→入荷明細、入庫→入庫明細:それぞれ1対多

・入荷予定―入荷:1対1

・入荷予定明細―入荷明細:1対1

・入荷明細→入庫明細:1対多

根拠は本文にあります。「入荷は、購買部が登録した入荷予定の単位で行われる」ので、ヘッダ同士は1対1になります。「入荷明細に、対応する入荷予定明細を記録する」ので、明細同士も1対1です。一方、入庫は「1日に数回、それまでの入荷分を対象に実施」し、入庫明細は「入荷明細の単位を一つ又は複数の棚に分割して記録」します。このため、入荷と入庫のヘッダ間には直接の関連がありません。関連は入荷明細→入庫明細の1対多だけです。採点講評でも、入荷と入庫の関連を正しく読み取れていない解答が多かったとされています。ヘッダと明細が同じ関連でつながる場合、異なる関連でつながる場合、片方にしか関連がない場合を区別することが重要です。

設問1(2)

公式解答例の関係スキーマを、主キー(実線の下線)と外部キー(破線の下線)に分けて整理します。

・入荷予定:主キーは発注番号です。部品メーカは部品メーカコードで識別するので、部品メーカコードが部品メーカを参照する外部キーになります。

・入荷予定明細:主キーは{発注番号、 発注明細番号}です。発注番号は主キーの一部として入荷予定を参照します。記録する部品番号は、部品を参照する外部キーです。発注数は非キー属性です。

・入荷:主キーは入荷番号です。「対応する入荷予定を記録する」ため、発注番号が入荷予定を参照する外部キーになります。

・入荷明細:主キーは{入荷番号、 入荷明細番号}です。対応する入荷予定明細を記録するので、{発注番号、 発注明細番号}の組が入荷予定明細への複合外部キーになります。実際に入荷した部品は予定と異なることがあるため、部品番号を独立した外部キーとして持ちます。入荷数と返品数は非キー属性です。

・入庫:主キーは入庫番号です。入荷との関連がないため外部キーは持たず、入庫年月日時刻だけを持ちます。

・入庫明細:主キーは{入庫番号、 入庫明細番号}です。外部キーは次の三つです。①入荷明細を参照する{入荷番号、 入荷明細番号}。②エリア別・棚別に記録するため、棚を参照する{エリア番号、 棚番号}。③入庫した部品を示す部品番号。入庫数は非キー属性です。

複合主キーを参照するときは、キーの組全体をそろえて外部キーにする点がポイントです。

設問2(1)

公式解答例では、次の変更を行います。

【削除(✕印)】

・棚、部品保管棚番、棚別部品在庫

・通常エリア→棚、従業員→部品保管棚番、棚→部品保管棚番、有効部品→部品保管棚番、部品保管棚番―棚別部品在庫の各リレーションシップ

【追加】

・従業員→エリア(1対多)

・エンティティタイプ「ランク」と「部品保管エリア」

・ランク→有効部品、ランク→部品保管エリア、部品品目→部品保管エリア、通常エリア→部品保管エリア(いずれも1対多)

根拠は本文にあります。管理単位をエリアにするので、棚と棚別の保管・在庫が不要になります。「1人の倉庫担当者が複数のエリアを担当することもあるが、一つのエリアを複数の倉庫担当者が担当することはない」ので、従業員とエリアは1対多です。部品保管エリアは「部品品目とランクの全ての組合せ」ごとに一つの通常エリアを割り当てるものなので、部品品目とランクの両方から関連を持ち、割当先の通常エリアを参照します。採点講評では、この部品保管エリアに関連するリレーションシップの正答率が低かったとされています。

設問2(2)

公式解答例は次の二つです。

・部品保管エリア(部品品目番号、 ランク、 エリア番号):主キーは{部品品目番号、 ランク}(実線)で、エリア番号は通常エリアを参照する外部キー(破線)です。部品品目とランクの組合せごとに一つの通常エリアが決まるので、組合せが主キーになり、エリアはその組合せに従属する属性になります。

・ランク(ランク):主キーはランクです。

部品保管エリアの主キーの構成要素である部品品目番号とランクは、それぞれ部品品目とランクを参照します。これらはキーの一部として実線で示されています。

設問2(3)

公式解答例では、次の二つの関係に属性を追加します。

・エリアに従業員番号を追加:エリアごとに担当者が1人に固定されるためです。

・有効部品にランクを追加:ランクは有効部品だけに付けるので、スーパタイプの部品ではなくサブタイプの有効部品に持たせます。

削除される部品保管棚番・棚別部品在庫は変更ではなく削除の対象です。そのため、この欄には現れません。

設問2(4)

公式解答例では、次の変更を行います。

【削除(✕印)】

・引渡要求―出庫の1対1

・出庫―引渡の1対1

・引渡要求明細→出庫明細の1対多

【追加】

・引渡要求→出庫の1対多

・引渡→出庫の1対多

・引渡要求―引渡の1対1

・引渡要求明細―出庫明細の1対1

ポイントは、従来の引渡要求明細と出庫明細の関連を変えることです。現行では出庫明細を「エリア別、棚別」に記録していました。同じ部品が複数の棚にあれば、1件の引渡要求明細が複数の出庫明細に分かれるため、1対多でした。変更後は棚別の在庫管理をやめ、出庫をエリア単位で行います。同じ部品を複数のエリアに保管することはないので、1件の引渡要求明細はちょうど1件の出庫明細に対応し、1対1になります。採点講評でも、この関連が変わることを見過ごした解答が多かったとされています。

ヘッダ側の変更は次のように導けます。出庫は「引渡要求単位を更にエリア単位に分けて行う」ので、引渡要求→出庫は1対多です。引渡は「出庫を引渡要求単位にまとめ」、出庫に引渡の対応を記録するので、引渡→出庫も1対多です。さらに「引渡に、どの引渡要求に基づくかの対応を記録する」ので、引渡要求―引渡は1対1になります。

設問3(1)

公式解答例の各行は次のとおりです。

・従業員、部品品目、部品メーカ:移行の順序は1、方法2(複写)、複写元は同名のエンティティタイプです。

・エリア:順序は2、方法1と方法2です。複写元はエリアで、新たに必要な担当の従業員番号は人が設定します。

・部品:順序は2、方法2と方法3です。複写元は部品、生成処理はランク決定処理です。

・部品保管エリア:順序は3、方法1のみです。

移行の順序は、外部キーの参照先を先に移行するという方針(5)から決まります。エリアは従業員を、部品は部品品目・部品メーカ・従業員を参照するので2になります。部品保管エリアはエリアと部品品目を参照するので3です。有効部品の新しい属性ランクは、表1のランク決定処理(直近3か月間の入出庫頻度から決定)で生成します。部品保管エリアは部品品目とランクの組合せへのエリア割当てなので、現行データからは複写できず、人が設定します。採点講評では、移行の優先順位を誤る解答が多かったと指摘されています。また、複写元にスーパタイプとサブタイプを併記すると全体集合と部分集合を重ねて指定することになるため、スーパタイプの「部品」だけを記入します。

設問3(2)

公式解答例は、aが空棚退避移動、bが新エリア移動、cが移行用部品在庫です。移行方針(3)では、「エリアごとに、そのエリアにある全ての部品を別のエリアの空棚に退避し、新たな保管方法で保管すべき部品をそのエリアに移動する」ことを全エリアで繰り返します。この順序に、表2の番号3で追加する移動サブタイプの名称を当てはめると、まず空棚退避移動(a)、次に新エリア移動(b)になります。番号4によると、新エリア移動は移行用部品在庫を更新します。したがって、全ての移動が終わった時点でエリア単位の在庫を持っているのは移行用部品在庫です。在庫の残高移行(番号8)では、ここから新データベースの部品在庫へ複写するので、cは移行用部品在庫になります。

学習のポイント

ヘッダ・明細構造のトランザクション間の関連の読み取り、複合主キーを参照する外部キーの特定、粒度変更(棚→エリア)で明細の多重度が1対多から1対1に変わる点、外部キーの参照先から移行順序を決める考え方、スーパタイプとサブタイプの集合関係を重点的に学習します。

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

関連する過去問一覧

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