データベーススペシャリスト試験 令和5年度 秋期 午前II 問8
次の表を、第3正規形まで正規化を行った場合、少なくとも幾つの表に分割されるか。ここで、顧客の1回の注文に対して1枚の受注伝票が作られ、顧客は1回の注文で一つ以上の商品を注文できるものとする。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ウ
主キーは「受注番号、商品コード」の組です。画像から、受注番号によって顧客コードと受注日が決まり、顧客コードによって顧客名が決まります。また、商品コードによって商品名と単価が決まり、受注番号と商品コードの組によって受注数と受注金額が決まります。例えば受注番号1055の商品T035では、85,000×10=850,000となっています。
第3正規形まで正規化すると、「顧客(顧客コード、顧客名)」、「受注(受注番号、顧客コード、受注日)」、「商品(商品コード、商品名、単価)」、「受注明細(受注番号、商品コード、受注数、受注金額)」に分けられます。したがって、表数は1+1+1+1=4です。受注金額を単価×受注数として都度計算し、受注明細に保存しない設計でも、必要な表数は4のままです。
アの2表は誤りです。受注と明細だけでは、顧客コードから顧客名への推移的関数従属や、商品コードに対する商品名と単価の部分関数従属を除去できません。
イの3表は誤りです。顧客表又は商品表の一方を分離しない構成となり、顧客情報の推移的関数従属か商品情報の部分関数従属のいずれかが残ります。
エの5表は誤りです。第3正規形にするために必要な独立した管理対象は、顧客、受注、商品、受注明細の四つです。受注金額は受注明細の属性又は計算値であり、単独の表に分ける必要はありません。
【ポイント】 ・複合主キーの一部だけで決まる属性を分離すると、第2正規形になります。 ・非キー属性を経由して決まる属性を分離すると、第3正規形になります。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問8
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる