データベース

基本情報技術者試験正規化」の問題

テクノロジ系データベース計算問題難易度:hard
ボイス・コッド正規形(BCNF)が満たすべき条件として最も適切なものはどれか。
全ての属性が単一値であり繰返し項目を含まないこと
自明でない全ての関数従属X→Yにおいて、決定項Xが必ずスーパーキーであること
非キー属性が主キーの一部だけに従属する部分関数従属が存在しないこと
非キー属性が他の非キー属性を経由して主キーに従属する推移的関数従属が存在しないこと
正解
自明でない全ての関数従属X→Yにおいて、決定項Xが必ずスーパーキーであること

BCNFは第3正規形を強めた正規形で、自明でないすべての関数従属X→Yの左辺Xが必ずスーパーキーであることを要求する。これが定義そのものなので正しい。

?選択肢ごとの解説

ア ×全属性が単一値で繰返しを含まないのは第1正規形の条件であり、決定項に関するBCNFの定義とは段階が異なる。
イ ○BCNFは第3正規形を強めた正規形で、自明でないすべての関数従属X→Yの左辺Xが必ずスーパーキーであることを要求する。これが定義そのものなので正しい。
ウ ×部分関数従属の排除は第2正規形の条件であり、BCNFの要件である決定項がスーパーキーであることとは別である。
エ ×非キー属性間の推移的従属の排除は第3正規形の条件であり、BCNFはこれより厳しく、キーの一部となる属性への従属異常も排除する。

くわしく

3NFは『推移的従属の排除』だが、候補キーが複数あって重なるような特殊な表では3NFでも異常が残ることがある。BCNFは決定項を一律にスーパーキーへ限定することでこれを解消する。3NFを包含するより強い条件である。

本番での押さえどころ

試験のコツ

『1=単一値、2=部分従属なし、3=推移従属なし、BCNF=決定項がスーパーキー』と段階を順に固定して暗記する。

覚え方

BCNFは『決める側はみんなキーであれ』。何かを一意に決める列は必ずスーパーキー、と覚える。

よくある誤り

BCNFを3NFと同一視する、または1NF・2NFの条件と混同する誤りが多い。BCNFは『決定項=スーパーキー』が鍵である。

データベースの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0234

【基本情報技術者試験】正規化の問題 — 解答・解説|ukamiru 過去問