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