以下の“資格記録”表を第三正規形に正規化したものはどれか。なお、表の下線部は主キーを示し、“資格記録”表の資格コード、資格名、資格取得経過年数は、資格を取得するたびに繰り返し追加するものとする。
“資格記録”表
┌─────┬─────┬─────┬─────┬────────┐
│ 社員番号 │ 社員氏名 │資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴─────┴─────┴────────┘
┌─────┬─────┬────────┐
│資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴────────┘
┌─────┬─────┬────────┐
│資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴────────┘
┌─────┬─────┬────────┐
│資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴────────┘
┌─────┬─────┬─────┬─────┬────────┐
@│ 社員番号 │ 社員氏名 │資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴─────┴─────┴────────┘
┌─────┬─────┬─────┬────────┐
A│ 社員番号 │ 社員氏名 │資格コード│資格取得経過年数│
└─────┴─────┴─────┴────────┘
┌─────┬─────┐
B│ 社員番号 │ 社員氏名 │
└─────┴─────┘
┌─────┬─────┐
│資格コード│ 資格名 │
└─────┴─────┘
┌─────┬─────┬────────┐
│ 社員番号 │資格コード│資格取得経過年数│
└─────┴─────┴────────┘
┌─────┬─────┐
C│ 社員番号 │資格コード│
└─────┴─────┘
┌─────┬─────┬────────┐
│ 社員番号 │ 社員氏名 │資格取得経過年数│
└─────┴─────┴────────┘
┌─────┬─────┐
│資格コード│ 資格名 │
└─────┴─────┘
┌─────┬─────┐
D│ 社員番号 │資格コード│
└─────┴─────┘
┌─────┬─────┐
│ 社員番号 │ 社員氏名 │
└─────┴─────┘
┌─────┬─────┬────────┐
│資格コード│ 資格名 │資格取得経過年数│
└─────┴─────┴────────┘
B
第3正規化は、テーブル内にある主キー以外の項目に従属する関係 (推移従属) を別テーブルに移し、どのテーブルもすべての属性が主キーに対して完全従属の状態にすることである。
なお、推移従属は、主キー以外の項目に従属する関係のことである。
完全従属は、全てのキー項目を使って値が決定する関係のことである。
また、関数従属は、ある属性の値が決まると、他の属性の値も一意に決まる関係のことである。
まず、社員氏名は社員番号に対し、関数従属であるため、分離する。
また、資格名は資格コードに対し、関数従属であるため、分離する。
資格取得経過年数は、社員番号と資格コードに対して、関数従属である。
以上によってどのテーブルもすべての属性が主キーに対して完全従属の状態になる。
W−26 | 目次 | W−28 |