1、每个商店的每种商品只在该商店的一个部门销售。每个商店的每个部门只有一个部分负责人每个商店的每种商品只有一个库存数量。请回答以下问题:(1)根据上述规定,写出关系模式R的基本函数依赖。(2)找出关系模式R的候选码。(3)关系模式R最高已经达到第几范式?为什么?(4)如果R不属于3NF,请将R分解成3NF。2第4章 关系数据库的规范化理论解答(1)R(商店编号,商品编号,商品库存数量,部门编号,部门负责人)每个商店的每种商品只在该商店的一个部门销售(商店编号,商品编号)部门编号每个商店的每个部门只有一个部门负责人(商店编号,部门编号)部门负责人每个商店的每种商品只有一个库存数量(商店编号,商店编号
2、)商品库存数量3第4章 关系数据库的规范化理论(2)R(商店编号,商品编号,商品库存数量,部门编号,部门负责人)每个商店的每种商品只在该商店的一个部门销售(商店编号,商品编号)部门编号每个商店的每个部门只有一个部门负责人(商店编号,部门编号)部门负责人每个商店的每种商品只有一个库存数量(商店编号,商店编号)商品库存数量R候选码:(商店编号,商品编号,部门编号)4第4章 关系数据库的规范化理论(3)R最高到达第几范式?R(商店编号,商品编号,商品库存数量,部门编号,部门负责人)每个商店的每种商品只在该商店的一个部门销售(商店编号,商品编号)部门编号每个商店的每个部门只有一个部门负责人(商店编号,
3、部门编号)部门负责人每个商店的每种商品只有一个库存数量(商店编号,商店编号)商品库存数量存在非主属性对码的部分函数依赖。所以1NF。5第4章 关系数据库的规范化理论(4)如果R不属于3NF,请将R分解成3NF。R(商店编号,商品编号,商品库存数量,部门编号,部门负责人)每个商店的每种商品只在该商店的一个部门销售(商店编号,商品编号)部门编号每个商店的每个部门只有一个部门负责人(商店编号,部门编号)部门负责人每个商店的每种商品只有一个库存数量(商店编号,商店编号)商品库存数量R1(商店编号,商品编号,部门编号,商品库存数量)R2(商店编号,部门编号,部门负责人)6第4章 关系数据库的规范化理论例
4、设有如下所示的关系R职工号职工名 年龄性别部门号 部门名E1万千里 20女D3开发部E2于得水 25男D1财务部E3余乐38男D3开发部E4高明亮 25女D3开发部7第4章 关系数据库的规范化理论(1)它为第几范式?(2)是否存在删除异常?若存在,请说明在什么情况下发生?(3)将它分解为高一级范式。(4)分解后的关系如何解决分解前可能存在的删除操作异常问题?8第4章 关系数据库的规范化理论解(1)关系R是2NF(2)存在插入,删除异常:当插入一个新部门,而该部门还没有员工时,不能加入,从而发生插入异常;当某部门只有一名员工,删除该员工时会把该部门的信息也删除,从而发生删除异常。原因在于非主属性“部门名称”对码“职工号”存在传递函数依赖。9第4章 关系数据库的规范化理论(3)分解为两个关系,使之达到3NF;职工(职工号,职工名,年龄,性别,部门号)部门(部门号,部门名称)(4)分解后的关系可以避免上述操作异常问题。当增加一个新部门,而该部门还没有员工时,仍然可以向部门关系中加入该部门信息,从而解决了插入异常问题。当某部门只有一名员工,删除该员工时,直接删除职工关系中的该行信息即可。不再会把该部门的信息也删除,从而解决了删除异常的问题。10第4章 关系数据库的规范化理论