見出し画像

【4段階の難易度】デスペ令和6年秋午後2問2の解説(データベーススペシャリスト)

このNoteは「データベーススペシャリスト 令和6年秋午後2問2」の解説です。

2回設計する問題でした。スキーマ2個とER図2個。

ざっくり4段階の難易度で構成されてました。
1:問題文のまとまった情報を書き出す
2:散らばった情報を搔き集める
3:少し丁寧な読み取り/考察を要する
4:多大な解釈/考察を要する

私のNoteも、前半1, 2, 後半1, 2で構成しています。なお、前半1, 2, 3は午後1の問題演習で充分対応できます。午後2に取り組む前に、必ず午後1を演習してください。短時間で多くの基礎を学べますから。>DB午前1の問題解説マガジン

午後1に取り組んでないと、午後2独自の学びに集中できません。

  • 表記ルールを一瞬見て、変わった点がないかチェック

  • 「区分」が不要な場合【イ】【ウ】

  • 「明細」で主キー追加しない場合【ツ】【ト】

  • 「発注E」と「納入明細E」が直接接続する場合【ナ】

  • 接続先Eの主キーを主キーに採用できない場合【ヌ】


私のNoteは、独学合格した経験と、IT専門学校での授業内容を基に作っています。

それでは始めましょう!


>14個のDB午前テーマ別解説Note
>4ヶ月の勉強記録Note
>DB午前1の問題解説マガジン

※このNoteは2025/10本試験まで無料公開します。本試験以降はマガジンに統合されます。データベース設計だけ作ります。



Noteの目的

学習姿勢に共感/賛同頂ける方のお役に立てたら嬉しいです。

このNoteの目的は以下です。

  • 本試と同じように解く
    問題文を読みながら試験中の思考/作業をなぞります

  • 次回は8割以上正解したい
    正解すべき/失点止む無しの優先順を設けます

  • 未知問題への解決能力を育成したい
    多少の考察/攻略法を考えます

以下は考えていません。

  • ゼロから設計して同じ設計になるか

  • 実働の確認・運用効率の確認

このNoteは、以下のような方には合いません。

技術志向の大変高い方「自分だったらこう設計する」「実用考えたらこう設計する」など。「資格者は実務で使えない」「資格は実務に役立たない」など資格試験について懐疑的な方/合格戦略の洗練に抵抗感のある方。持論に反した場合、SNSに流布/批判たい方。専門学校/大学など教育機関に反感をお持ちの方。

私の力不足/役不足で、ご満足いただける解説はできません。大変申し訳ないですが、他サービスをご利用ください。

プライベート時間を全てつぎ込んで、Noteを一所懸命作成させて頂いています。好きで作っているのは確かですが、よそ様に否定される理由もないと考えております。

どうぞご理解下さい。Leave me alone, live without us.

このNoteは、資格に合格したい学生さん/社会人さん向けに作っています。私の独学合格と授業経験が少しでも良い効果になったら幸甚です。

宜しくお願い致します。




前半戦 | 基本に忠実に

前半戦は基本に忠実。

「問題文からエンティティ名, 項目名, 主キー」の記述を見つけてスキーマを完成させます。

20頁の「組織E」~「資材E」の6つは、問題文だけでスキーマ完成。

21頁の「金属材料E」~「梱包資材E」の4つは、問題文に少しノイズが入ります。スキーマやリレーションに関係のある記述だけを抜きし出し、ノイズは後で使うのに備えて◀印マーキングをします。>長文問題を読む6つのテクニックNote(3)



基本 | 問題文の「言葉」と「マーキング」

スキーマは、問題文の言葉に注目して作成できます。

まずは以下を身に着けて下さい、7割以上、解決します。

  • 【エンティティ名】「見出し」「主語」
    →四角囲み

  • 【項目名】「~をもつ」
    →四角囲み

  • 【主キー】「で識別」
    →丸囲み

  • 【複合主キー】「~ごと」
    →丸囲み

マーキングをすると、見返すのもスムーズです。>長文問題を読む6つのテクニックNote(3)

デスペ令和6年秋午後1問1の解説Noteより

以上のスキルは午後1の演習で培われます。もし習得していないなら、午後2は手を出さず、午後1を入念に演習してください。
>デスペ令和4年秋午後1問1の解説Note
>デスペ令和6年秋午後1問1の解説Note



【ア】組織E | 「階層構造」→自己参照

