
第三章 关系规范化基础 教学要求: 1、会根据一个关系的语义,分析出属性间 存在的各种函数依赖,并能够得出相应的最 小函数依赖。 2、掌握关系的第一、第二、第三以及BC范 式的定义,会根据一个关系的最小函数依赖 集确定它的规范化级别。 3、会对一个具体关系进行规范化,使之达 到所要求的规范化级别
第三章 关系规范化基础 教学要求: 1、会根据一个关系的语义,分析出属性间 存在的各种函数依赖,并能够得出相应的最 小函数依赖。 2、掌握关系的第一、第二、第三以及BC范 式的定义,会根据一个关系的最小函数依赖 集确定它的规范化级别。 3、会对一个具体关系进行规范化,使之达 到所要求的规范化级别

3.1数据依赖 定义1:设一个关系为R(U),X和Y为属性集U上的子集,若对 于元组中X上的每个值,都有Y上的一个唯一值与之对应, 则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数 依赖于X,记做X→Y,称X为决定因素。 例如3-1设一个职工关系为(职工号,姓名,性别,年龄, 职务)。 分析:主码:职工号 存在的函数依赖关系: 职工号→姓名,职工号→性别,职工号→年龄,职 工号→职务 定义2:设关系为R(U),X和Y为属性集U上的子集,若X→Y 且X包含Y,称X→Y为平凡函数依赖。 例如: (职工号,性别)→性别,是平凡的函数依赖
3.1数据依赖 定义1:设一个关系为R(U),X和Y为属性集U上的子集,若对 于元组中 X上的每个值,都有Y上的一个唯一值与之对应, 则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数 依赖于X,记做X→Y,称X为决定因素。 例如3-1设一个职工关系为(职工号,姓名,性别,年龄, 职务)。 分析:主码:职工号 存在的函数依赖关系: 职工号→姓名,职工号→性别,职工号→年龄,职 工号→职务 定义2:设关系为R(U) ,X和Y为属性集U上的子集,若X→Y 且X包含Y,称X→Y为平凡函数依赖。 例如: (职工号,性别)→性别,是平凡的函数依赖

定义3:设一个关系为R(U),X和Y为属性集U上的子 集,若X→Y,同时X的一个真子集X'也能够函数决定 Y,即X→Y,则称X部分函数决定Y,或Y部分函数依 赖于X,记做xY,否则若不存在一个真子集X?,使 得X?也能够函数决定Y,则称X完全函数决定Y,或Y 完全函数依赖于X,记做XY。X→Y的部分函数依赖 也称为局部函数依赖。 例如:设一个教师任课关系为(教工号,姓名,职称,课 程号,课程名,课时数,课时费),假定每个教师可以讲 授多门课,每门课可以由多个教师讲授。 分析:主码:(教工号,课程号) 教工号→姓名,教工号→职称 课程号→课程名,课程名→课时数 (职称,课程号)→课时费/以上是完全函数依赖 部分依赖:(教工号,课程号)→姓名等
定义3:设一个关系为R(U),X和Y为属性集U上的子 集,若X→Y,同时X的一个真子集X’也能够函数决定 Y,即X’→Y,则称X部分函数决定Y,或Y部分函数依 赖于X,记做X→Y,否则若不存在一个真子集X’,使 得X’也能够函数决定Y,则称X完全函数决定Y,或Y 完全函数依赖于X,记做X→Y。X→Y的部分函数依赖 也称为局部函数依赖。 p f 例如:设一个教师任课关系为(教工号,姓名,职称,课 程号,课程名,课时数,课时费),假定每个教师可以讲 授多门课,每门课可以由多个教师讲授。 分析:主码: (教工号,课程号) 教工号→姓名,教工号→职称 课程号→课程名,课程名→课时数 (职称,课程号)→课时费 //以上是完全函数依赖 部分依赖: (教工号,课程号) →姓名等

定义4:一个关系为R(U),X,Y,Z为属性集U上的子 集,其中X→Y,Y→Z,但Y→XY不包含x,则存在x→Z, 称此为传递函数依赖,即X传递函数决定Z,Z传递函数依赖于X。 例如:设一个学生关系为(学号,姓名,性别,系号,系主任 名)。要求:每个学生只属于一个系,每个系有许多学生,每 个一系都对应唯一的系名和系主任名。 学号+系名,系名+系主任名,则学号→系主任名 定义5:设一个关系为R(U),X,Y,Z为属性集U上的子 集,若X→Y,则存在Z→Yz,z→Y 例如:教工号→姓名,则(教工号,课程号)→姓名, 若:职工号→职务,则(职工号,性别)→(职务,性别)
定义4:一个关系为R(U),X,Y,Z为属性集U上的子 集,其中X →Y,Y →Z,但Y→X,Y不包含X,则存在X →Z, 称此为传递函数依赖,即X传递函数决定Z,Z传递函数依赖于X。 例如:设一个学生关系为(学号,姓名,性别,系号,系主任 名)。要求:每个学生只属于一个系,每个系有许多学生,每 个一系都对应唯一的系名和系主任名。 学号→系名,系名→系主任名,则学号→系主任名 定义5:设一个关系为R(U),X,Y,Z为属性集U上的子 集,若X →Y,则存在XZ →YZ,XZ →Y 例如: 教工号→姓名,则(教工号,课程号) →姓名, 若:职工号→职务,则(职工号,性别) →(职务,性别)

