假设某商店数据库中有关系模式R:R(商店编号,商品编号,数量,部门编号,负责人)
约定:每个商店的每种商品只有一个部门销售;每个商店的每个部门只有一个负责人;每个商店的每种商品只有一个库存数量。
请回答下列问题:
1)找出关系模式R的候选键,关系模式R最高已经达到第几范式说明理由。
2)如果R不属于3NF,请将R分解成3NF模式集。
参考答案:R的候选键是:(商店编号,商品编号)。
因为R中存在着非主属性“负责人”对候选键(商店编号,商品编号)的传递函数依赖,所以R属于2NF,而不属于3NF。
2)将R分解成:
R1(商店编号,商品编号,数量,部门编号)
R2(商店编号,商品编号,负责人)
解析:
显然该关系模式属于1NF,而且不存在非主属性对候选键的部分依赖,所以该关系模式满足2NF。由于(商店编号,商品编号)→(商店编号,部门编号),(商店编号,商品编号)→负责人,因此R中存在着非主属性“负责人”对候选键(商店编号,商品编号)的传递函数依赖。所以,该关系模式最高只达到2NF。
2)将R(商店编号,商品编号,数量,部门编号,负责人)分解成两个关系模式:
R1(商店编号,商品编号,数量,部门编号),其中主关键字是(商店编号,商品编号);
R2(商店编号,商品编号,负责人),其中主关键字是(商店编号,商品编号)。
显然,以上两个关系模式都满足2NF,而且,这两个关系模式都不存在非主属性对候选键的传递函数依赖,因此以上两个关系模式都满足3NF。