次に示す項目を使って関係データベースで管理する“社員”表を設計する。
他の項目から導出できる,冗長な項目はどれか。
社員:社員番号,社員名,生年月日,現在の満年齢,住所,趣味
正答2
解説
正解は2です。
関係データベースの表を設計するときに、他の項目から導出できる冗長な項目を見つける問題です。
他の項目から計算で求められる項目を表に持つと、データの更新漏れによって矛盾が生じる原因になります。
【選択肢別解説】
1:× 生年月日は、他の項目から求めることができない基本的なデータです。
表に保持する必要があります。
2:○ 現在の満年齢は、生年月日と現在の日付から計算で求められます。
さらに、年齢は毎年変わるため、表に保持すると更新し続けなければならず、冗長な項目です。
3:× 住所は、他の項目から導出することはできません。
表に保持する必要がある項目です。
4:× 趣味は、他の項目から導出することはできません。
表に保持する必要がある項目です。
【ポイント】
データベース設計では、計算で求められる値(導出項目)は原則として保持せず、必要なときに計算します。
同じ情報を二重に持たないことで、データの整合性を保ちやすくなります。