受注データの第3正規形への分解表数

与えられた非正規の受注テーブルに対し、関数従属性を分析して第3正規形(3NF)まで正規化を行う手順です。 【導出ステップ】: 候補キーの特定: 1回の注文で1つ以上の商品を注文できるため、表のタプルを一意に識別する主キー(候補キー)は「(受注番号, 商品コード)」の複合キーとなります。 関数従属性の整理: ・受注番号 $\rightarrow$ 顧客コード, 受注日 ・顧客コード $\rightarrow$ 顧客名 ・商品コード $\rightarrow$ 商品名, 単価 ・(受注番号, 商品コード) $\rightarrow$ 数量(※受注金額は 単価 $\times$ 数量 の計算派生項目) 第2正規化(部分関数従属の排除): 主キーの一部に関数従属している属性を別表に分離します。 ・受注番号 $\rightarrow$ 顧客コード, 顧客名, 受注日 より「受注」表 ・商品コード $\rightarrow$ 商品名, 単価 より「商品」表 ・主キー全体に従属する「(受注番号, 商品コード, 数量)」の「受注明細」表 第3正規化(推移的関数従属の排除): 「受注」表において、受注番号 $\rightarrow$ 顧客コード $\rightarrow$ 顧客名 という推移的関数従属が存在するため、「受注(受注番号, 顧客コード, 受注日)」と「顧客(顧客コード, 顧客名)」に分離します。 「商品」表および「受注明細」表には推移的関数従属は存在しません。 以上より、第3正規形では以下の 4 つの表に分割されます: 1. 顧客(顧客コード, 顧客名) 2. 受注(受注番号, 顧客コード, 受注日) 3. 受注明細(受注番号, 商品コード, 数量) 4. 商品(商品コード, 商品名, 単価)

次の表に対して,第3正規形まで正規化を行った場合,少なくとも幾つの表に分割されるか。ここで,顧客の1回の注文に対して一つの受注番号が割り当てられ,顧客は1回の注文で一つ以上の商品を注文できるものとする。

受注番号

顧客コード

顧客名

受注日

商品コード

商品名

単価

数量

受注金額

1055

A7053

鈴木電気

2025-07-01

T035

テレビA

85,000

10

850,000

1055

A7053

鈴木電気

2025-07-01

K083

無線スピーカーA

23,000

5

115,000

1055

A7053

鈴木電気

2025-07-01

S172

Blu-rayプレイヤーB

78,000

3

234,000

2030

B7060

中村商会

2025-07-03

T050

テレビB

90,000

3

270,000

2030

B7060

中村商会

2025-07-03

S172

Blu-rayプレイヤーB

78,000

10

780,000

3025

C9025

佐藤電気

2025-07-03

T035

テレビA

85,000

3

255,000

3025

C9025

佐藤電気

2025-07-03

K085

無線スピーカーB

25,000

2

50,000

3025

C9025

佐藤電気

2025-07-03

S171

Blu-rayプレイヤーA

50,000

8

400,000

3090

B7060

中村商会

2025-07-04

T050

テレビB

90,000

1

90,000

3090

B7060

中村商会

2025-07-04

T035

テレビA

85,000

2

170,000

出典令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問6
ア
2
イ
3
ウ
4
エ
5