
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
社員・資格・資格ランク・手当・申請日を含む表を第三正規形に変換したときの表の最少数を求める問題。
社員の資格情報をまとめた表を第三正規形にしたときの表の数を求める問題。
① 関数従属を洗い出す: 社員ID→社員名・住所、資格ID→資格名・資格ランク、資格ランク→手当額、(社員ID,資格ID)→申請日
② 第2正規形で3表(社員、資格、社員資格)、資格ランク→手当額の推移従属を分けて第3正規形で4表
③ ③
主キーは(社員ID,資格ID)。社員名・住所は社員IDだけに、資格名・資格ランクは資格IDだけに従属する(部分関数従属)ので、社員表(社員ID,社員名,住所)、資格表(資格ID,資格名,資格ランク)、取得表(社員ID,資格ID,申請日)に分ける。さらに資格表では手当額が資格ランクに従属する(資格ID→資格ランク→手当額の推移従属)ので、ランク表(資格ランク,手当額)に分ける。第三正規形では最少で4つの表になる。したがって③が正しい。
正規化の手順: 繰返しを除く(第1)→キーの一部への従属を分ける(第2)→キー以外の属性を経由した従属を分ける(第3)。
キーワード: 正規化、第三正規形、関数従属、データベース設計、情報工学部門