組織エンティティ。基本に忠実に。午後1を学習していたら、一発ですね。

自分自身にリレーションを返しました(自己参照)。

組織の上位/下位、社員の上司/部下、分類の大分類/中分類/小分類など「階層」が絡むと、上位/下位を指す主キーを外部キーとして設け、自分自身にリレーションを返す「自己参照」。

>ER図のパターンまとめNote

データベースには特徴的な繋げ方があるので、パターン例を知っておくと勘所が分かります。自己参照もですが連関エンティティも出てきます。>ER図のパターンまとめNote

パターンだけで全て解決、はしませんが、発想力に繋がります。パターンを見た経験が少ないと「え、そんな繋げ方ってアリだったんだ…」と勿体ないことに。経験を積みましょ。

>ER図のパターンまとめNote



「表記法」をザッと見ておく

今回の注意点。略称が指定されていました。問題文後のスキーマやリレーションの書き方なんていつも同じだから読まないので、これは罠でした。

ただし、組織スキーマを見た時に「Cって何だ?」と疑問を持ち、調べて気付くという経緯になりそう。作問者の「気づかせる」配慮かもしれません。

今後は注意書きにも変わった点がないか、軽くチェックせねばですね。特に問題文に付属されている場合は。

「表記ルール」の記載場所は、問1より前の3~5頁、必要あれば問中にも書かれます。今回は、問2中の24頁末~25頁。

大抵は毎度毎度同じことですが、「ER図の0, 1の〇●を明記するのか」「特異な書き方はないのか」など、ザッと確認した方が良いですね。

例えば今回は、2~3頁に「ER図の0, 1の〇●を明記する」旨が書かれて、問2中には「明記しない」旨が書かれています。解答のER図に「○●」を書いた/書かないで失点なんて愚かです。確認しましょ。



倉庫E

「倉庫E」も問題ありません。

ただし「7か所」とわざわざ書いているのが今後効くかもなので、◀印などマーキングをしておいてください。数値は計算問題で使うことも多いので、丸囲みして、いつでも情報を集められるように。>長文問題を読む6つのテクニックNote(3)

リレーションも確認します。

「組織Eー倉庫E」リレーションは既に書かれているので、本試験ではスキップしてOK。


ですが今は過去問演習なので確認。
2点。「1対多」になる点・倉庫側に外部キーを設定する点を見落とさない点に注意。1組織が持つ倉庫の数について明記はないですが、全社が倉庫1個(1対1)ずつなんてのは現実的にない、と判断。




柵E | 複合主キー→「1対多」の可能性大

「柵E」スキーマは完成しています。

もし空欄であっても問題文から完璧に作成できますね。

主キーが「倉庫C, 柵#」も複合主キーになってる点が見所。
「倉庫E」の主キーが単独「倉庫C」で「棚E」の主キーは「倉庫C」に「棚#」が追加され複合主キーになっているので、「1対多」

「注文ー注文明細」で、注文(注文番号)と注文明細(注文番号, 明細番号)と同じ考え方。>ER図のパターンまとめNote

>ER図のパターンまとめNote



資材メーカーE

「資材メーカーE」のスキーマは完成済み。

もし空欄でも問題文から完成可能。リレーションは、次々の節【イ】資材Eで考えます。



品目分類E

「品目分類E」も完成済み。

空欄であっても問題文から簡単に作れますね。リレーションは、次節【イ】資材Eで考えます。

なお資材には「4種類がある」から、金属材料E~梱包資材Eなど4つのエンティティ(スキーマ)を作るかもな、と推測できます。作るかどうかは、各種独自の項目の有無で判断します。独自項目がなければ作る必要ないですね。



【イ】資材E | 独自項目があるか

「金属材料E」~「梱包資材E」など4つのエンティティはER図に既に描かれてて、定義するのが既定路線。今後は各エンティティにどんな独自項目を入れるかが焦点。

「資材E」は中心的な役割。製品の出所/発注/納品/入庫などあらゆるエンティティ・トランザクション処理に絡んでくるでしょう。実際リレーションも多い。


周囲のエンティティの主キーを含んでいるかチェックして、外部キー化してリレーションを繋げるべきか考えます。

問題文から「資材E」内の2項目(資材メーカーC, 品目分類C)が「資材メーカーE」「 品目分類E」の主キーになっているので、外部キーに設定。

個数対応は問題文の明記を探し、なければ一般常識で考えます。

