第二范式的目的6.2.42NF是要消除部分依赖!!!函数依赖示例提出问题:已知关系模式S(S#,SN,SD,DEAN C#, G)G码为(S#,C#),有不良特性:插入异常、删除异常S#C#·更新异常、数据余不良特性是由于该关系模式存在非主属性SN,SD对码(S#,C#)的部分函数依SDSN赖引起的。现在考虑消除非主属性对码的部分函数依赖 --定义2NF。DEAN11
11 6.2.4 2NF 提出问题:已知关系模式 S(S#,SN,SD,DEAN C#, G) 码为(S#,C#),有不良特性: 插入异常、删除异常 更新异常、数据冗余 不良特性是由于该关系模式存在非主 属性SN,SD对码(S#,C#)的部分函数依 赖引起的。 现在考虑消除非主属性对码的部分函 数依赖 - 定义2NF。 S# C# G SN SD DEAN 函数依赖示例 第二范式的目的 是要消除部分依 赖!!!
2NF:定义(参见P174)定义6.6若RE1NF,且每个非主属性完全函商数依赖于码,则称RE2NF。2NF的定义要求消除非主属性对码的部分依赖■注意:>U(1)码的定义是:码(2)U中有主属性和非主属性,,2NF的定义要求:码于非主属性:2(3) 码_U,不等于码」每个属性。■例如,S2NF,因为存在非主属性对码的部分依赖:(S#,C#)_pSN(S#,C#)pSD12
12 2NF: 定义(参见P174.) 定义6.6 若R1NF,且每个非主属性完全函 数依赖于码,则称R2NF。 2NF的定义要求消除非主属性对码的部分依赖。 注意: (S#,C#) SD p (S#,C#) SN p (2) U中有主属性和非主属性, 2NF的定义要求: 码 非主属性; f (3) 码 f U, 不等于码 f 每个属性。 f (1) 码的定义是: 码 U; 例如,S2NF,因为存在非主属性对码的部分依赖:
对非2NF模式进行分解,转为2NF分解关系模式,消除非主属性对码的部分依赖非主属性有两种:一种完全依赖于码:一种部分依赖于码---将其分出。如将S分解为:S#C#SC(S#, C#, G)S SD(S# , SN, SD,DEAN)SNS#它们都属于2NF函数依赖图SDDEAN练习:设有关系模式R(A,B,C,D),码为AB,给出它S的一个函数依赖集,使得R属于1NF而不属于2NF。(AB-C, AB→D, A-C)13
13 对非2NF模式进行分解,转为2NF 分解关系模式,消除非主属性对码的部分依赖 非主属性有两种: 一种完全依赖于码; 一种部分依赖于 码 - 将其分出。如将S分解为: SC(S# , C# , G) S_SD(S# , SN , SD , DEAN) 它们都属于2NF。 {AB→C, AB→D, A→C} 练习:设有关系模式R(A, B, C, D), 码为AB,给出它 的一个函数依赖集,使得 R属于1NF而不属于2NF。 S# C# G S# SN SD DEAN 函数依赖图
关于2NF的结论1.不存在非主属性的关系模式属于2NF。■没有非主属性全码关系模式属于2NF2.码只由一个属性组成的关系模式属于2NF。■不会有部分依赖3.二目关系模式属于2NF。码或是一个属性,或是全码4. 若R属于1NF,但R不一定属于2NF。例如,关系模式 S(S#, SN,SD,DEAN,C#,G)14
14 关于2NF的结论 1. 不存在非主属性的关系模式属于2NF。 没有非主属性 全码关系模式属于2NF 2. 码只由一个属性组成的关系模式属于2NF。 不会有部分依赖 3. 二目关系模式属于2NF。 码或是一个属性,或是全码 4. 若R属于1NF,但R不一定属于2NF。 例如, 关系模式 S(S#, SN, SD, DEAN, C#, G)
3NF6.2.5提出问题:2NF的关系模式是否就是“好”的呢?■看例子,已知关系模式 S SD(S#,SN,SD,DEAN)是2NF的,但仍然具有不良特性■插入异常:如果某系还没有招学生,则关于该系的信息就无法插入。■删除异常:如果某系的学生全部毕业了,则在册删除学生信息的同时将关于系的信息也随之删除了。■更新异常:如果学生转系,不但要修改SD,还要修改DEAN,如果换系主任,则该系每个学生元组都要做相应修改。■数据穴余:每个学生都存储了所在系的系主任的信息
6.2.5 3NF 提出问题: 2NF的关系模式是否就是“好”的呢? 看例子,已知关系模式 S_SD(S#, SN, SD, DEAN)是 2NF的,但仍然具有不良特性: 插入异常:如果某系还没有招学生,则关于该系 的信息就无法插入。 删除异常:如果某系的学生全部毕业了,则在删 除学生信息的同时将关于系的信息也随之删除了。 更新异常:如果学生转系,不但要修改SD,还要 修改DEAN,如果换系主任,则该系每个学生元 组都要做相应修改。 数据冗余:每个学生都存储了所在系的系主任的 信息