拾题
首页 / 软考真题 / 数据库设计 / 第 2 题

什么是派生属性?在数据库设计中,为什么通常不将派生属性作为关系中的属性存储?请举例说明。

简答题

什么是派生属性?在数据库设计中,为什么通常不将派生属性作为关系中的属性存储?请举例说明。
答案:派生属性是指可以由其他属性通过计算得到的属性,例如年龄可以由出生日期和当前日期计算得出。在数据库设计中,不存储派生属性是为了避免数据冗余和不一致性,因为派生属性的值会随着基础属性的变化而变化,如果存储则需同步更新,增加维护成本。例如,学生表中的年龄就是派生属性,应通过出生日期计算得到,而不是直接存储。

解析

参考答案

  • 派生属性:可由其他属性计算得到的属性,如年龄由出生日期和当前日期计算。
  • 不存储原因:避免数据冗余、避免数据不一致、减少维护成本。
  • 示例:学生表中存出生日期,年龄查询时计算,不直接存年龄。

得分点解析

  • “由其他属性计算得到”:定义核心,否则无法区分普通属性。
  • “避免数据冗余”:同一信息不重复存储,节省空间。
  • “避免数据不一致”:基础属性变化后,存储的派生值可能不同步,产生矛盾。
  • “减少维护成本”:无需触发器或批量更新派生值。
  • “年龄由出生日期计算”:典型例子,直观说明派生关系。

考点延伸

若派生属性查询频繁且计算昂贵,可用物化视图或冗余列权衡,但必须保证一致性。派生也可由多属性计算,如总价 = 单价 × 数量。

← 上一题 下一题 →

本单元其他题目

在拾题里做这套题