「品目分類Eー資材E」の個数対応は明記がないので一般常識で。1つの金属材料には色んな資材があるでしょうから「1対多」と判断。

「資材メーカーE」と「資材E」の個数対応は明記あり(2)②。各資材の製造元は「1社だけ」なので「資材メーカ」側は「1」確定。一般常識から、1社が複数種類の資材を製造するでしょうから、「資材E」側が「多」。

「多対多」はあり得ません。もしあれば必ず訂正する問題が出ます。「多対多」は間に「連関エンティティ」を設けて「1対多」に分離します。>ER図のパターンまとめNote

>ER図のパターンまとめNote



次は資材の各品目4種を詰めて行きます。空欄エ~キが用意されているので、独自の記録項目があるのは確定です。

【エ】品目分類Eの金属材料

1種類目。金属材料について。

問題なく2項目(規格Q, 金属仕様)見つけ、表1略称ルールに従って命名します。

「ロール」や「1メートル」「計量単位はキログラム」など、わざわざ特記あり。今後「ロール」項目があったり、単位が違うことで不具合があるかも。今は保留しつつも、いつでもアクセスできるように◀印マーキングをしておきます。>長文問題を読む6つのテクニックNote(3)



少しまとめ

3点纏めます。

  • 種類には「区分」を設けるはず
    例:「品目分類C」

  • 項目名を分かり易くアレンジ
    例:「品目C」を「金属資材品目C」

  • 保留には、◀印マーキング

3点を具体的に解説します。

1点目。分類→区分→主キーの引継ぎ、について。
資材は4種類あるので「区分」つまり「品目分類C」を設置。また
「金属材料E」の主キーは、「資材E」の主キー「品目C」を引き継いで構いません。新しく採番する必要もないので。

>ER図のパターンまとめNoteより

2点目。項目名は「金属材料品目C」にすると分かり易い。
おそらく「品目C」でも正解にしてくれるとは思います。ただし、他のエンティティで「金属材料品目C」と「樹脂材料品目C」を同時に使う場合、区別するために「品目C」だけでは失点するでしょう。アレンジ改名はした方が良いです。

3点目。「数量の±1%」「納入時」「報告書」などなど、今後エンティティや制限/不具合になりそうな記述があります。今は対処できないので、保留。いつでもアクセスできるように◀印でマーキング①①。>長文問題を読む6つのテクニックNote(3)



【オ】品目分類Eの樹脂材料

2種類目。樹脂材料について。

空欄オ埋めと、保留◀印マーキングは問題ないですね。
「品目分類E」の独自項目に「樹脂仕様」を設けるだけ。ペレット/バッグ/袋は今は対応できないので保留の◀印。



【カ】品目分類Eの薬品類

3種類目。薬品類について。

同じく空欄カ埋めと、保留◀印マーキングは問題ないですね。
「取扱注意事項」を独自追加。単位の「個」は保留。



【キ】品目分類Eの梱包資材

4種類目。梱包資材。

空欄キに「印刷サイズ」、保留◀印マーキングは問題なし。

模範解答を見ると、「納入LS」「納入LT」が不足していますが、後で出てきた時に追加します。21頁5⑥。

スキーマは一発で完成しないこともよくあります。後になって追加/改善する場合ですね。



ひとまとめ

ここから問題文がごちゃごちゃし始めるので、区切りとして、ここまでの完成状況をまとめます。

「問題文→スキーマ, リレーション」解法、「既述のリレーション→スキーマ」でほとんど正解できることが分かります。これぐらいは安定させてください。特段ミスる点はありません。





前半戦2 | 散らばった情報を搔き集める

引き続き、図1(スキーマ)と図3(ER図)の完成を進めます。

ここから問題文がゴチャつき始めます。マスター系(資材)とトランザクション系(発注)の記述が混じってくるので。

残りのスキーマ「定量発注品E」「総個別在庫E」「棚別在庫E」の記述をピックアップして完成させます。また今まで作成したエンティティに追加すべき記述が見つかったら対応。



【ウ】定量発注品E | 区分を設定しないこともあるのか

まずは「定量発注品E」のヒントを搔き集め。

スキーマに絶対書くべき項目を見出します。「これも書いとこう」と蛇足はしないで下さい。勘は「書いてて良かった」よりも「書かなきゃ良かった」の方が多いです。

「定量発注品E」のリレーション。

