データベーススペシャリスト試験 2023年 午前207


便名に対して、客室乗務員名の集合及び搭乗者名の集合が決まる関係“フライト”がある。関係“フライト”に関する説明のうち、適切なものはどれか。ここで、便名、客室乗務員名、搭乗者名の組が主キーになっているものとする。
問題画像
関係“フライト”は、更新時異状が発生することはない。
関係“フライト”は、自明でない関数従属が存在する。
関係“フライト”は、情報無損失分解が可能である。(正解)
関係“フライト”は、ボイス・コッド正規形の条件は満たしていない。

解説

フライト【午前2 解説】

要点まとめ

  • 結論:関係“フライト”は情報無損失分解が可能であるため、正規化による分解が有効です。
  • 根拠:便名に対して複数の客室乗務員名と搭乗者名が組み合わさり、複合主キーが設定されているため、分解しても元の情報を失わない。
  • 差がつくポイント:関係の更新異常や関数従属性の理解、正規形の判定基準を正確に把握しているかが合否を分けます。

正解の理由

選択肢ウ「関係“フライト”は、情報無損失分解が可能である。」が正解です。
この関係は便名、客室乗務員名、搭乗者名の3つの属性からなり、主キーはこれらの組み合わせです。便名ごとに複数の客室乗務員と搭乗者が存在し、これらは独立した集合として扱えます。したがって、便名と客室乗務員名の関係、便名と搭乗者名の関係に分解しても、自然結合により元の関係を完全に再現できるため、情報無損失分解が成立します。

よくある誤解

関係の更新異常がないと誤解しやすいですが、複数の集合が絡むため更新異常は起こり得ます。
また、関数従属性が存在しないと考えるのも誤りで、複雑な従属性が潜んでいます。

解法ステップ

  1. 問題文の関係スキーマと主キーを確認する(便名+客室乗務員名+搭乗者名)。
  2. 表のデータから便名ごとに複数の客室乗務員と搭乗者が存在することを把握する。
  3. 関係を「便名+客室乗務員名」と「便名+搭乗者名」に分解できるか検討する。
  4. 分解後に自然結合で元の関係が再現できるか(情報無損失性)を確認する。
  5. 更新異常や関数従属性の有無、正規形の条件と照らし合わせて選択肢を比較する。

選択肢別の誤答解説

  • ア: 「更新時異常が発生しない」は誤り。複数の客室乗務員や搭乗者が絡むため、更新異常が起こる可能性がある。
  • イ: 「自明でない関数従属が存在する」は誤り。主キー以外の明確な関数従属が示されていないため断定できない。
  • ウ: 「情報無損失分解が可能である」は正しい。便名を軸に分解しても元の情報を失わない。
  • エ: 「ボイス・コッド正規形の条件を満たしていない」は誤り。複合主キーであり、部分関数従属がないためBCNFの条件は満たしている可能性が高い。

補足コラム

情報無損失分解とは、関係を複数の関係に分解しても、自然結合により元の関係を完全に復元できる性質を指します。これによりデータの冗長性を減らし、更新異常を防ぐことが可能です。BCNF(ボイス・コッド正規形)は関数従属性に基づく正規形の一つで、部分関数従属や推移的関数従属を排除します。

FAQ

Q: 情報無損失分解が重要な理由は何ですか?
A: 分解後も元のデータを完全に復元できるため、データの整合性を保ちながら冗長性を減らせるからです。
Q: BCNFを満たしているかどうかはどう判断しますか?
A: すべての関数従属性の左辺が候補キーであればBCNFを満たします。
Q: 更新異常とは何ですか?
A: データの挿入・更新・削除時に不整合や冗長性が生じる問題を指します。

関連キーワード: 関係データベース, 正規化, 情報無損失分解, ボイス・コッド正規形, 関数従属性, 更新異常
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