令和5年度 秋期 データベーススペシャリスト試験 午前II 問7
2025年6月30日
【問題7】
便名に対して、客室乗務員名の集合及び搭乗者名の集合が決まる関係“フライト”がある。関係“フライト”に関する説明のうち、適切なものはどれか。ここで、便名、客室乗務員名、搭乗者名の組が主キーになっているものとする。
関係“フライト”は、更新時異状が発生することはない。
関係“フライト”は、自明でない関数従属が存在する。
関係“フライト”は、情報無損失分解が可能である。
関係“フライト”は、ボイス・コッド正規形の条件は満たしていない。
【解説】
関係"フライト"の構造について
関係"フライト"では、便名に対して客室乗務員名の集合および搭乗者名の集合が決まる形となっています。これは、便名が決まれば、それに対応する客室乗務員名の集合と搭乗者名の集合が一意に定まることを意味します。
ア: 関係"フライト"は、更新時異状が発生することはない。
誤り。同じ便名に対して複数の客室乗務員名や搭乗者名が存在するため、データの冗長性が生じ、更新時に不整合が発生する可能性があります。例えば、ある便名に新しい客室乗務員を追加する際、複数のレコードを更新する必要があり、更新漏れが発生するリスクがあります。
イ: 関係"フライト"は、自明でない関数従属が存在する。
誤り。自明でない関数従属とは、ある属性が他の属性を一意に決定する関係を指しますが、この関係では便名から客室乗務員名や搭乗者名の集合が決まるものの、個々の客室乗務員名や搭乗者名が一意に決まるわけではありません。したがって、自明でない関数従属は存在しません。
ウ: 関係"フライト"は、情報無損失分解が可能である。
正しい。関係"フライト"には、便名→→客室乗務員名、便名→→搭乗者名という多値従属が存在します。このような場合、関係を{便名, 客室乗務員名}と{便名, 搭乗者名}の2つに分解することで、情報の損失なく元の関係を再構築することができます。これを情報無損失分解といいます。
エ: 関係"フライト"は、ボイス・コッド正規形の条件は満たしていない。
誤り。ボイス・コッド正規形(BCNF)は、すべての関数従属において、決定項がスーパーキーであることを要求します。この関係には関数従属が存在しないため、BCNFの条件を満たしています。
【答え】
ウ: 関係"フライト"は、情報無損失分解が可能である。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前II 問7