スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.1931
関係データベースの正規化において、主キーが2つ以上の属性から構成される複合主キーである場合、第2正規化の段階で排除されるものはどれか。

【正解の解説】

複合主キーの一部に対して非キー属性が従属している部分関数従属

例えば「社員IDとプロジェクトID」というコンビのペアが主キーなのに、「社員IDだけで名前が分かる」という状態がこれにあたります。これは相棒の一方だけで情報が決まってしまう無駄な状態です。学校の班で、班長二人で決めたはずなのに、片方の機嫌だけでルールが変わるような矛盾を防ぐために、第2正規化ではこの部分的な依存をスッキリ切り離してデータを綺麗に整理します。

スポンサーリンク

【その他の選択肢の解説】

非キー属性同士の間に存在する推移的な関数従属

主キーから普通の属性Aが決まり、さらにその属性Aから別の属性Bが決まるという、間接的なつながりのことです。「A→B→C」のような伝言ゲーム状態を解消するのが第3正規化です。第2正規化の「複合主キーの一部に対する依存」とはターゲットが違うため、初学者は混同しやすいので注意しましょう。

リレーション内の全ての属性間における多値関数従属

1対多の関係が1つのテーブル内に独立して複数存在するときに、データが重複して膨れ上がる現象を解消する高度な正規化です。主キーと他の属性の関係を整える第2正規化とは異なり、属性同士の独立した複数の値の組み合わせを整理するアプローチなので、段階の違いをしっかりと区別して覚える必要があります。

主キー以外の候補キーに対する非キー属性の関数従属

主キーではないけれどもキーになり得る「候補キー」に属性が従属しているケースを対象としています。第2正規化はあくまで「複合主キーの一部」に焦点を当てていますが、こちらは候補キー全般を厳しくチェックするさらに先のステップのルールとなるため、正規化の順番と対象をセットで理解しておきましょう。