スポンサーリンク

問題の解答・解説ページ

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

この問題をクイズ形式で解く
問題 No.2492
関係データベースの正規化のプロセスや各正規形の定義に関する記述として、不適切なものはどれか。

【正解の解説】

第1正規化を行ったリレーションにおいては、すべての非キー属性が主キーに対して部分関数従属している状態が維持される。

第1正規化は、Excelのセルに複数行のデータやカンマ区切りの値が入っているような「ごちゃっとした状態」を綺麗に整理し、1つのセルには1つの値だけを入れるアトミックな状態にする作業です。問題文にある「部分関数従属の排除」は第1正規化ではなく、次のステップである第2正規化の役割となるため、この記述は不適切であり正解となります。

スポンサーリンク

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

第2正規化を行ったリレーションにおいては、主キーの一部に対する非キー属性の部分関数従属がすべて排除されている。

例えば「社員IDと商品ID」が主キーの場合、「商品名」は商品IDだけで決まってしまいます。このように主キーの一部だけで決まるデータを別の表に切り出すのが第2正規化です。問題文の選択肢Aはこの第2正規化で行うべき処理を第1正規化の記述として混同させているため、本選択肢の内容こそが正規化プロセスの正しい定義となります。

第3正規化を行ったリレーションにおいては、主キー以外の属性間における推移的関数従属がすべて排除されている。

「社員IDから部署IDが決まり、部署IDから部署名が決まる」というように、主キーを介さずに非キー属性同士が依存し合っている状態を解消するのが第3正規化です。データ更新時の矛盾(同じ部署名なのに一部だけ書き換えてしまう等)を防ぐための重要なステップであり、記述内容としても完全に正しいものとなります。

ボイス・コッド正規化を行ったリレーションにおいては、すべての関数従属の決定子が候補キーである状態が維持される。

通常の第3正規化では防ぎきれない、候補キーが複数存在しそれらが複雑に絡み合うアノマリーを解消するための上位の正規化です。決定子となる列は必ずテーブルをユニークに特定できる候補キーでなければならないという厳格なルールを課すため、この記述はボイス・コッド正規化の定義として正確なものとなります。