ホーム > データベーススペシャリスト試験 > 2019年
データベーススペシャリスト試験 2019年 午前2 問08
第3正規形において存在する可能性のある関数従属はどれか。
ア:候補キーから繰返し属性への関数従属
イ:候補キーの真部分集合から他の候補キーの真部分集合への関数従属(正解)
ウ:候補キーの真部分集合から非キー属性への関数従属
エ:非キー属性から他の非キー属性への関数従属
解説
第3正規形における関数従属の解説
正規化の概要
データベース設計において正規化は、データの冗長性を減らし、更新異常を防ぐために行われます。正規化は複数の段階(正規形)に分けられ、各段階で取り除かれる関数従属の種類が異なります。
選択肢の分析
第3正規形における関数従属の特徴
- 第3正規形 (3NF) は「非キー属性が他の非キー属性に推移的に依存しない」ことを要求します。
- つまり、非キー属性間の関数従属(選択肢エ)は許されません。
- また、「候補キーに部分的に依存する非キー属性(部分関数従属)」(選択肢ウ)も2NFの違反になるため、3NFでは存在しません。
- 一方で、候補キーの真部分集合から他の候補キーの真部分集合への関数従属(選択肢イ)は許される場合があります。これはキー属性同士の依存関係であり、3NFの定義で禁止されていません。
まとめ
- 選択肢イが正解である理由は、候補キー同士の関数従属は第3正規形で問題とされないためです。
- 他の選択肢はそれぞれ「繰返し属性(1NF違反)」、「部分関数従属(2NF違反)」、「推移的関数従属(3NF違反)」に該当するため第3正規形では存在しえません。
参考:キーと関数従属の記号表現
- 候補キーの真部分集合を 、他の候補キーの真部分集合を 、
- 非キー属性を とすると、
以上の理由から、第3正規形で存在可能な関数従属は「イ: 候補キーの真部分集合から他の候補キーの真部分集合への関数従属」となります。