スポンサーリンク

問題の解答・解説ページ

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

この問題をクイズ形式で解く
問題 No.2726
関係データベースの正規化の過程において、第2正規化を完了したリレーションに対し、さらに非キー属性間の推移的関数従属を排除して、主キーに対してのみ直接依存するようにテーブルを分割するプロセスとして、最も適切なものはどれか。

【正解の解説】

第3正規化

「AならばB、BならばC」という関係性があるとき、Aが決まればCも決まるという間接的なつながりを断ち切り、すべての項目が主キーという絶対的な親分に直接従うようにテーブルをきれいに片付ける作業です。会社組織でいえば、直属の部長にだけ報告すればいいのに、間に別の課長を挟んで伝言ゲームをしているような無駄を省き、データをスッキリさせるイメージです。

スポンサーリンク

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

第1正規化

問題文にある「推移的関数従属の排除」ではなく、ひとつのセルに複数のデータが入っているような状態(配列のようなデータ)をバラして表の形を整える最初のステップです。初学者は正規化のステップ番号と作業内容がごちゃ混ぜになりやすいため、第1は「形の整備」、第2は「部分関数従属の排除」、第3は「推移的関数従属の排除」と順番に整理して覚える必要があります。

ボイス・コッド正規化

第3正規化よりもさらに厳格な条件を課すものであり、主キーの一部が別の非キー属性に依存しているような複雑なケースを解消するためのステップです。基本情報技術者試験などでは第3正規化が問われることが多いため、名前の響きがカッコいいボイス・コッドと混同しないよう、それぞれの条件の違いをしっかりと区別して覚えることが重要です。

第4正規化

推移的関数従属を対象とする第3正規化とは異なり、ひとつの主キーに対して独立した複数の値のセットが多対多でぶら下がっている状態を解消するためのものです。初学者は正規化のレベルが上がると名前も難しくなるため混乱しがちですが、第4正規化は「多値従属」、第3正規化は「推移的関数従属」というように、それぞれのステップがどの依存関係をターゲットにしているのかをキーワードで紐付けて記憶しましょう。