问题 问答题

阅读下列说明,回答问题1至问题3,将解答填入对应栏内。
[说明]
某学校拟开发一套校友捐赠管理系统,以便对校友的捐赠资金进行管理。
[需求分析]
校友可以向学校提出捐赠申请,说明捐赠的金额、捐赠类型和使用方式。捐赠类型包括一次性捐赠和周期性捐赠。捐赠的使用方式分为两种:一种用于资助个人,即受益人为多名学生或老师,主要用于奖学金、奖教金和助学金等;另一种用于资助捐赠项目,即资助已有的捐赠项目和设立新的捐赠项目,主要用于改善教学设施、实验室建设和设备购买等。捐赠项目由捐赠理事建立,一个捐赠项目可以涉及多个受益单位,每个单位在该项目中有确定的受益比例。由捐赠理事为项目中的每个单位指定一个项目负责人,并指定每个单位受益比例。每个单位的受益比例是指在一个捐赠项目中的每个单位所应得的金额占该捐赠项目总受益金额的比例。一个捐赠项目可以由多个捐赠来资助,一个捐赠也可以资助多个捐赠项目。由捐赠理事将一个捐赠的捐赠金额分配给所资助的多个捐赠项目,并指定给每个捐赠项目的具体的捐赠金额。
初步设计了校友捐赠信息数据库,其关系模式如图4-1所示。


关系模式的主要属性、含义及约束如表4-1所示。

表4-1 主要属性、含义及约束
属 性 含义和约束条件
项目编号 唯一标识某个捐赠项目信息
受益人 捐赠的受益人名称
受益人类型 分为:学生、教师
受益金额 每个受益人具体得到的捐赠金额
受益比例 捐赠项目中每个捐赠单位应得到的项目捐赠总金额的比例
项目受益金额 从一个捐赠中分配给一个捐赠项目的具体金额

1.对关系“校友信息”,请回答以下问题:
(1)列举出所有候选键的属性。
(2)关系“校友信息”可达到第几范式,用60字以内文字简要叙述理由。

答案

参考答案:(1)“捐赠信息”关系不满足第二范式,即非主属性不完全依赖于码。
(2)会造成:插入异常、删除异常和修改复杂(或修改异常)。
(3)分解后的关系模式如下:
捐赠信息1(捐赠编号,捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式)
捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)
捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)
(1)修正后的主键如下:
捐赠信息1(捐赠编号,捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式)
捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)
捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)

解析:本问题考查第二范式和第三范式。
根据第三范式的要求:非主属性不完全依赖于码。
根据“捐赠信息”关系模式,可知其码为(捐赠编号,受益人身份证号),而又存在部分函数依赖:
捐赠编号→捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式。
受益人身份证号→受益人姓名,受益人所在单位,受益人类型。
所以,捐赠信息”关系不满足第二范式,会造成:插入异常、删除异常和修改复杂(或修改异常)。
因为存在部分函数依赖,因此对“捐赠信息”进行分解,分解后的关系模式如下:
捐赠信息1(捐赠编号,捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式)
捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)
捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)
其中,
“捐赠信息1”关系的函数依赖为:
捐赠编号→捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式。
“捐赠信息2”关系的函数依赖为:
受益人身份证号→受益人姓名,受益人所在单位,受益人类型。
“捐赠信息3”关系的函数依赖为:
捐赠编号,受益人身份证号→受益金额,使用说明。
这三个关系中的每一个非主属性既不部分依赖于码也不传递依赖于码,因此满足第三范式的要求。

多选题
单项选择题 案例分析题