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

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ウ
この表では、一つの受注に複数の商品が含まれるので、行を一意に決める基本的なキーは「受注番号と商品コード」の組です。一方、受注番号からは顧客コードと受注日が決まり、顧客コードからは顧客名が決まります。また、商品コードからは商品名と単価が決まります。これらの関数従属性を整理すると、「顧客」「商品」「受注」「受注明細」の4表に分ける必要があります。例えば、受注明細には受注番号、商品コード、受注数を置きます。受注金額は単価×受注数で計算できるため、通常は導出項目として扱えます。したがって、少なくとも4表となるウが正解です。
アの2表は誤りです。顧客、商品、受注という独立した情報を十分に分離できず、部分関数従属や推移的関数従属が残ります。
イの3表は誤りです。例えば顧客名を受注表に残すと、受注番号→顧客コード→顧客名という推移的関数従属が残るため、第3正規形になりません。
エの5表は誤りです。さらに細分化する設計は可能ですが、問われているのは必要となる最少の表数です。受注金額だけを独立した表にする必要はないので、最少数は5ではありません。
【ポイント】 第2正規形では複合キーの一部だけに依存する属性を分離し、第3正規形では非キー属性を介した依存を分離します。正規化問題では、まず「何が決まれば何が一意に決まるか」を矢印で整理すると判断しやすくなります。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前II 問6
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる