参考答案:
【问题1】(5分)
(1)顾客编号,身份证号(2分,各1分)
(2)可以达到第二范式(1分)
理由:“顾客”关系模式中,存在以下函数依赖:
单位名称→单位地址,单位电话
存在非主属性对键的传递依赖,所以“顾客”关系模式可以到第二范式,但不满足第三范式(2分)
【问题2】(6分)
(1)根据“结算单”关系模式,可知其主键为(流水号,条码),而又存在部分函数依赖:
条码→水果名称,销售单价,数量,金额,导购员编号
根据第二范式的要求:不存在非主属性对键的部分依赖。所以“结算单”关系模式不满足第二范式,会造成:插入异常、删除异常和修改异常。
(2)对“结算单”关系模式进行分解后的关系模式及主键如下:
结算单1(流水号,条码)
结算单2(流水号, 顾客编号)
结算单3(条码,水果名称,销售单价,数量,金额,导购员编号)
【问题3】(4分)
(1)不属于第四范式
根据“职责”关系模式可知:其键为(水果名称,采购员编号,导购员编号),而存在多值依赖:
水果名称→→采购员编号
水果名称→→导购员编号
根据第四范式的要求,不允许存在非平凡的多值依赖。因此,“职责”关系模式不满足第四范式。
(2)对“职责”关系模式进行分解后的关系模式如下:
职责1(水果名称,采购员编号)
职责2(水果名称,导购员编号)
详细解析:
【问题1】
根据题干描述:每位顾客具有唯一编号,可以得出顾客编号可以唯一决定一个元组;同理身份证号也可以唯一决定一个元组;因此,顾客关系的主键为:顾客编号或身份证号;在顾客关系中,其函数依赖如下:顾客编号→身份证号;身份证号→(姓名,性别,积分);顾客编号→单位名称;单位名称→(单位地址,单位电话);该关系中不存在部分依赖,但存在传递依赖,所以该关系满足2NF但不满足3NF
【问题2】
每个结算单都有一个唯一的流水号,一个流水号对应的结算单中涉及到多种水果,每种水果都有自己唯一的条形码,因此,该关系的主码应为:(流水号,条形码),在结算单关系中,其函数依赖如下:流水号→顾客编号;条码→(水果名称,销售价格,数量,金额,导购员编号);从结算单关系的函数依赖中,可以发现存在部分函数依赖,所以该关系不满足2NF要求。将其进行分解,可以依照函数依赖将其分解为结算单1(流水号,条码)结算单2(流水号,顾客编号)结算单3(条码,水果名称,销售单价,数量,金额,导购员编号)
【问题3】
根据题干说明:超市将采购员和导购员分成若干个小组,每组人员负责指定的若干种水果的采购和导购。每名采购员可采购指定给该组购买的水果;每名导购员都可对顾客选购的本组内的各种水果进行计价和包装,并分别贴上打印条码;可以得出:一种水果有多名采购员,一种水果有多名导购员,因此,职责关系的函数依赖关系为:水果名称→→采购员编号;水果名称→→导购员编号,即该关系存在有非平凡函数依赖的多值依赖。所以不满足4NF的要求。对其进行分解为:职责1(水果名称,采购员编号);职责2(水果名称,导购员编号)