「定量発注品」は資材の一部(樹脂, 薬品)。「定期発注品」には「樹脂材料」「薬品類」が含まれる(2種類)あるので、△分類記号。

△分類したので、項目に「~区分」が必要なのが通常。下図左。

>ER図のパターンまとめNoteより

ですが、今回「区分」は不要な稀な例。

「資材Eー定量発注E」について。
「資材E」の「品目分類C」が「樹脂」or「薬品」なら「定量発注品」と呼ばれる。しかし「資材E」に「定量発注品区分」は要りません。既存の「品目分類C」で対応できますから。

「定量発注品Eー樹脂材料E, 薬品類E」について。既に「資料Eー樹脂材料E, 薬品類E」で分類済み。改めて「定量発注E」で分類する必要なし。
考えとして「樹脂材料,薬品類は、定量発注品の2種類」というより「~は資材4種類の2種類」。つまり「資材E」から4種類に△分類すれば充分で、特段「定量発注品」から「区分」を設ける必要なし。

「定量発注品E」に「品目分類C」を入れても支障はないですが、「資料E」に既にあるので第三正規形から外れてしまいます。「品目分類C」を変更する時に「資料E」と「定量発注品E」の両方の改訂が必要に。

今回の学びは、分類△で繋げたとしても「~区分」を設置しないケースもある、でした。でも大抵は「~区分」を設置して大丈夫です。今回が稀すぎ、午後2だからでしょう。午後1では機械的に「~区分」を設けてOK。



【ク】倉庫別在庫E

次は「倉庫別在庫E」。

スキーマ作成は問題ないですね。「~ごと」は複合主キーのキーワード。

リレーションも「倉庫E」「 資材E」の単独主キー(倉庫C, 品目C)が、倉庫別在庫Eで複合主キー(倉庫C, 品目C)になっているので、「1対多」。



【ケ】棚別在庫E | Eを辿り主キーを引き継ぐ

最後は「棚別在庫E」。

問題文に項目の明記がなく、「倉庫在庫E」の勢いで考えるしかなさそう。棚別在庫は、ある倉庫のある棚の在庫なので、「倉庫E」「柵E」「棚別在庫E」と辿りながら考えます。

「棚別在庫E」は「棚」の在庫状況なので「1対1」。よって主キーも引継ぎ。

在庫は品目と数なので「品目C」「棚別在庫Q」。
「棚別在庫Q」は在庫Qを分かり易くアレンジ、この後に倉庫在庫もあるので。「品目C」は「資材E」の主キーなので外部キー化。
1資材が複数の棚に保管されるのは常識的にありえるので「1対多」

問題文に明記がないので、理屈/常識/解釈(上図橙)で組み立てます。最後に、組み立てたスキーマが問題文の状況に反してないかは、ザッと確認(上図橙)。



梱包資材E | 追加情報に対応

「梱包資材」への追加情報があったので対応。

なお「取り決め」がなく「発注時に打ち合わせる」旨が書かれていれば、「発注E」か「保管条件付き発注E」に追加します。おそらく「保管条件付き発注E」でしょう。梱包資材だけの発注方式なので。22頁5⑥。

考察は本試験中には不要ですが、過去問演習の時に「もし条件が違ったら」と考えると良いかなと思っています。全く同じ問題/設計は出題されません、なので過去問演習が「同じ問題が出たら必ず正解」まででは不充分。似た問題/未知問題に対応する「本質的理解」の育成まで演習/復習を深めるのが重要です。そのためにNoteを書いてます。




前半戦のまとめ

図1スキーマが全て完成し、図3ER図も描いたので最終チェック。

解説は模範解答を知った上で作成しています。

本試験では最後に見落としや矛盾がないか確認してください。問題文からスキーマへの書き出しミスはないか、スキーマとER図に矛盾がないか(外部キーがあるのに繋がってないとか)を確認です。

ほぼ全てが問題なく得点できます。前半戦に稼げると合格点超えが楽ですね。後半戦は難しいでしょうから。

在庫数(在庫Q)は問題文に明記がありませんでしたが、在庫Eに在庫数を含めるのは当然。スキーマ作成は「問題文からの書き出し」で終わらず、そもそも何のためのE(表)なのかを意識しておきたい所。


リレーションは問題文から作成したスキーマのキーを見て、共通項目なら外部キー候補です。

