令和2年度 10月 (特別措置試験) 問57
データベース
冗長な項目
次に示す項目を使って関係データベースで管理する“社員”表を設計する。他の項目から導出できる,冗長な項目はどれか。
社員
| 社員番号 | 社員名 | 生年月日 | 現在の満年齢 | 住所 | 趣味 |
|---|
- ア生年月日
- イ現在の満年齢
- ウ住所
- エ趣味
答えと解説を見る
✓ これが正解イ現在の満年齢
解説
現在の満年齢は、生年月日と今日から計算できるので冗長です。
関係データベースで表を設計するときは、他の項目から導き出せる値を、そのまま列として持たないようにします。持ってしまうと、もとの値と食い違う恐れが生まれるからです。社員の表を見ると、現在の満年齢は、生年月日と、いま何月何日かという情報があれば計算で求められます。しかも年齢は毎年変わるので、列として持つと、誕生日を過ぎるたびに書き換えなければならず、直し忘れれば誤った値が残ってしまいます。生年月日のほうは変わらない事実なので、こちらを持っておけば足ります。導ける値を持たないようにするのは、正規化の考え方につながります。住所や趣味は、他の項目から導き出せるものではないので、それぞれ持つ必要があります。持たなくても困らないものは、持たないのが原則です。よって冗長な項目は、現在の満年齢ということになります。
ほかの選択肢はなぜ違うのか
- ア生年月日:生年月日は、他の項目から導き出すことができません。むしろ、これがあるからこそ年齢を計算できるという側にあたります。変わらない事実でもあるので、持っておくべき項目になります。導く側ではなく、導かれる元にあたります。時とともに変わりません。
- ウ住所:住所は、社員番号や氏名や生年月日から導き出せるものではありません。人それぞれに違う事実であり、変わったときには書き換える必要があるとしても、他から導けない以上、冗長な項目にはあたりません。他から導けないので持ちます。冗長ではありません。
- エ趣味:趣味も、他の項目から計算したり引き当てたりできるものではありません。本人に聞かなければ分からない情報なので、列として持たなければ、どこにも残らないことになります。聞かなければ分からない情報です。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:令和2年度 10月 ITパスポート試験(特別措置試験) 問57(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和8年度 問72:外部キーに関する問題(関係データベース)
- 令和8年度 問69:正規化に関する問題(関係データベース)
- 令和8年度 問57:外部キーに関する問題(関係データベース)
- 令和7年度 問66:関係データベースに関する問題(関係データベース)
- 令和6年度 問93:抽出された従業員(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)