令和5年度 秋期 データベーススペシャリスト試験 午前II 問8
2025年6月30日
【問題8】
次の表を、第3正規形まで正規化を行った場合、少なくとも幾つの表に分割されるか。ここで、顧客の1回の注文に対して1枚の受注伝票が作られ、顧客は1回の注文で一つ以上の商品を注文できるものとする。
【解説】
設問の表は既に第1正規形を満たしていると仮定します。次に、第2正規化と第3正規化の手順を考えます。
1. 第2正規化 (2NF)
主キーの一部に関数従属する属性(部分関数従属)を別の表に分離します。
– 受注番号 → 顧客コード、顧客名、受注日
– 商品コード → 商品名、単価
これにより、以下の3つの表に分割されます:
– 受注表: 受注番号、顧客コード、顧客名、受注日
– 商品表: 商品コード、商品名、単価
– 受注明細表: 受注番号、商品コード、数量
2. 第3正規化 (3NF)
非キー属性に関数従属する属性(推移的関数従属)を別の表に分離します。
– 顧客コード → 顧客名
これにより、以下のように表を再編成します:
– 受注表: 受注番号、顧客コード、受注日
– 顧客表: 顧客コード、顧客名
– 商品表: 商品コード、商品名、単価
– 受注明細表: 受注番号、商品コード、数量
結果として、4つの表に分割されます。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問8