リレーションを繋げる時、ある表の外部キーと別表の主キーの紐づけがメイン。ただし、主キーかつ外部キーの場合もあり。ある表の主キー(兼:外部キー)と別表の主キーが紐づく。



後半戦 | 基本に忠実に

後半戦はスキーマ/ER図の2回目の設計です。

データベース設計の出題で、2回目を設計/1回目の設計を改善するのはよくあるパターン。他は、スキーマ(表)への「権限」の設定など。

今回の後半戦。最初は基本通り+α。終盤は終盤らしく難しい。

基本+αまでを仕上げ、終盤もなるべく拾えば、8割超えになるでしょう。個人的にはリレーションはよく間違える/見逃すので、スキーマ書き出しが得点源になる印象です。



発注E | 隠れたリレーション(外部キー)を見逃さない

「発注E」は既に完成しています。問題文から作れますね。

問題文からでもリレーションからでも、発注に4種類あるのが分かります区分は「発注K」。

ただし「資材メーカーC」は明記がないので、自力で発想できるように。「在庫Q」系と同じ考え方。どこに発注するか、ですから。

ER図で繋げないので見逃しちゃいますね(マスター系とトランザクション系は繋がないので)。



次節からは、各発注方式で独自に記録すべき項目があるかを考えていきます。前半戦の各資材と同じく連戦。

【コ】発注の長期発注E | 項目名を軽くアレンジ

1つ目の「長期発注E」。

スキーマ作成に問題はありません。

単価は発注時に決まるので含めます。単価が変動しないなら、マスター系の「資材E」or「金属材料E」に入れ込むでしょうね。

「長期発注では、金属材料を対象」なので、「品目C」を「金属材料品目C」などにアレンジするのがベスト。

とはいえ「資材品目C」のままでも大丈夫かも。ただアレンジすると、見やすい理解しやすいですし、”資材と発注方式の関係をよく理解している”とアピールになります(作文ではないので理解をアピールする必要はないですが)。

項目名は、アレンジしなくても間違いでないとしても、アレンジした方が良いです。なぜなら模範解答はアレンジしてくるので、自己採点で「アレンジしなくても正解にしてくれるかなぁ」と結局不安になりますから。

とはいえ模範解答は「金属資材品目C」、なぜ「金属材料品目C」ではなくて「金属資材品目C」なんだろう。「資材E」の「品目C」を参照する意図かな。「金属資材品目C」でも「金属材料品目C」でも正解でしょう。



【サ】発注のスポット発注E

2つ目「スポット発注」。

「長期発注E」と同じ。全く問題ないコピペ解法なので終了。



【シ】発注の定量発注E | 目的を考えないと項目を見逃す

3つ目「定量発注」。

スキーマの処理目的を考えないと項目(倉庫Cと品目C)を見落としちゃいます。

2点注意点。「在庫Q」や「購入@」と同じく、明記がなくてもスキーマに組み込むようになりましょう。

1点目。
見落としちゃうのは「納入先倉庫C」。
5⑤「定量発注では、樹脂材料と薬品類を対象とし、倉庫内の在庫数量が基準在庫数量を下回った時点で一定量を発注する」なので、「倉庫別在庫E」から計算され、当該倉庫に納入/入庫されます。
よって外部キーとして含め「倉庫別在庫E」と紐づけ。

2点目。
「品目C」を、樹脂材料と薬品類なので「定量発注品目C」にアレンジ。
「定量発注品目C」は「品目C」でも正解になるとは思いますが、問題文に「定量発注品」と明記があるので、減点かも。実際「品目C」だと定量発注品(樹脂材料, 薬品類)以外の金属材料, 梱包資材を指定できる感も出ちゃいますし。



【ス】発注の保管条件付き発注E

最後の4つ目「保管条件付き発注」。

問題点なし。問題文にがっつり書かれています。「品目C」の「梱包資材品目C」へのアレンジも、他3種の資材と同じ。



【セ】発注の保管条件付き発注の検収E

「保管条件付き発注」に「検収」の記述あり、図4でも次のスキーマだったので続けて解きました。基本通りで問題なし。



【ソ】納入依頼の長期発注版 | 複合主キーが3つになった考察

全く問題なし。

7(2)①に少し記述があり「これだけだったら手間だなぁ」と思ってましたが、7(2)③に詳細あり助かりました。

主キーは「~を指定して」で機械的に設置。本試ではこれでOK。



なぜ複合主キーが3つになった

