6.2 【設問】受発注~入出荷

6.2 【設問】受発注~入出荷

受注してから出荷、発注してから入荷までの詳細ER図は、以下の項目に分けてアプローチします。
項目 業務内容または要求仕様
6.2.1 受注~出荷/売上 例題9 出荷/売上の正規化をする
6.2.2 出荷/売上エンティティの見直し 例題10 出荷/売上の属性を見直す
6.2.3 発注~入荷/仕入 例題11 発注、入荷/仕入エンティティの正規化をする
6.2.4 倉庫、入出庫エンティティの検討 例題12 倉庫、入出庫エンティティの分析をする
6.2.5 在庫エンティティの分析 例題13 在庫エンティティの分析をする

表6-3 受発注~入出荷に関する設問

6.2.1 受注~出荷/売上

例題9 出荷/売上の正規化をする

現状の受注・受注明細エンティティの属性、ER図を見て、続く問題に答えなさい。
受注
* 受注注文番号    
  客先注文番号    
  受注日付    
  受注顧客コード (FK1)  
  出荷先顧客コード (FK2)  
  受注社員コード (FK3)  
  値引き承認社員コード (FK4)  
  受注部門コード (FK5)  
  営業値引き承認フラグ    
  営業値引き理由    
  営業値引き非承認理由    
  値引き詳細番号 (FK6)  
  消費税額 (導出)  
  税抜受注金額合計 (導出)  
  キャンセルフラグ    
  摘要    
 
スーパータイプ:受注明細
* 受注注文番号 (FK1)  
* 商品コード (FK2、FK3)  
* 客先希望納期日付    
  価格種別コード (FK3)  
  商品価格適用開始日 (FK3)  
  営業値引き承認フラグ    
  営業値引き理由    
  営業値引き非承認理由    
  値引き詳細番号 (FK4)  
  消費税額 (導出)  
  税抜金額 (導出)  
  予定納期日付    
  受注数量    
  変更後最終受注数量    
  キャンセルフラグ    
  ステータス    
 
サブタイプ:在庫引当
* 受注注文番号 (FK1)  
* 商品コード (FK1)  
* 客先希望納期日付 (FK1)  
* 倉庫コード (FK2)  
  引当数量    
 
サブタイプ:発注分
* 受注注文番号 (FK1)  
* 商品コード (FK1)  
* 客先希望納期日付 (FK1)  
* 発注注文番号 (FK2)  
  発注商品コード (FK2)  
  不足分数量    

「出荷/売上」エンティティも、「受注」エンティティと同様、正規化をしてみましょう。
出荷伝票をもとに、ヘッダ的なエンティティと明細エンティティに分けることができます。

出荷伝票は、1枚の受注伝票の中で、出荷日が同じ「受注明細」データをまとめて1枚の伝票をおこしています。
「出荷/売上」伝票のヘッダでは、受注注文番号、売上番号、顧客情報、出荷日などの情報を管理しています。
一方、「出荷/売上明細」は、同じ受注の中で出荷日が同じ各「受注明細」に対応した出荷明細情報を管理します。

なお、現在出荷業務で使用している出荷伝票は以下のとおりです。

問題

上記伝票を確認して、「出荷/売上」エンティティで管理すべき属性を抽出し、「出荷/売上」エンティティを正規化してください。

ヒント

「受注」の各オカレンスと「出荷/売上」の各オカレンスのリレーションを検討してください。
また、「受注明細」のオカレンスに対して、「出荷/売上明細」オカレンスのリレーションはどう定義できるかを検討してください。

「受注」エンティティで定義した属性は、「出荷/売上」エンティティで定義する必要はありません。

解答

出荷/売上
* 出荷売上番号    
  出荷売上日付    
  受注注文番号 (FK1)  
  消費税合計 (導出)  
  出荷/売上金額合計 (導出)  
 
出荷/売上明細
* 出荷売上番号 (FK1)  
* 商品コード (FK2、FK3)  
  受注注文番号 (FK3)  
  客先希望納期 (FK3)  
  消費税 (導出)  
  税抜金額 (導出)  

解説
(注:番号は解答中の番号と対応します。番号が記載されていない解説は、全体に当てはまります)

  1. 「受注」1オカレンスに対して、納期が異なる複数の「出荷/売上」オカレンスが対応するため、1対多のカーディナリティになります。 また、「出荷/売上」は、必ず「受注」を経て実施される、という前提にたてば、「受注」側のオブショナリティは、必須となります
  2. 01.と同様、受注の後に出荷されるという前提に立てば、「出荷席上明細」の1オカレンスに対して、「受注明細」オカレンスは必ず1対応します
  3. 「出荷/売上」と「出荷/売上明細」のリレーションは、「受注」と「受注明細」と同じく、1対多で、ライフサイクルがまったく同じ、依存関係にあります
  4. 「出荷先顧客」は「受注」で管理しているため、「出荷/売上」で改めて管理する必要はありません
  5. 「社員」へのリレーションは、検品および出荷印を押す社員という意味です 出荷伝票を作成した時点ではまだこの社員の印は押されていないため、「社員」側のオブショナリティは任意です

< 前へ | 6.2 【設問】受発注~入出荷 | 次へ >

解説トレーナー

Oracle / 上流工程 担当 中村 才千代

データベース設計、システム構築の上流~下流工程全般のインストラクターです。SE時代の経験を生かし「業務を知るエンジニアこそDB設計に関わるべき」「DB設計に携わるエンジニアは業務を知る人に知恵を貸してもらう」ことを伝えたいと思っています。

■認定・受賞

2000年 Oracle University「Best Instructor of the Year」受賞
2002年 Oracle University「Best Instructor of the Year」受賞

Page Top