令和3年度 III-15

科目: 専門科目 / 分野: 情報工学部門 / 年度: 令和3年度

III-15 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

資格記録表(社員番号、社員氏名、資格コード、資格名、資格取得経過年数)を第三正規形に正規化した結果として最も適切なものを選ぶ問題。繰返し項目の分離、部分関数従属・推移的関数従属の排除を理解しているかを問う。

解説

この問題で問われていること

繰返し項目をもつ表を、第1〜第3正規形へと段階的に正規化する問題。

解き方

① 正規化: 繰返しを外す(第1)→主キーの一部だけで決まる項目を分ける(第2)→キー以外で決まる項目を分ける(第3)。各項目が「何で決まるか」を考える
② 社員氏名=社員番号で決まる、資格名=資格コードで決まる、経過年数=社員番号+資格コードで決まる → 3つの表に分ける
③ (社員番号,社員氏名)(資格コード,資格名)(社員番号,資格コード,経過年数)の②

正解が正しい理由

まず、繰返し項目(資格コード、資格名、資格取得経過年数)を分離して、第1正規形にする。次に、部分関数従属を排除する。社員氏名は社員番号だけで決まり、資格名は資格コードだけで決まる。資格取得経過年数は、社員番号と資格コードの両方で決まる(どの社員がどの資格を取ってからの年数か)。したがって、社員(社員番号、社員氏名)、資格(資格コード、資格名)、取得(社員番号、資格コード、資格取得経過年数)の3表に分割でき、推移的関数従属もなく第三正規形となる。②が正しい。

各選択肢について

覚えるべきポイント

第1正規形=繰返し項目の排除、第2正規形=部分関数従属の排除、第3正規形=推移的関数従属の排除。属性が、主キーのどの部分に従属するかで表を分ける。

キーワード: 正規化、第三正規形、部分関数従属、繰返し項目、主キー、関係データベース、情報工学部門