令和5年度 秋期 午前Ⅱ 問7
データベース設計
正規化に関する問題
便名に対して,客室乗務員名の集合及び搭乗者名の集合が決まる関係“フライト”がある。関係“フライト”に関する説明のうち,適切なものはどれか。ここで,便名,客室乗務員名,搭乗者名の組が主キーになっているものとする。
フライト
| 便名 | 客室乗務員名 | 搭乗者名 |
|---|---|---|
| BD501 | 東京建一 | 大阪一郎 |
| BD501 | 東京建一 | 京都花子 |
| BD501 | 横浜涼子 | 大阪一郎 |
| BD501 | 横浜涼子 | 京都花子 |
| BD702 | 東京建一 | 大阪一郎 |
| BD702 | 東京建一 | 神戸順子 |
| BD702 | 千葉建二 | 大阪一郎 |
| BD702 | 千葉建二 | 神戸順子 |
- ア関係“フライト”は,更新時異状が発生することはない。
- イ関係“フライト”は,自明でない関数従属が存在する。
- ウ関係“フライト”は,情報無損失分解が可能である。
- エ関係“フライト”は,ボイス・コッド正規形の条件は満たしていない。
答えと解説を見る
✓ これが正解ウ関係“フライト”は,情報無損失分解が可能である。
解説
多値従属だけの関係“フライト”は、便名を軸に情報無損失分解できます。
この表では、便名が決まると客室乗務員名の集合と搭乗者名の集合がそれぞれ独立に決まり、両者の全組合せが行になっています。たとえば BD501 は乗務員が東京建一と横浜涼子、搭乗者が大阪一郎と京都花子で、2×2=4行です。これは便名から客室乗務員名、便名から搭乗者名への多値従属性がある形です。そこで(便名,客室乗務員名)と(便名,搭乗者名)の二つに分けると、便名で自然結合したときに各便で乗務員と搭乗者の全組合せが作られ、元の8行がそのまま戻ります。したがって情報無損失分解が可能です。全属性が主キーの表で同じ値が組合せの数だけ並んでいたら、多値従属性を疑うのが見分け方です。
ほかの選択肢はなぜ違うのか
- ア関係“フライト”は,更新時異状が発生する…:搭乗者が一人増えると、その便の客室乗務員の人数分だけ行を追加しなければなりません。乗務員が二人の便なら2行を足す必要があり、一部だけ追加すると矛盾が生じるので、更新時異状は起こります。
- イ関係“フライト”は,自明でない関数従属が…:主キーは三つの属性すべてで、どの属性も他の属性の組から一意には決まりません。たとえば便名 BD501 から決まる乗務員は二人いるので、便名だけでは決まりません。自明でない関数従属はありません。
- エ関係“フライト”は,ボイス・コッド正規形…:この関係には自明でない関数従属がないので、ボイス・コッド正規形の条件である、自明でない関数従属の決定項が候補キーを含むことは満たされています。満たしていないのは第4正規形の条件です。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)