三つのテーブルで定義する組合せ

正解は イ です。 図から、 a → b, c, d, e 、 b → f, g, h 、 e → i, j という3つの関数従属が読み取れます。それぞれの決定する側(a, b, e)を主キーにして、決まる属性を同じテーブルにまとめます。 テーブル1 {a, b, c, d, e}:b と e は、テーブル2・3を参照する外部キーとしても残す テーブル2 {b, f, g, h} テーブル3 {e, i, j} ア:テーブル1 に a しかなく、a と他の属性の関係が失われます。また、b と f の関係を表すための b がテーブル3 にありません。 ウ:f, g, h は b で決まるのに a のテーブルに入っており、推移的関数従属が残っています。c, d を a と別にすると、a から c, d が決まる関係が失われます。 エ:テーブル1 に b, e がないため、a から b・e への関係(どのテーブル2・3の行に対応するか)を表せません。

属性aa の値が決まれば属性bb の値が一意に定まることを,a→ba\to bで表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号→社員名である。この表記法に基づいて,図のような関係が成立している属性aa~j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。

問題画像
出典平成29年度 春期 基本情報技術者試験 午前 問25
ア
テーブル1 {a} テーブル2 {b,c,d,e} テーブル3 {f,g,h,i,j}
イ
テーブル1 {a,b,c,d,e} テーブル2 {b,f,g,h} テーブル3 {e,i,j}
ウ
テーブル1 {a,b,f,g,h} テーブル2 {c,d} テーブル3 {e,i,j}
エ
テーブル1 {a,c,d} テーブル2 {b,f,g,h} テーブル3 {e,i,j}