数据库系统概论第六章.ppt
文本预览下载声明
6.2 规范化(续) 但是满足3NF的关系模式也未必就是好的关系模式。 如:关系模式STC(S,T,C)中,S表示学生,T表示教师,C表示课程。假设每个教师只教一门课,每门课由若干教师教,某一学生选定某门 课,就对应一个固定的教师。 函数依赖集:(S,T) ? C,(S,C) ?T,T?C, S ?C (S,T)、 (S,J) 都是候选码。 T,S只是主属性,既不是候选码,也不包含候选码,原因是T?C,S?C,即主属性C部分函数依赖于(S,T) 。解决办法是将STC分解。 因此,引入一个新的范式, BCNF 范式,称为修正的或扩充的第三范式。 6.2 规范化(续) 3、范式(NF) Boyce-Codd(BCNF)范式 关系模式R(U,F)∈1NF,若X→Y且Y?X时X必包含码,则R(U,F) ∈ BCNF。 即:关系中的每一个决定因素都包含码。 一个满足BCNF的关系模式有: 所有非主属性对每个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性 6.2 规范化(续) 3、范式(NF) Boyce-Codd(BCNF)范式 解决办法: 发现和抹去具有函数依赖关系主属性 把候选键的一部分和与它有函数依赖关系的属性放入另外的表中 组合剩余的项为一个表 将关系STC分解为ST(S,T) TJ(T,C) 配件管理表如下,其中一个仓库由若干名管理员管理,一个管理员只管理一个仓库,他们管理所在仓库的所有商品。 练习: 答案: 函数依赖集包括: 职工编号→仓库编号, (仓库编号,配件编号)→数量, (职工编号,配件编号)→数量 (职工编号,配件编号)→仓库编号 码为: (职工编号,配件编号) 练习: 答案: 练习: 6.2 规范化(续) 3、范式(NF) 多值依赖 设关系模式R(U),X,Y,Z是U的子集,并且Z=U-X-Y。若对于R(U)的任一关系r,给定的一对(X,Z)值,存在一组Y的值与之对应,并且这组值仅仅决定于X值而与Z值无关,称为Y多值依赖于X或者X多值决定Y,记作X→→Y。 若X→→Y,若Z≠?,则X→→Y是非平凡的多值依赖;若Z=?,则是平凡的多值依赖。 6.2 规范化(续) 3、范式(NF) 多值依赖 多值依赖与函数依赖的区别: (1)函数依赖中,x→y的有效性由x,y两个属性集决定;多值依赖x→→y不仅与x,y两个属性集有关,而要检查其余属性z。因此,多值依赖的有效性与属性集的范围有关。 (2)若函数依赖x→y成立,则对于y的任一子集y’均有x→y’成立。而多值依赖却不能确定。 6.2 规范化(续) 3、范式(NF) 第四范式 关系模式R(U,F)?1NF,如果对于R的每个非平凡多值依赖X→→Y(Y?X),X都含有码,则称R(U,F) ∈4NF。 4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。 关系模式仓库管理(仓库号,管理员,商品名)中, (仓库号,商品名)→→管理员,仓库号→→管理员 对于仓库号→→管理员,决定因素仓库号不包含码,仓库管理?4NF 缺点:数据冗余度大 举例: 解决: 分解为仓库管理1(仓库号,管理员) 仓库管理2(仓库号,商品名) 4、规范化小结 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的分离,即“单一化”的模式设计原则。让一个关系去描述一个概念、一个实体或实体间的一种联系。若多于一个概念就把它“分离”出去。 分解的基本原则:无损分解 6.2 规范化(续) 6.2 规范化(续) 规范化过程概括: 指出下列关系模式是第几范式 (1)R(X,Y,Z) FD={XY?Z} (2)R(X,Y,Z) FD={Y?Z,XZ?Y} (3)R(X,Y,Z) FD={Y?Z,Y?X,X?YZ} (4)R(X,Y,Z) FD={X?Y,X?Z} (5)R(W,X,Y,Z) FD={X?Z,WX?Y} (6)R(A,B,C) FD={A?B,B?A,C?A} 练习1: 假设某商业集团数据库中有一关系模式R(商店编号,商品编号,数量,部门编号,负责人),若规定: 每个商店的每种商品只在一个部门销售; 每个商店的每个部门只有一个负责人; 每个商店的每种商品只有一个库存数量; 解答: (1)写出关系R的基本函数依赖 (2)找出R的候选码 (3)判断R的所属范式,若不属于3NF,则分解为3NF 练习2: 有这样一个关系模式 Student(学号,姓名,系别,课程编号,课程名,成绩) (1)学号是候选码吗?说明理由。 (2)该关系模式的主码是什么? (3)该关系模式是否存在部分函数依赖?如果
显示全部