跳到正文

令和2年度 ITパスポート試験 問57

这道题的解析和你的作答记录。

問57
頻出度★★★

次に示す項目を使って関係データベースで管理する“社員”表を設計する。他の項目から導出できる,冗長な項目はどれか。 社員

社員番号社員名生年月日現在の満年齢住所趣味
出典 令和2年度 ITパスポート試験 問57
解説

問 57

  • 错误ア

    「出生年月日」是无法从其他数据项计算得到的基础数据,反而是推导周岁年龄的来源数据项。它并非冗余而是必需的,所以错误。

  • イ

    正解 正确答案是イ「当前的周岁年龄」。在关系数据库的设计中,如果把能从其他数据项计算、推导出来的值作为实际数据重复保存,就会造成冗余,并在更新时容易产生数据不一致。周岁年龄总是可以由「出生年月日」与当前日期之差唯一算出,因此无需存放在表中,需要时计算即可。所以,能从其他数据项推导出来的冗余数据项就是「当前的周岁年龄」。此外,周岁年龄是随时间推移每年变化的时变值,若作为实际数据保存,会因漏更新而残留错误的值,从这一点看它也是不应保存的典型例子。

  • 错误ウ

    「住址」是每个员工各自特有的信息,是无法由员工编号或姓名等其他数据项推导出来的独立数据。它不是冗余的,所以错误。

  • 错误エ

    「兴趣爱好」也因人而异,是无法从其他数据项计算或推测出来的独立数据。它不是冗余的,所以错误。

ここがポイント
  • 导出数据项(能从其他数据项计算得到的值)不作为实际数据存放在表中,而在需要时计算,这是规范化、消除冗余的基本原则。重复保存会成为更新时数据不一致的原因。
  • 像周岁年龄这种随时间推移而变化的值,保存作为基准的「出生年月日」,在引用时用与当前日期之差来计算,这是数据库设计的常规做法。
用語
解答問57イ
练这一题

作答记录