修了試験 2020-07-26実施分 基本情報技術者試験 問27
属性aの値が決まれば属性bの値が一意に定まることを,a→bで表す。 例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号→社員名である。 この表記法に基づいて,図の関係が成立している属性a~jを,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。

正答2
解説
正解は2です。 関数従属性を基に、属性を正規化された三つのテーブルに分ける問題です。 図では、aからb、c、d、eへ矢印が出ています。 また、bからf、g、hへ、eからi、jへ矢印が出ています。 つまり、aが決まればb、c、d、eが一意に定まります。 同様に、bが決まればf、g、hが、eが決まればi、jが一意に定まります。 【考え方】 aを主キーとすると、f、g、hは、bを介してaに推移的に従属しています。 i、jも、eを介してaに推移的に従属しています。 第3正規形にするには、推移的関数従属を別のテーブルに分けます。 テーブル1はaを主キーとし、aに直接従属するb、c、d、eを含めます。 テーブル2はbを主キーとし、f、g、hを含めます。 テーブル3はeを主キーとし、i、jを含めます。 テーブル1のbとeは外部キーとなり、テーブル同士を結び付けます。 【選択肢別解説】 1:× テーブル1がaだけで、テーブル2にもテーブル3にもaがありません。 aとほかの属性を結び付けられず、またf~jの決定項であるbやeがテーブル3にありません。 2:○ 図の三つの関数従属を、そのまま三つのテーブルに分けています。 推移的関数従属が取り除かれ、bとeを共通に持つので、結合して元の情報を復元できます。 3:× テーブル1にf、g、hが入っており、bを介した推移的関数従属が残っています。 また、テーブル2(c, d)とテーブル3(e, i, j)はaと結び付けられません。 4:× テーブル1にbとeが含まれていないので、テーブル2やテーブル3と結び付けられません。 aとb、aとeの対応が失われます。 【ポイント】 「aがbを決め、bがfを決める」という推移的関数従属は、bを主キーとする別のテーブルに分けます。 分割した後も、決定項(b、e)を元のテーブルに外部キーとして残すことが必要です。まとめて解く
修了試験 2020-07-26実施分を通しで解く(80問)→