DBデータベーススペシャリスト試験 午前Ⅱ
平成27年度春期 データベーススペシャリスト 午前Ⅱ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- ア正規化は行われていない。
- イ第1正規形まで正規化されている。
- ウ第2正規形まで正規化されている。
- エ第3正規形まで正規化されている。
解き方のヒントを見る
属性と識別範囲を見極める視点
受注データの関係を考えるときは、各属性が表す対象と識別の範囲を切り分け、同じ値が現れる可能性や組合せによる意味の変化を落ち着いて確認しましょう。
この問題で問われていること
一つの属性だけで対象を区別できるのか、それとも複数の属性を合わせて初めて区別できるのかという、識別単位に注目して選択肢を読み比べます。
視点
属性の役割を、値そのものではなく、どの対象をどの範囲で区別するために使う情報なのかという観点から整理します。
確認ポイント
- 属性が表す対象と識別の範囲が一貫しているか
- 単独の値と組合せの値を混同していないか
- 同じ属性が別の対象にも現れる可能性を考慮しているか
正解と解説を見る
正解
イ
解説
この表は各欄が原子値で構成されているため第1正規形を満たす。一方、受注番号だけで決まる属性があり、さらに商品コードを介した従属もあるため、第2正規形および第3正規形には達していない。
理由
各行の値は一つの受注日、受注番号、得意先コード、項番、商品コード、数量、単価からなり、繰返し項目や一つの欄に複数の値はない。したがって第1正規形の条件を満たす。候補キーを(受注番号,項番)と考えると、受注番号だけで受注日と得意先コードが決まるため、キーの一部への部分関数従属が残る。
比較
また、単価は商品コードによって一意に定まるので、候補キーから商品コードを介して単価へ至る推移的関数従属もある。これは第3正規形に関係する問題であり、第2正規形違反の主因は受注番号だけへの部分関数従属です。よって該当する段階は第1正規形までです。
選択肢ア
これは不正解だよ。表の各行は、受注日、受注番号、得意先コード、項番、商品コード、数量、単価という原子値で構成されている。繰返し項目や、一つの欄に複数の値を格納している記述もないため、第1正規形の条件を満たし、正規化が行われていないとはいえない。
選択肢イ(正解)
これは正解だよ。各属性が原子値なので第1正規形を満たす。一方、候補キーを(受注番号,項番)とすると、受注番号だけで受注日と得意先コードが決まり、キーの一部への部分関数従属が残る。また単価には商品コードを介した従属があるため、これより上の正規形には達していない。
選択肢ウ
これは不正解だよ。第2正規形では、複合候補キーの一部だけに属性が従属してはいけない。しかしこの表では、受注番号だけで受注日と得意先コードが決まるため、部分関数従属が残っている。単価が商品コードで決まることは主に推移的関数従属の論点であり、第2正規形を満たす根拠にはならない。
選択肢エ
これは不正解だよ。第3正規形に達するには、候補キーから非キー属性を介して別の非キー属性へ至る推移的関数従属も解消する必要がある。この表では単価が商品コードによって決まり、商品コードを介した従属がある。さらに受注番号だけへの部分関数従属も残るため、第3正規形ではない。
学習のポイント
部分関数従属と推移的関数従属を区別して正規形を判定する。
出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 データベーススペシャリスト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針