スポンサーリンク

問題の解答・解説ページ

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

この問題をクイズ形式で解く
問題 No.1972
関係データベースの正規化における「ボイス・コッド正規形(BCNF)」の定義として、最も適切なものはどれか。

【正解の解説】

リレーション内のすべての関数従属において、決定子がすべて候補キーである状態になっている。

学校のクラス名簿で例えるなら、「出席番号」が分かれば「氏名」が必ず決まる関係性を作ることです。決定子という「矢印の出し手」が、必ずテーブルの中で一意にデータを特定できるスーパースター(候補キー)だけで構成されている状態を指します。これにより、データの矛盾や不整合が一切起きない完璧な状態を作り上げることができます。

スポンサーリンク

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

リレーション内のすべての非キー属性が、主キーに対して完全関数従属している状態になっている。

初学者がボイス・コッド正規形と混同しやすいポイントです。選択肢Bは第2正規形を説明しており、主キーが複数の列で構成されている場合に、その一部だけに依存しているデータを切り離す段階です。BCNFは第3正規形よりもさらに厳格な条件を課すものなので、この説明では条件が緩すぎます。

リレーション内のすべての多値従属が排除され、情報が無損失で分解できる状態になっている。

正規化のステップを混同させるための典型的な罠の選択肢です。多値従属とは「1人の社員が複数の資格と複数の言語を独立して持っている」ような状態を指し、これを解消するのは第4正規形の役割です。BCNFが扱うのは「関数従属」のルールなので、多値従属の話が出てきた時点で対象外となります。

リレーション内のすべての関数従属において、従属子がすべて候補キーである状態になっている。

関数従属の「矢印の向き」を意図的に逆にして受験者を混乱させるための巧妙な誤答選択肢です。データベースの正規化では「何をキーにして(決定子)、何が決まるか(従属子)」という方向性が命であり、矢印の出し手である決定子こそが候補キーでなければならないため、この記述は完全に逆になります。