定义6若一个关系为R(U),X和Y为U的子集,若X→Y, 并且为完全非平凡函数依赖,同时Y为单属性,则称X→Y为R的 最小函数依赖。由R中所有最小函数依赖构成R的最小函数依赖 集,其中不包含有冗余的传递函数依赖。 例如:设一个关系为:R(A,B,C,D),它的函数依赖集 为FD={A→B,B→C,A→C,B→D},判断它是否为R的最小函 数依赖集。 分析:因为A→B,B→C是传递依赖,所以FD不是最小的函数依 赖。改为:FD={A→B,B→C,B→D. 例如:职工关系的最小函数依赖集: FD1={职工号→姓名,职工号→性别,职工号→年龄,职工 号→职务} 例如:教师任课的最小函数依赖集: FD2={教工号→姓名,教工号→职称,课程号→课程名,课程 号→课时数,(职称,课程号)→课时费}
定义6若一个关系为R(U),X和Y为U的子集,若X →Y, 并且为完全非平凡函数依赖,同时Y为单属性,则称X →Y为R的 最小函数依赖。由R中所有最小函数依赖构成R的最小函数依赖 集,其中不包含有冗余的传递函数依赖。 例如:设一个关系为:R(A,B,C,D),它的函数依赖集 为FD={A →B,B →C,A →C,B →D},判断它是否为R的最小函 数依赖集。 分析:因为A →B,B →C是传递依赖,所以FD不是最小的函数依 赖。改为:FD={A →B,B→C,B →D}. 例如:职工关系的最小函数依赖集: FD1={职工号→姓名,职工号→性别,职工号→年龄,职工 号→职务} 例如:教师任课的最小函数依赖集: FD2={教工号→姓名,教工号→职称,课程号→课程名,课程 号→课时数,(职称,课程号) →课时费}

例如:学生关系的最小函数依赖集: FD3={学号→姓名,学号→性别,学号→系号,学号→系名, 学号→系主任} 定义7:设一个关系为R(U),X为U的一个子集,若X能 够函数决定U中的每个属性,并且X的任何真子集都不 能函数决定U中的每个属性,则称X为关系R的候选码。 例如:P55,例3-7 例3-8P56 小结函数依赖的常用规则:P57 (1)自反性(2)增广性(3)传递性(4)合并性 (5)分解性(6)伪传递性(7)复合性(8)自增 性
例如:学生关系的最小函数依赖集: FD3={学号→姓名,学号→性别,学号→系号,学号→系名, 学号→系主任} 定义7:设一个关系为R(U),X为 U的一个子集,若X能 够函数决定U中的每个属性,并且X的任何真子集都不 能函数决定U中的每个属性,则称X为关系R的候选码。 例如:P55,例3-7 例3-8 P56 小结函数依赖的常用规则:P57 (1)自反性(2)增广性(3)传递性(4)合并性 (5)分解性(6)伪传递性(7)复合性(8)自增 性

3.2关系规范化 一、第一范式(1NF) 关系就是一范式 二、第二范式(2NF) 去掉关系中非主属性对候选码的部分依赖。则称该 关系是符合第二范式的关系。 例如3-11P60 得出: 若一个关系中所有候选码都是单属性,则就不存在 部分依赖,满足第一范式也就满足了第二范式。只 有出现复合候选码时才可能存在部分函数依赖。通 过分解达到第二范式
3.2关系规范化 一、第一范式(1NF) 关系就是一范式 二、第二范式(2NF) 去掉关系中非主属性对候选码的部分依赖。则称该 关系是符合第二范式的关系。 例如3-11P 60 得出: 若一个关系中所有候选码都是单属性,则就不存在 部分依赖,满足第一范式也就满足了第二范式。只 有出现复合候选码时才可能存在部分函数依赖。通 过分解达到第二范式

二范式的分解方法: ·找出对侯选码部分依赖的非主属性所依 赖的键码的真子集,然后把这个真子集 与所有相应的非主属性结合成一个新的 关系;对键码完全依赖的所有非主属性 则与键码组成另一个新关系
二范式的分解方法: 找出对侯选码部分依赖的非主属性所依 赖的键码的真子集,然后把这个真子集 与所有相应的非主属性结合成一个新的 关系;对键码完全依赖的所有非主属性 则与键码组成另一个新关系.

三、第三范式(3NF) 消除掉关系R中非主属性对候选码的传递依赖,则 称该关系是符合第三范式的。 例如:P63,例3-12 四、BC范式(BCNF) 若一个关系为R(U),它是满足第一范式的,当R中 不存在任何属性对候选码的传递函数依赖时,则 称R是符合BCNF的
三、第三范式(3NF) 消除掉关系R中非主属性对候选码的传递依赖,则 称该关系是符合第三范式的。 例如:P63,例3-12 四、BC范式(BCNF) 若一个关系为R(U),它是满足第一范式的,当R中 不存在任何属性对候选码的传递函数依赖时,则 称R是符合BCNF的