問題プレビューID: 153c6479

問 26

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

Labelテーブル1テーブル2テーブル3
ア

(a)

(b, c, d, e)

(f, g, h, i, j)

イ

(a, b, c, d, e)

(b, f, g, h)

(e, i, j)

ウ

(a, b, f, g, h)

(c, d)

(e, i, j)

エ

(a, c, d)

(b, f, g, h)

(e, i, j)

解説

関数従属 a→ba \to b,a→ca \to c,a→da \to d,a→ea \to e,b→fb \to f,b→gb \to g,b→hb \to h,e→ie \to i,e→je \to j を,情報を失わずに三つのテーブルに分解します。

  • テーブル1 (a, b, c, d, e):主キー a によって b, c, d, e が定まり,a→b,c,d,ea \to b, c, d, e を保持できます。
  • テーブル2 (b, f, g, h):主キー b によって f, g, h が定まり,b→f,g,hb \to f, g, h を保持できます。
  • テーブル3 (e, i, j):主キー e によって i, j が定まり,e→i,je \to i, j を保持できます。

これにより,すべての関数従属を保持したまま分解できます。エは a→ba \to b の関係が失われており,不適切です。したがって,正解は「イ」です。