猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

IPA データベーススペシャリスト試験 平成31年度 午後I 問1 解説

f:id:yoshiki_utakata:20201015234828j:plain

設問1、設問2は、問題文を読みながら埋めていくのが良い

2.顧客

(2) 設置事業所

  • 顧客コードと設置事業所コードで識別するので、e は 顧客コード(実線)
    • 識別するので主キー
    • 設置事業所は、顧客コードだけでは識別できないので、一つの顧客コードに対して複数の設置事業所がある
    • ER図に 顧客 --> 設置事業所 を追加
  • 住所を元にした地域コードを登録するので、f は 地域コード(点線)
    • 地域コードは外部キー
    • ER図に 地域 --> 設置事業所 を追加

3. 組織

(3) 組織区分で分類する、とあるので a は 組織区分。外部キーでも主キーでもなんでもない。

(4) 地域ごとに担当SCを決めているので、一つの地域に対して一つのサービスセンタがある。逆の制約は無い。

  • b は SC組織コード(点線) になる
    • SC組織コードか、営業所組織コードは明確に区別しろと問題文にあるので注意
    • ER図に サービスセンタ --> 地域 を追加

4. 営業担当者

(2) 営業担当者はいずれか一つの営業所に所属するので、c は 営業所組織コード(点線)

  • ER図に 営業所 --> 営業担当者 を追加

5. 商品

商品の部分は、設問2とか変わってくるので、設問と比べながら読んでいくと良い

設問2(1)のために、5.商品を読んでいく

  • 5.(2)を読むと、「商品には、製品と設置サービスがあり、商品区分で分類する」とあるので、商品区分は商品の属性
  • 5.(3)① 製品には、単体製品とセット製品があり、単体セット製品区分で分類する、とあるので、単体セット製品区分は製品の属性
  • ②単体製品には、製品サイズを登録するので、製品サイズは単体製品の属性
  • 5.(4)①単体製品には本体製品とオプション製品があり、製品区分で分類するので、製品区分は単体製品の属性
  • ②本体製品にはシリーズコードを登録するので、シリーズコードは本体製品の属性
  • ③オプジョン製品にはオプション区分がある
  • 5.(5)セット製品は一つの本体製品があるので、セット製品本体製品商品コードは、本体製品の属性
  • 5.(6)製品ごとにどの設置サービスを適用するか決めているので、設置サービス商品コードは製品の属性 さらに、設置サービスには標準設置時間を登録する

設問2(2) のために、もう一度 5.商品 を読んでいく

  • (2) 商品には製品と設置サービスがある
    • 「設置サービス」だけ無いので追加
    • 商品 -- 設置サービス、商品 -- 製品 の親子関係を追加
  • (3) 製品には、単体製品とセット製品がある
    • 製品 -- 単体製品、製品 -- セット製品 の親子関係を追加
  • (4) 単体製品には、本体製品とオプション製品がある
    • 単体製品 -- 本体製品、単体製品 -- オプション製品、の親子関係を追加
  • (5) セット商品は一つの本体製品がある。逆の制約は無いので、本体製品 --> セット製品 になる
    • さらに、セット製品には複数のオプション製品が組み合わさるので、セット製品と、オプジョン製品は n:n になる。そこで、「セット製品構成」という中間テーブルを用意している オプション製品 --> セット製品構成 <-- セット製品 のようになる (6)製品ごとにどの設置サービスを適用するか決めている。逆の制約は無いので 設置サービス --> 製品

また元の関係スキーマとER図に戻る。

6. 見積り

(2) から、 g 顧客コード(点線) h 担当営業所組織コード(点線) i 営業担当者社員番号(点線)

  • ER図に 見積 <-- 顧客, 見積もり <-- 営業所, 見積もり <-- 営業担当者 を追加

7. 受注

(2) から、該当する見積もり番号を登録するので、j 見積り番号(点線)

  • さらに、(1) で、見積もりと同じ単位で受注登録を行う、とあるので、見積もりと受注は 1:1 の関係である
    • ER図に 見積 -- 受注 を追加

(3) 受注明細は、設置事業所を登録するが、設置事業所のキーは 顧客コード, 設置事業所コード である。

  • 関係スキーマには「顧客コード」が無いので、k は顧客コード(点線)
  • ER図の方には、受注明細 <-- 設置事業所 がすでに書いてあるので、受注明細と顧客の間の線は不要であることに注意

設問3

(1)

出荷指示の追加(2) にあるとおり、出荷指示(出荷指示番号(実線), 出荷指示年月日) となる 注文明細に対応する出荷指示があるが、複数の受注明細が一つの出荷指示にまとめられることもある。受注明細に、対応する出荷指示番号の属性を追加すれば良い。

(2)

関係スキーマなどから、受注明細内訳には、商品コードを登録するようになっていることがわかる。 商品には、設置サービスも含まれるため、設置サービスの場合は出荷が不要である。 6ページ 5.商品 の (2) に書いてあるとおり、出荷するのは製品のみである

また、 8ページ一番上の②にあるとおり、セット製品の受注場合、セット製品を構成する単体製品に展開して、それぞれの単体製品を登録しつつ、セット製品の商品コードも登録する。 このため、セット製品の場合は、展開した商品に対して出荷指示をする必要があって、セット製品自体には実態が無いので、セット製品に対しては出荷指示ができない。