本試験では、主キーは「~を指定して」で機械的に設置で、問題ありません。しかし過去問演習なので考察をしてみます。

「長期発注E」が主キー1つ(長期発注#)で、「1対多」先の「長期発注納入依頼」が複合主キー3つ(長期発注#, 購入対象YM, 月内納入依頼#)なのが珍しいです。1つ→2つならよくあるのに、1つ→3つは珍しい


1つ→2つの件。通常の「発注ー発注明細」系なら、主キー1つ(発注#)と複合主キー2つ(発注#, 明細#)になりますからね。3個になるのは珍しい。

>ER図のパターンまとめNoteより

「長期発注E」の主キー「長期発注#」を引き継ぐのはOK。

7(2)②「月内に同じ納入先倉庫を複数回指定」なので、「長期発注ー長期発注納入依頼」は「1対多」。何か主キーを追加する必要あり。
おそらく「月内納入依頼#」が月内の連番と思われます(明細番号の役割)。


あとは「購入対象YM」の必要性。これは難しいです。下図のように「1対多」に増えるタイミングが2回あったのが、複合主キーが3個になった原因。

5②「長期発注では、~購入計画に基づいて、複数月にわたって毎月同じ量を納入してもらう」で「長期発注E」を解釈してみます。

「長期発注」の1行は、「納入開始YM」から「納入月数」経過するまで「金属資材品目C」を「購入@」だけ購入を継続。つまり「長期発注」の1行を、各月に展開するのが「購入対象YM」、さらに同月内で複数に分けて納品するために「月内納入依頼#」が明細として振られています。

繰り返しますが、本試験ではここまで考察しないで下さい。問題文に明記があれば、そのまま書き出してください。深く考えるものは他にあります。下手に考えを深めると、問題文の想定と乖離が発生してしまいます。



長期発注納入依頼Eのリレーション

トランザクション系エンティティ間のリレーションは、実際の業務の流れと関連します。発注→納入依頼→納入→入庫。

完成されたER図を見ても、発注から入庫まで繋がっているのが分かります。

長期発注E(主キー:長期発注#)、長期発注納入依頼(主キー:長期発注#, 購入対象YM, 月内納入依頼#)で、単独主キーと複合主キーになっているので「1対多」。

発注E(発注番号)ー発注明細E(発注番号, 明細番号)と考え方は同じ。

>ER図のパターンまとめNoteより




後半戦2 | 考察とアレンジが必要

いよいよラストスパート。

考えさせられる問題ばかりでした。



【タ】納入依頼の保管条件付き発注納入依頼

基本通り。

「発注#」は発注方式に合わせて、アレンジ改名「保管条件付き発注#」。

「納入依頼は発注に対して行い」より、主キーを「発注#」、かつ外部キーにして「発注E」or各「~発注E」とリレーションするんだ、と判断できます。



保管条件付きの発注/検収/納入依頼のリレーション

保管条件付き絡みが、3つ出揃ったのでリレーションを考えてみます。

キーに注目
保管条件付き発注E(保管条件付き発注#)
保管条件付き発注検収E(保管条件付き発注#)
保管条件付き発注納入依頼E(保管条件付き発注#, 納入先倉庫C, 納入依頼YMD)

保管条件付き発注E(保管条件付き発注#)と保管条件付き発注検収E(保管条件付き発注#)は、主キーが同じなので「1対1」

保管条件付き発注検収E(保管条件付き発注#)と保管条件付き発注納入依頼E(保管条件付き発注#, 納入先倉庫C, 納入依頼YMD)は、保管条件付き発注#と複合主キーなので「1対多」。複合主キー側が3つなのは珍しいですけどね(長期発注で解説/考察済み)。



【チ】長期発注納入E

基本通り。

「納入依頼ごと」より、「~納入依頼E」の主キーをそのまま受け継ぎ「1対1」対応とします。



【ツ】長期発注納入の明細E | 複合主キーにしなくて良い理由

「納入明細E」の主キーは複合主キーに。
なぜなら「納入ごとロールごとに~明細を記録する」なので、納入依頼の主キー「発注#」の複合主キー3つに1つ追加して、複合主キー4つにするのが通例です。

でも今回は違いました。これは難しい。複合主キーが4個になると思ったら、まさかの主キー1個に減りました。

模範解答は「ロール製造#」だけが主キー。「長期発注#, 購入対象YM, 月内納入依頼#」+「ロール製造#」の複合主キー(4個)ではない。

理由は「ロール製造番号」が「全ての金属材料」を「重複しない」で特定できるから、単独で主キーになるから。

長期発注の納入は複雑。
2(3)④:1日に12ロールまで、超えた分は翌日納入の旨より、納入が別日に分けられることがあり得る。
また保管(入庫)も3①一つの棚に1ロールずつ保管する旨より、1ロールずつ管理したい。

以上より、各ロールを特定できる「ロール製造#」が設けられ、明細の主キーになりました。



長期発注/納入依頼/納入/納入明細のリレーション

主キーに注目。

長期発注E(長期発注#)
長期発注納入依頼(長期発注#, 購入対象YM, 月内納入依頼#)
長期発注納入(長期発注#, 購入対象YM, 月内納入依頼#)
長期発注納入明細(ロール製造#)

長期発注Eと長期発注納入依頼は、主キーが1と3なので「1対多」。
長期発注納入依頼と長期発注納入は、主キーが同じなので「1対1」。

長期発注納入と長期発注納入明細は、「1対1」。明細の主キーがロール製造#に切り替わりましたが。主旨は、1納入に最大12ロール、納入明細で1ロール単位で記録したいので「1対多」。



【テ】【ト】スポット発注納入Eと明細E

「スポット発注納入E」は、問題文から完成できます。

「スポット発注明細E」も「長期発注納入明細」と同じく「ロール製造#」1個でOK。あとは「スポット発注E」の主キー2つを外部キーに設定。

※すみません「ロール明細#」が分かりませんでした。外部キーに設定されているのに、他のエンティティに「ロール明細#」が存在しません。



スポット発注/納入/納入明細のリレーション

主キーに注目。

スポット発注(スポット発注#)
スポット発注納入(スポット発注#, 納入YMD)
スポット発注納入明細(ロール製造#)

長期発注と同様に考えて。
スポット発注ースポット発注納入は「1対多」
スポット発注納入ースポット発注納入明細は「1対多」



【ナ】定量発注納入Eと明細E | 明細に直接繋げるのは珍しい

異色でした。

よくあるパターンは
「受注ー納入」が「1対1」
「発注ー発注明細」「納入ー納入明細」が「1対多」
「発注明細ー納入明細」が「1対多」「1対1」かは場合に依る

>ER図の個数対応Note
>ER図の個数対応Note


今回は「発注ー納入」ではなく「発注ー納入明細」で対応させてる点が珍しい。

問題文の「納入できる発注に対してまとめて納入」より、複数の異なる発注を「納入E」にまとめています。



【ニ】保管条件付き発注納入E | 「1対1」⇒主キーそのまま引き継ぎ

問題文から「1対1」が読み取れれば、主キーをそのまま流用すれば良いと考え至ります。



【ヌ】入庫E | 外部キーに設定して主キーにも使えるか考える

いよいよ4種類の発注から始まった納入を入庫していきます。

「入庫E」は、各発注法の情報を包括するので、各発注の納入の主キーに注目。

・金属材料ロール納入明細(ロール製造#)
・定量発注納入明細(定量発注#)
・保管条件付き発注納入(保管条件付き発注#, 納入先倉庫C, 納入依頼YMD)

「入庫E」は、以上全てを外部キーに持たねばなりません。
・「ロール製造#」はそのまま採用。
・「定量発注#」「保管条件付き発注#」は元々「発注#」なので統一。
・「納入先倉庫C」「納入依頼YMD」もそのまま採用。

あとは肝心の「入庫Q」を追加。

これで空欄ヌは埋まります。



入庫Eに主キー引継ぎをしなかった理由

入庫Eの主キーを考えます。

発注(発注番号)ー発注明細(発注番号, 発注明細)のような主キーの引継ぎで解決するのか。今までも発注や納入依頼でやってきましたよね。

しかし今回は無理です。

「ロール製造#」「発注#」「納入先倉庫C」「納入依頼YMD」で複合主キーをしても、各発注/納入で主キーが違いすぎるので、主キー制約違反になります。

例えば「定量発注E」の主キーは「定量発注#」のみなので、「発注#」だけは記録できますが、「ロール製造#」「納入先倉庫C」「納入依頼YMD」はNULL値なので、「入庫E」で主キー制約違反になります。

よって「入庫E」では独自に主キーを考えてあげる必要があります。

9①「入庫は納入を受けた当日中に行う」を解釈。色々納入されるんだけど、その日(納入YMD)に納入された全資材を、倉庫(倉庫C)の棚(棚#)に入庫する旨。よって(倉庫C, 棚#, 納入YMD)を主キーにしています。



入庫Eへの個数対応

入庫Eへのリレーションの個数対応を考えます。

24頁「入庫の方法」。9①「品目分類によって定まる保管方法に基いて」なので、各種保管方法を見て行きます。

22頁「資材の保管方法」。
3①「金属材料は、一つの棚に1ローズずつ保管する」
3②「金属材料以外は、一つの棚に~。ただし~保管している棚に空きがあれば、空いているところから保管し~」

3①より、1ロール→1柵→1入庫なので、「1対1」

3②より、ある日の納入が、余裕がある棚に別日納入品と一緒に保管され、入り切れなかったのが新しい棚に、のように複数棚に保管されるので「1対多」



全体のチェック

スキーマとER図の作成法を俯瞰してみます。

解き方も複雑なので一概には言えませんんが。

少なくとも前半戦よりも、「問題文→スキーマ(緑)」が減り、リレーション(青)やエンティティの目的(橙)及び第三正規形(赤)などを考慮した解き筋が多くなったのが分かるかと。

リレーション及び個数対応についても、問題文ではなく「完成させたスキーマのキー」と「問題文の条件」を考慮して判断するものがほとんどでした。

スキーマ作成に必要な情報も問題文の各所から搔き集める必要があり、リレーションを考えるタイミングも一層不定期になり、難易度を上げている印象です。

なかなか本試で気づかない/考察が及ばないものもあります。それでも基本解法を、コツコツと積み重ねて組み立てたスキーマ/ER図を、矛盾ない状態に仕上げていく路線は変わりません。



まとめ

お疲れ様でした!

本当は関数従属性を考えたり、実データを入れてテストすべきなんですが、2時間半では足りないです。問題文ベースで書きあげて仕上げるだけでギリギリです。

今回の私なりの学びは以下。

  • 表記ルールを一瞬見て、変わった点がないかチェック

  • 「区分」が不要な場合【イ】【ウ】

  • 「明細」で主キー追加しない場合【ツ】【ト】

  • 「発注E」と「納入明細E」が直接接続する場合【ナ】

  • 接続先Eの主キーを主キーに採用できない場合【ヌ】

やはり後半の難しい問題に多くの学びが集中しますね。

必ず午後1で基本スキルを身に付けてから、午後2を演習してください。午後1抜きでは太刀打ちできませんし、午後1だけでは午後2に太刀打ちできません。近道はないです。
>DB午前1の問題解説マガジン

個人的には、できるだけ多くのER図を見て、「こんな繋げ方があるのか」を経験値を溜めつつ、「この配置は繋がりそう」「このすき間はリレーション通すんだろうな」と少しでもセンスを磨ければ良いと考えてます。
>ER図のパターンまとめNote


今回の問題では、1つ目のER図はほぼ満点でいきたいです。スキーマは問題文から正確に書きだせるので、主キーに注目すればリレーション及び個数対応も正解できます。

2つ目のER図。失点はします。「ロール納入明細」「定量発注」は異色なので。また「入庫」も終盤でゴチャゴチャした後なのでいくつか間違うでしょう。

とはいえ、スキーマの多くは問題文からの書き出しで組み立てられるので、粘り強く点を拾っていきたいです。

スキーマ。
(3)が1つ目のER図。ほぼ満点でいきましょう。
(4)は前半は問題文から書き出しで充分取れます。「ロール製造#」や「納入」絡みでゴチャつきます。

部分的で良いので正解したいです。復習で7~8割まで高めてください。それ以上深追いするくらいなら、別過去問に取り組んでください。この問題は時間を置いて2回目して実力を確かめれば盤石です。


以上になります!

データベーススペシャリストに合格して下さいね!応援してます。

でわでわ▼

>14個のDB午前テーマ別解説Note
>DB午前問題の解説Note
>4ヶ月の勉強記録Note
>DB午前1の問題解説マガジン


ここから先は

0字

メンバーシップ ¥ 500 /月

■初月無料なので、お試しください。 ■私独自の理解法や詳しい分析を公開したいです。 ■根本を丁寧に見…

【初月無料】Iパス法律/SG/AP計算/DBとSC午後2

¥500 / 月
1ヶ月無料 人数制限あり

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