公式サイトの問題冊子はこちら。
https://www.ipa.go.jp/shiken/mondai-kaiotu/m42obm000000afqx-att/2024r06a_db_pm2_qs.pdf
問1-設問1-1
表5中の太枠部分内に◯を記入して表を完成させよ
T1
- 「当日のオンライン処理のAPの実行結果を全て反映した状態に回復できること」
- 表4のオンライン処理によって追加Cか更新Uが発生するテーブルを全て選ぶ
T6
- 図2によると、T5~T6の間に発生するAPは「報告作成」「点検率更新」「依頼作成」
- 表4のうちこの3つのAP処理によって追加Cか更新Uが発生するテーブルを全て選ぶ
顧客 | 委託先 | 契約 | 受託 | 車両 | 予定表 | 進捗 | 実施結果 | 点検率 | 報告 | 記録簿 | |
---|---|---|---|---|---|---|---|---|---|---|---|
T1 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ||||
T6 | ◯ | ◯ | ◯ |
問1-設問1-2
(a)
本文中のa~gに入れる適切な字句を答えよ
- 実施登録APと車検抽出2APで追加更新されるテーブルは、表4より実施結果、記録簿、WK1
- 「WK1,WK2の各テーブルは、ワークテーブルであり、バックアップの対象外とすること。これらのワークテーブルは、オンライン時間帯の終了後、バッチ処理を開始する前に再定義して使用する。」
- バックアップ対象外のWK1のへの追加更新はやり直しになるので、表4で該当するテーブルを確認すると、点検抽出と車検抽出2を再実行する必要があることがわかる
- WK1とWK2以外のテーブルはT2の状態に戻るので、実施登録をやり直す
a: WK1
b: 再定義
c: 点検抽出
d: 車検抽出2
e: 実施登録
- T1からやり直しになるので、点検抽出と車検抽出1を実行する必要があるが、点検抽出はcで網羅されるので割愛
- 表4より、車検抽出1ではWK2に追加を実施しているので、このテーブルを再定義する
f: WK2
g: 車検抽出1
(b)
本文中のh、iに入れる適切なAP名を全て答えよ
- 「ログを用いて、直前のチェックポイントから異常終了時までロールフォワードを行い、異常終了時点と同じデータベースの状態に回復する」
- T3~T5のトランザクションは、ログがあるのでロールフォワードする
- T5~T6のトランザクションは、ログが無いのでロールフォワードしない
- 「異常終了時に未完了だったトランザクション」は無いのでロールバックは発生しない
h: 予定表作成、進捗管理
i: なし
jに入れる適切な秒数を答えよ
AP | CRUD | テーブル | 行数 | RF | RB | |
---|---|---|---|---|---|---|
T3 | 予定表作成 | C | 予定表 | 20000 | ◯ | × |
T4 | 進捗更新 | C | 進捗、記録簿 | 10000 | ◯ | × |
T4 | 進捗更新 | U | 車両、予定表 | 40000 | ◯ | × |
T5 | 報告作成 | C | 報告 | 20000 | × | × |
T5 | 報告作成 | U | 受諾 | 20000 | × | × |
T5 | 点検表更新 | U | 点検表 | 20000 | × | × |
- 回復に要する秒数はロールフォワード分のみ
\begin{align}
70000件×2ms=140s
\end{align}
j: 140
(c)
本文中のk,lに入れる適切なAP名を全て答えよ
- 「ログを用いて、直前のチェックポイントから異常終了時までロールフォワードを行い、異常終了時点と同じデータベースの状態に回復する」
- T3~T6のトランザクションは、ログがあるのでロールフォワードする
- 「異常終了時に未完了だったトランザクションをロールバックする」
- T5~T6のトランザクションは未完了なのでロールバックも発生する
- 依頼作成は参照のみなのでロールフォワード、ロールバックともに対象外
k: 予定表作成、進捗管理、報告作成、点検表更新
l: 報告作成、点検表更新
mに入れる適切な秒数を答えよ
AP | CRUD | テーブル | 行数 | RF | RB | |
---|---|---|---|---|---|---|
T3 | 予定表作成 | C | 予定表 | 20000 | ◯ | × |
T4 | 進捗更新 | C | 進捗、記録簿 | 10000 | ◯ | × |
T4 | 進捗更新 | U | 車両、予定表 | 40000 | ◯ | × |
T5 | 報告作成 | C | 報告 | 20000 | ◯ | ◯ |
T5 | 報告作成 | U | 受諾 | 20000 | ◯ | ◯ |
T5 | 点検表更新 | U | 点検表 | 20000 | ◯ | ◯ |
- ロールフォワード
\begin{align}
130000件×2ms&=260s
\end{align}
- 「ロールバックは、トランザクションごとに並行して実行される」ので一番時間がかかるものがロールバックに要する時間
\begin{align}
報告作成=40000件×1ms&=40s ◯\\
点検表更新=20000件×1ms&=20s \\
\end{align}
- 回復に要する秒数
\begin{align}
260+40=300s
\end{align}
m: 300
問1-設問2-1
(a)
本文中のア~イに入れる適切な字句を答えよ
- 表6:問題1「契約登録APと報告作成APを同時に実行すると、契約登録APの応答に遅延が発生する」
- 競合するテーブル
AP | 顧客 | 受諾 |
---|---|---|
契約登録 | R | CRU |
報告作成 | R | RU |
- 報告作成は受諾を更新(U)する
- 「どのAPもISOLATIONレベルをREAD COMMITEDとして」
- C/Uではコミット完了まで専有ロックがかかる
- 報告作成APがコミット完了するまで、受諾に専有ロックがかかる
- 契約登録APでは、非ロックであれば受諾にWRITEを行う
ア: 受諾
イ: 専有ロック
(b)
報告作成APの変更内容を40字以内で具体的に答えよ
- 表3:報告作成「次回報告YMDの近い受諾を対象に、一定期間の保守区分の一覧及び明細に基づく報告について顧客別に報告に行を追加し、追加ごとに受諾の次回報告YMDを更新する」
- 一定期間にある次回報告YMDの処理をまとめて行うため解放待ちが発生し、契約登録APの応答に遅延が発生している
- 複数行の処理が溜まる前にコミットし、早めにロックを解放することを考える
報告の行追加と受諾の更新の度、もしくは一定回数行う度に一旦コミットする
(c)
発生の有無を判断し、答案用紙の有又は無のどちらかを○で囲み、判断の根拠を40字以内で具体的に答えよ
- 表3:報告作成「次回報告YMDの近い受諾を対象に、一定期間の保守区分の一覧及び明細に基づく報告について顧客別に報告に行を追加し、追加ごとに受諾の次回報告YMDを更新する」
- コミットされた追加済み行は、次回報告YMDも更新される
有無: 無
根拠: 追加済みの行に対する次回報告YMDが更新されているので、再処理時に対象外となる
問1-設問2-2
(a)
本文中のウ~エに入れる適切な手配#を答えよ
ウ
- 表1:手配#、現手配#「手配#は、1:事前案内、2:入庫予約受付、3:委託先手配、4:入庫、5:実施完了予定確認、6:出庫予約受付、7:完了確認、8:出庫のいずれかである」
- 図4「②予定表テーブルの該当行の現手配#に完了確認の手配#を設定して更新する」
- 進捗更新APが予定表を更新する処理は②のみ
ウ: 7:完了確認
エ
- 「予約登録APが点検の出庫予約中」の状況なので、手配#には6:出庫予約受付を設定
- 図3「③進捗テーブルに行を追加する」では、手配#に6:出庫予約受付を設定
- 図3「⑤予約表テーブルの行の現手配#に手配#と同じ値を設定して更新する」では、現手配#に6:出庫予約受付を設定
エ: 6:出庫予約受付
(b)
変更するAP名を答えよ
- 表6「進捗更新APの実行中に予約登録APによる登録を行うと、予定表テーブルの現手配#が不正になることがある」
- 「この問題は、予約登録APが点検の出庫予約の受付中に、進捗更新APで同じ受諾の予定表テーブルの現手配#を5から7(ウ)に変更し、その後で予約登録APが同じ現手配#を6(エ)に変更することで発生する」
- 予約登録APの最中に、他のAPが現手配#を変更しないようロックをかければよい
予約登録AP
(c)
(b)で解答したAPの変更内容を35字以内で具体的に答えよ
- 図3「②予定表テーブルから対象行を読み込む」と同時にロックをかける
予定表テーブルの対象行を専有ロックを掛けて読み込む
問1-設問2-3
(a)
レビューで指摘を受けたデッドロックは、どのような状況で発生するか。30字以内で具体的に答えよ
- 問題3「点検率更新APの処理が、実施結果テーブルの当日分の行数が多い日には、オンライン終了時刻時刻までに終わらない」
- 表3:点検率更新「実施結果を報告YMD、ソート連番の順に読み込み、契約♯が一致する点検率の実績点数に実施結果の点数を加算して更新する」
- ソート連番の順に点検率の行を読み込むので、ロックは必ずしも契約♯順にはならない
並行する複数のジョブが異なる順で更新される場合があるから
(b)
案1について、図5の処理内容の修正内容を20字以内で具体的に答えよ
- 図5「②実施結果テーブルから指定された引数に報告YMDが一致し、開始連番から終了連番までの間の行をソート連番順に読み込む」
- 並行する複数のジョブが、常に同じ順序で点検率の行を更新するには契約♯順に読み込む必要がある
ソート連番順ではなく契約♯順に読み込む
(c)
案2について、変更するAP名を答えよ。また、変更内容を30字以内で具体的に答えよ
- 図5「③読み込んだ行ごとに、契約♯が一致する点検率テーブルの行を読み込み、実績点数に点数を加えて更新する」
- 実施結果テーブルの読み込み順が契約♯順なら、点検率テーブルを読み込む順も契約♯順になる
AP名:実施結果
変更内容:ソート連番順ではなく契約♯順に読み込む
問1-設問3-1
本文中のオ~ケに入れる適切な数値を答えよ
オ
- 「1日のログ量は、処理行数を合計して、追加に190,000行、更新に100,000行になる」
- 「全テーブルの1ページ当たりの平均行数を20行」
\begin{align}
190000[行]÷20[行/ページ]=9500[ページ]
\end{align}
オ: 9500
カ
- 「1ページ当たりのストレージへのI/O時間を10ミリ秒とし」
\begin{align}
9500[ページ]×10[ミリ秒/ページ]=95[秒]
\end{align}
カ: 95
キク
- 「1日のログ量は、処理行数を合計して、追加に190,000行、更新に100,000行になる」
- 「1ページ当たりのストレージへのI/O時間を10ミリ秒とし」
- 「更新については、**バッファヒット率を0%**として」なので、行ごとにページのI/Oが発生する
\begin{align}
100000[行]÷1[行/ページ]=100000[ページ]
100000[ページ]×10[ミリ秒/ページ]=1000[秒]
\end{align}
キ: 100000
ク: 1000
ケ
- 「メディア障害への対策として、オンライン時間帯に何回かのオンラインバックアップを取得し、オンライン時間帯終了後にRDBMSを停止してデータベース全体のオフラインバックアップを取得することにした」
- 「ログ量が均等になるタイミングでオンラインバックアップを取得し、ログによる回復時間を5分以内にする」
- 上記をふまえ、1日の全てのログをx、オンラインバックアップの回数をnとすると
タイミング | 回復用のソース | 回復時間 | ログ量 |
---|---|---|---|
9:00~1回目のON_BU | OFF_BU | - | x/(n+1) |
1回目のON_BU~2回目のON_BU | 1回目のON_BU | 5分以内 | x/(n+1) |
n-1回目のON_BU~n回目のON_BU | n-1回目のON_BU | 5分以内 | x/(n+1 |
n回目のON_BU~19:00 | n回目のON_BU | 5分以内 | x/(n+1) |
- ログ量xの回復時間は、追加では95秒
- ログ量xの回復時間は、更新では1000秒
- 1回あたりの回復時間は
\frac{95[秒]+1000[秒]}{n+1[回/日]}<5×60[秒]\\
n>2.65
ケ: 3
問1-設問3-2
本文中のコ、シに入れる適切な数値を答えよ。また、サに入れる適切な文を20字以内で答えよ
コ
- 「点検抽出、車検抽出1、車検抽出2、の各APで更新するWK1、WK2の各テーブルには、ログなしモードを指定すること」
- 「具体的には、RDBMSはログを用いて、直前のチェックポイントから異常終了までロールフォワードを行い、異常終了時点と同じデータベースの状態に回復する」
コ: ロールフォワード
サ
- 「一行または1テーブルにロックをかけるごとにロックメモリにロック情報を登録し、そのロックを解放したらロック情報を削除する」
- 「トランザクションの排他制御によって同じ行の同時更新がないことは担保されている」より、ロールフォワードの際に、ログに対して一行毎にロックがかかる
サ: 行ロックが増える
シ: ロックメモリ
問2-設問-1
図1は、幾つかのリレーションシップが欠落している。欠落しているリレーションシップを補って図を完成させよ
- 「組織は、組織コードで識別し、組織名、組織階層レベル、上位組織をもつ」
- 「樹脂材料、薬品類、梱包資材は、倉庫ごと品目ごとに基準在庫数量を決めている」
- 倉庫別在庫は、倉庫ごとに識別するため、倉庫との間に多対1のリレーションシップが必要
- 「資材は、品目コードで識別し、」とあるので、倉庫別在庫を品目ごとに識別するため、資材との間に多対1のリレーションシップが必要
- 「金属材料は、一つの棚に1ロールずつ保管する」
- 「金属材料以外の資材は、一つの棚に1種類の資材を保管する」
- 金属材料も金属材料以外も、一つの棚に1種類の資材を保管する
- 「樹脂材料と薬品類とを併せて定量発注品と呼ぶ」
- 定量発注品は資材のサブタイプであり、樹脂材料と薬品類は定量発注品のサブタイプである
問2-設問-2
図2は、幾つかのリレーションシップが欠落している。欠落しているリレーションシップを補って図を完成させよ
長期発注
- 「長期発注に対する納入依頼-①納入依頼は、納入開始年月から納入月数分の毎月を対象に、納入先の倉庫、納入依頼数量、納入予定年月日を確定させて、納入予定年月日の2週間前までに行う」
- 納入依頼は長期発注を月ごとに分割したものなので、多対1のリレーションシップ
- 「長期発注に対する納入-①納入依頼ごとに納入を受ける」
- 納入は納入依頼と1対1のリレーションシップ
- 「長期発注に対する納入-③納入ごとロールごとに納入の明細を記録する」
- 納入明細は納入と多対1のリレーションシップ
スポット発注
- 「スポット発注に対する納入-①発注に対する納入は、分割され得る」
- スポット発注納入とスポット発注は、多対1のリレーションシップ
- 「スポット発注に対する納入-③納入ごとロールごとに納入の明細を記録する」
- 納入明細は納入と多対1のリレーションシップ
定量発注
- 「定量発注に対する納入-②納入に当たっては、発注に対応させた納入明細を納入で括る」
- 納入明細は発注に対応するので、1対1のリレーションシップ
- 納入は納入明細を括るので、1対多のリレーションシップ
保管条件付き発注
- 「発注の方法-⑤保管条件付き発注は、1年に1回の頻度で行う。保管条件付き発注ごとに資材メーカーとの間で品目、検収予定年月日、購入単価、発注数量、保管期限年月日を決める。資材メーカーからの製造完了の通知を受けて、検収年月日、購入金額を記録する」
- 「保管条件付き発注に対する納入依頼-保管条件付き発注の納入では、定量発注と同様に、日次で在庫数量を確認し、在庫数量が基準在庫数量を下回った梱包資材について納入依頼を行う」
- 発注には検収が対応
- 検収済みのものに対して、複数の納入依頼が紐付くので検収と納入依頼は1対多
- 「保管条件付き発注に対する納入-①納入依頼ごとに納入を受ける」
- 納入は納入依頼と1対1のリレーションシップ
入庫
- 「納入された資材について、品目分類によって定まる保管方法に基づいて、棚に保管する指示を出す。入庫は納入を受けた当日中に行う」
- 「資材は品目コードで識別し、品目名、資材メーカー、品目分類をもつ」
- 「長期発注では、金属材料を対象とし、」
- 「スポット発注では、金属材料を対象とし、」
- 金属材料の納入明細は、長期発注のものとスポット発注のものがある
- 「金属材料は、一つの棚に1ロールずつ保管する」
- 長期発注に対する納入「納入ごとロールごとに、納入の明細を記録する」とあるので、納入明細が入庫に1対1対応する
- スポット発注に対する納入「納入ごとロールごとに、納入の明細を記録する」とあるので、納入明細が入庫に1対1対応する
- 「樹脂材料、薬品類、梱包資材は、倉庫ごと品目ごとに基準在庫数量を決めている」
- 「定量発注では、樹脂材料と薬品類を対象とし、倉庫内の在庫数量が基準在庫数量を下回った時点で一定量を発注する」ので、発注は倉庫ごと品目ごと
- 定量発注に対する納入「納入に当たっては、発注に対応させた納入明細を納入で括る」なので、納入明細も倉庫ごと品目ごと
- 入庫は「納入された資材について、品目分類によって定まる保管方法に基づいて、棚に保管する指示を出す。入庫は納入を受けた当日中に行う」ので棚ごと品目ごと
- 倉庫は複数の棚から構成される
- 「保管し切れない分を次の棚に保管する」ので、納入明細と入庫の間に1対多のリレーションシップ
- 「保管条件付き発注では、梱包資材を対象とし、」
- 「金属材料以外の資材は、一つの棚に1種類の資材を保管する」
- 「納入依頼ごとに納入を受ける」
- 保管条件付き発注に対する納入依頼「納入依頼は発注に対して行い、納入先倉庫、納入依頼年月日をもつ」ので、倉庫ごと
- 倉庫は複数の棚から構成される
- 「保管し切れない分を次の棚に保管する」ので、納入と入庫の間に1対多のリレーションシップ
問2-設問-3
図3中のア~ケに入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ
ア
- 「組織は、組織コードで識別し、組織名、組織階層レベル、上位組織をもつ」
- 表1より「コード」の略号は「C」
ア: 上位組織C(FK)
イ
- 「資材は品目コードで識別し、品目名、資材メーカー、品目分類をもつ」
イ: 品目名、資材メーカーC(FK)、品目分類C(FK)
ウ
- 「樹脂材料と薬品類とを併せて定量発注品と呼ぶ。定量発注品では、資材メーカーとの間で次を取り決めている」
- 「1回の発注数量を示す購入LS」
- 「発注してから倉庫に納入するまでの日数である納入LT」
- 「購入LS当たりの購入単価」
- 表1より「単価」の略号は「@」
ウ: 購入LS、納入LT、購入Q
エ
- 「金属材料には、計量単位で表す1ロール当たりの規格数量、金属仕様をもつ」
- 表1より「数量」の略号は「Q」
エ: 規格Q、金属仕様
オ
- 「樹脂材料には、樹脂仕様をもつ」
オ: 樹脂仕様
カ
- 「薬品類には、取扱注意事項をもつ」
カ: 取扱注意事項
キ
- 「梱包資材には、ロゴマークの印刷サイズをもつ」
- 「保管条件付き発注では、梱包資材を対象とし、」
- 「1回の納入の納入数量を示す納入LS」
- 「納入依頼してから倉庫に納入するまでの日数である納入LT」
キ: 印刷サイズ、納入LS、納入LT
ク
- 「資材の在庫は、倉庫別と棚別の2階層で品目別にもつ」
- 「樹脂材料、薬品類、梱包資材は、倉庫ごと品目ごとに基準在庫数量を決めている」
ク: 倉庫C、品目C、在庫Q、基準在庫Q
ケ
- 「資材の在庫は、倉庫別と棚別の2階層で品目別にもつ」
- 「樹脂材料、薬品類、梱包資材は、倉庫ごと品目ごとに基準在庫数量を決めている」
ケ: 倉庫C、棚C、品目C(FK)、在庫Q
問2-設問-4
図4中のコ~ヌに入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ
コ
- 「長期発注では、品目別に月当たりの納入予定数量、納入開始年月、納入月数を決めている」
- 「長期発注及びスポット発注が対象とする金属材料の購入単価は、キログラム当たりの価格であり、発注時に決定する」
- 表1より「数量」の略号は「Q」、「年月」の略号は「YM」、「単価」の略号は「@」
コ: 品目C(FK)、月当たり納入予定Q、納入開始YM、納入月数、購入@
サ
- 「スポット発注では、発注ごとに品目、納入期限年月日、発注数量、納入先倉庫を決めている」
- 「長期発注及びスポット発注が対象とする金属材料の購入単価は、キログラム当たりの価格であり、発注時に決定する」
- 表1より「数量」の略号は「Q」、「年月日」の略号は「YMD」、「単価」の略号は「@」
サ: 品目C(FK)、納入期限YMD、発注Q、納入先倉庫C(FK)、購入@
シ
- 「定量発注では、樹脂材料と薬品類を対象とし、倉庫内の在庫数量が基準在庫数量を下回った時点で一定量を発注する」ので、発注単位は倉庫ごと品目ごと
- 「定量発注では、日次で在庫数量を確認し、在庫数量が基準在庫数量を下回った定量発注品について発注を掛け、納入予定年月日をもつ」
- 表1より「年月日」の略号は「YMD」
シ: 倉庫C(FK)、品目C(FK)、納入予定YMD
ス
- 「保管条件付き発注では、梱包資材を対象とし、購入計画に基づいて、1年分相当を一括で発注する。購入単価は発注時に決定する」
- 「保管条件付き発注ごとに資材メーカーとの間で品目、検収予定年月日、購入単価、発注数量、保管期限年月日を決める」
- 表1より「年月日」の略号は「YMD」、「単価」の略号は「@」、「数量」の略号は「Q」、「コード」の略号は「C」
ス: 品目C(FK)、検収予定YMD、購入@、発注Q、保管期限YMD
セ
- 「資材メーカーからの製造完了の通知を受けて、検収年月日、購入金額を記録する」
- 表1より「年月日」の略号は「YMD」、「金額」の略号は「¥」
セ: 検収YMD、購入¥
ソ
- 「資材メーカーへは、長期発注番号、購入対象年月、月内納入依頼番号を指定して、通知年月日、納入先倉庫、納入予定年月日、納入依頼数量を決めて通知する」
- 表1より「年月」の略号は「YM」、「番号」の略号は「#」、「単価」の略号は「@」、「数量」の略号は「Q」、「コード」の略号は「C」
ソ: 購入対象YM、月内納入依頼#、通知YMD、納入先倉庫C(FK)、納入依頼Q、納入予定YMD
タ
- 保管条件付き発注に対する納入依頼「②納入依頼は、発注に対して行い、納入先倉庫、納入依頼年月日をもつ」
- 保管条件付き発注に対する納入「納入依頼ごとに納入を受ける」ので、納入依頼は発注、納入先倉庫、納入依頼年月日をキーにしておく
- 表1より「年月日」の略号は「YMD」、「単価」の略号は「@」、「数量」の略号は「Q」、「コード」の略号は「C」
タ: 保管条件付き発注#、納入先倉庫C、納入依頼YMD
チ
- 長期発注に対する納入「②納入ごとに、納入年月日、購入金額を記録する」
- 長期発注に対する納入「納入依頼ごとに納入を受ける」ので、主キーは納入依頼のものと同じ、長期発注#、購入対象YM、月内納入依頼#<納入依頼年月日をキーにしておく
- 表1より「年月日」の略号は「YMD」、「金額」の略号は「¥」
チ: 長期発注#、購入対象YM、月内納入依頼#、納入YMD、購入¥
ツ
- 「長期発注では、金属材料を対象とし、」
- 「納入時に、資材メーカーからのロールごとのロール製造番号と実測数量を記した報告書を受領し、金属材料のロール納入の明細を記録する」
- 「ロール製造番号の番号体系は、B社が資材メーカーに対して指定するので、全ての金属材料を通じて重複しない」
- 長期発注に対する納入「③納入ごとロールごとに、納入の明細を記録する」
- ロール製造番号は重複しないので、納入明細を一意に識別可能
- 納入と納入明細は1対多なので、納入の主キーを外部キーとしてもつ
- 表1より「番号」の略号は「#」
ツ: ロール製造#、長期発注#(FK)、購入対象YM(FK)、月内納入依頼#(FK)
テ
- 「スポット発注では、金属材料を対象とし、」
- スポット発注に対する納入「①発注に対する納入は分割され得る」
- スポット発注に対する納入「②納入ごとに、納入年月日、購入金額を記録する」
- スポット発注の主キーである「スポット発注#」に加えて、「納入年月日」を主キーに組み込む
- 表1より「年月日」の略号は「YMD」、「金額」の略号は「¥」
テ: スポット発注#、納入YMD、購入¥
ト
- スポット発注に対する納入「③納入ごとロールごとに、納入の明細を記録する」
- 「ロール製造番号の番号体系は、B社が資材メーカーに対して指定するので、全ての金属材料を通じて重複しない」
- ロール製造番号は重複しないので、納入明細を一意に識別可能
- 納入と納入明細は1対多なので、納入の主キーを外部キーとしてもつ
- 表1より「年月日」の略号は「YMD」、「金額」の略号は「¥」
ト: ロール製造#、スポット発注#(FK)、納入YMD(FK)
ナ
- 「納入に当たっては、発注に対応させた納入明細を納入で括る」ので、外部キーに納入の主キーをもたせる
- 表1より「年月日」の略号は「YMD」、「金額」の略号は「¥」
ナ: 定量発注納入#(FK)
二
- 「納入依頼ごとに納入を受ける」ので、納入依頼と同じ主キーを持たせる
二: 保管条件付き発注#、納入先倉庫C、納入依頼YMD
ヌ
- 「納入された資材について、品目分類によって定まる保管方法に基づいて、棚に保管する指示を出す」ので、納入と同じ主キーを持たせる
- 金属材料ロール納入明細の主キーは、ロール製造#
- 定量発注納入明細の主キーは、定量発注#
- 保管条件付き発注納入の主キーは、保管条件付き発注#、納入先倉庫C、納入依頼YMD
- 定量発注#と保管条件付き発注#は**発注#**に集約
- 納入先倉庫Cは、主キーの倉庫Cに集約
ヌ: ロール製造#(FK)、発注#(FK)、納入依頼YMD(FK)