设某商业集团数据库中有一关系模式R如下:
R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:(1) 每个商店的每种商品只在一个部门销售;(2) 每个商店的每个部门只有一个负责人;(3) 每个商店的每种商品只有一个库存数量。
试回答下列问题:(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。
(1)关系模式R的基本函数依赖:
商店编号 → 负责人
商店编号,商品编号 → 数量,部门编号,负责人
部门编号,商品编号 → 商店编号,数量,负责人
(2)关系模式R的候选码:
商店编号,商品编号
(3)关系模式R最高已经达到第二范式。因为R中存在部分依赖,即商店编号依赖于部门编号和商品编号。
(4)将R分解成3NF模式集:
R1(商店编号,负责人)函数依赖商店编号 → 负责人
R2(商品编号,部门编号,数量,商店编号)函数依赖商店编号,商品编号 → 部门编号,数量
R3(部门编号,负责人)函数依赖部门编号 → 负责人
其中,R1和R3都已经是3NF,而R2也满足3NF,因为每个属性都完全依赖于候选码商店编号和商品编号。