某社会救助基金会每年都会举办多项社会公益救助活动,需要建立一个信息系统,对之进行有效管理。 【需求描述】 1.任何一个实名认证的个人或者公益机构都可以发起~项公益救助活动,基金会需要记录发起者的信息。如果发起者是个人,需要记录姓名、身份证号和一部电

admin2018-04-19  26

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

选项

答案对关系“机构发起者”: (1)候选键:统一社会信用代码 (2)不是3NF。存在非主属性“法人代表姓名”对候选键“统一社会信用代码”的传递依赖:统一社会信用代码一法人代表身份证号,法人代表身份证号一法人代表姓名。所以统一社会信用代码一法人代表姓名,为传递依赖。 (3)分解后的关系模式: 机构发起者1(机构名称,统一社会信用代码,电话号码,法人代表身份证号) 机构发起者2(法人代表身份证号,法人代表姓名)

解析 本问题考查候选键和第三范式。
    “机构发起者”关系的候选键为:统一社会信用代码。
    分析“机构发起者”关系的函数依赖可知:存在非主属性“法人代表姓名”对候选键“统一社会信用代码"的传递依赖:统一社会信用代码→法人代表身份证号,法人代表身份证号一法人代表姓名。所以统一社会信用代码→法人代表姓名,为传递依赖。所以,“机构发起者”关系模式不满足第三范式。
    分解后的关系模式为:
    机构发起者1(机构名称,统一社会信用代码,电话号码,法人代表身份证号)
    机构发起者2(法人代表身份证号,法人代表姓名)
转载请注明原文地址:https://jikaoti.com/ti/JVN7FFFM
0

相关试题推荐
最新回复(0)