阅读下列说明,回答问题1至问题3;将解答填入答题纸的对应栏内。【说明】某社会救助基金会每年都会举办多项社会公益救助活动,需要建立信息系统,对之进行有效管理。【需求分析】1.任何一个实名认证的个人或者公益机构都可以发起一项公益救助活动,基金会需要记录发起者的信息。如果发起者是个人,需要记录姓名、身份证号和一部电话号码;如果发起者是公益机构,需要记录机构名称、统一社会信用代码、一部电话号码、唯一的法人代表身份证号和法人代表姓名。一个自然人可以是多个机构的法人代表。2.公益救助活动需要提供详实的资料供基金会审核,包括被捐助人姓名、身份证号、一部电话号码、家庭住址。3.基金会审核并确认项目后,发起公益救助的个人或机构可以公开宣传井募捐,募捐得到的款项进入基金会账户。4.发起公益救助的个人或机构开展救助行动,基金会根据被捐助人所提供的医疗发票或其它信息,直接将所筹款项支付给被捐助者。5.救助发起者针对任一被捐助者的公益活动只能开展一次。【逻辑结构设计】根据上述需求,设计出如下关系模式:公益活动(发起者编号,被捐助者身份证号,发起者电话号码,发起时间,结束时间,募捐金额),其中对于个人发起者,发起者编号为身份证号;对于机构发起者,发起者编号为统一社会信用代码。个人发起者(姓名,身份证号,电话号码)机构发起者(机构名称,统一社会信用代码,电话号码,法人代表身份证号,法人代表姓名)被捐助者(姓名,身份证号,电话号码,家庭住址)【问题1】对关系"机构发起者",请回答以下问题:(1)列举出所有候选键。(2)它是否为3NF,用1100字以内文字简要叙述理由。(3)将其分解为BC范式,分解后的关系名依次为:机构发起者1,机构发起者2,...,并用下划线标示分解后的各关系模式的主键。【问题2】对关系"公益摇动",请回答以下问题:(1)列举出所有候选键。(2)它是否为2NF,用100字以内文字简要叙述理由。(3)将其分解为BC范式,分解后的关系名依次为:公益活动1,公益活动2,...,并用下划线标示分解后的各关系模式的主键。【问题3】基金会根据被捐助人提供的医疗发票或其它信息,将所筹款项支付给被捐助者。可以存在分期多次支付的情况,为了统计所筹款项支付情况(详细金额和时间),试增加"支付记录"关系模式,用100字以文字简要叙述解决方案。
【问题1】(6 分) (1)统一社会信用代码(2)否,存在传递依赖 :统一社会信用代码→法人代表身份证号,法人代表身份证号→法人代表姓名(3)机构发起者1(机构名称,统一社会信用代码,电话号码,人代表身份证号)主键:统一社会信用代码机构发起者2(人代表身份证号,法人代表姓名)主键:法人代表身份证号【问题2】(6 分)(1)发起者编号+被捐助者身份证号(2)否:存在部分函数依赖:发起者编号→(发起者电话号码)对码(发起者编号,被捐助者身份证号)存在部分函数依赖(3)公益活动1(发起者编号,发起者电话号码)主键:发起者编号公益活动2(发起者编号,被捐助者身份证号,发起时间,结束时间,募捐金额)主键:发起者编号+被捐助者身份证号 【问题3】(3分)支付记录(支付编号,发起者编号,被捐助者身份证号,支付金额,支付时间,被捐助人的相关信息)(被捐助人的相关信息为医疗发票或其他信息),支付编号唯一标识每一次支付