過去問解きまくり研究所 ホーム

令和5年度 秋期 午前Ⅱ 問8

データベース設計

第3正規形に関する問題

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

受注番号顧客コード顧客名受注日商品コード商品名単価受注数受注金額
1055A7053鈴木電気2023-07-01T035テレビA85,00010850,000
1055A7053鈴木電気2023-07-01K083無線スピーカーA23,0005115,000
1055A7053鈴木電気2023-07-01S172Blu-rayプレイヤーB78,0003234,000
2030B7060中村商会2023-07-03T050テレビB90,0003270,000
2030B7060中村商会2023-07-03S172Blu-rayプレイヤーB78,00010780,000
3025C9025佐藤電気2023-07-03T035テレビA85,0003255,000
3025C9025佐藤電気2023-07-03K085無線スピーカーB25,000250,000
3025C9025佐藤電気2023-07-03S171Blu-rayプレイヤーA50,0008400,000
3090B7060中村商会2023-07-04T050テレビB90,000190,000
3090B7060中村商会2023-07-04T035テレビA85,0002170,000
答えと解説を見る

✓ これが正解ウ4

解説

受注・顧客・商品・受注明細の4つの表に分割されます。

主キーは受注番号と商品コードの組です。ここから従属を整理します。受注番号だけで顧客コード、顧客名、受注日が決まり、商品コードだけで商品名と単価が決まるので、これらは主キーの一部への部分関数従属です。受注数と受注金額は、受注番号と商品コードの組で初めて決まります。部分関数従属を切り出すと、受注(受注番号,顧客コード,顧客名,受注日)、商品(商品コード,商品名,単価)、受注明細(受注番号,商品コード,受注数,受注金額)の3表になり、これが第2正規形です。さらに受注の中に、顧客コードから顧客名が決まる推移的関数従属が残るので、顧客(顧客コード,顧客名)を切り出します。こうして4表になります。部分従属で分け、次に推移従属で分ける、の2段階で数えるのが手順です。

ほかの選択肢はなぜ違うのか

出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問8

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)