关系模式规范化
……
Cname 数据库 数据结构 C语言 计算机网络 数据库 计算机网络 编译原理 信息系统 数据库 高等数学 信息系统 数据库 高等数学
Grade 85 81 92 76 82 94 83 87 79 81 90 88 85
分析可能存在的问题! 分析可能存在的问题!
9.1 问题的提出
产生问题的原因 SCD关系模式中存在某些不合适的数据依 SCD关系模式中存在某些不合适的数据依 赖 解决的办法 对关系模式SCD进行分解, SCD进行分解 对关系模式SCD进行分解,消除不合适的 数据依赖 解决问题的理论依据 关系规范化理论
2NF的定义 的定义 若关系模式R∈ 若关系模式 ∈1NF,并且每一个非主属性 , 都完全函数依赖于R的码,则R∈2NF。 都完全函数依赖于 的码, ∈ 。 的码 将SCD(Sno,Sdept,Mname,Cname,Grade)进 ( ) 行分解成两个关系模式: 行分解成两个关系模式: SD(Sno,Sdept,Mname) ( ) SC(Sno,Cname,Grade) ( ) 关系模式SD和SC中不存在非主属性对码的部分 关系模式 和 中不存在非主属性对码的部分 函数依赖,因此SD和 均属于 均属于2NF 函数依赖,因此 和SC均属于
结论: 结论: 数据冗余的情况有一定 程序的改善 仍然存在数据冗余、 仍然存在数据冗余插 入异常、 入异常、更新异常 异常产生原因: 异常产生原因:存在非主 属性对码的传递函数依赖。 属性对码的传递函数依赖。
2006640102 计算机网络 76 1 2006640102 数据库 5 82
2006640102 计算机网络 94 5 2006640102 编译原理 1 2006640200 信息系统 4 83 87
9.2.2常用术语和符号 常用术语和符号
4、 X→Y, Y→X,则X 、 , , 5、若Y不函数依赖于 ,记作 ﹨ 、 不函数依赖于X,记作X→Y 不函数依赖于 6、完全函数依赖 、 在关系模式R(U)中,如果X→Y,并且 中 如果 在关系模式 , 对于X的任何一个真子集 的任何一个真子集X’,都有X’ Y, 则 对于 的任何一个真子集 ,都有 完全函数依赖于X,记作X 称Y完全函数依赖于 ,记作 f Y。 完全函数依赖于 。 7、部分函数依赖 、 不完全函数依赖于X, 若X→Y,但Y不完全函数依赖于 ,则 , 不完全函数依赖于 P 部分函数依赖于X,记作X Y。 称Y部分函数依赖于 ,记作 部分函数依赖于 。
9.3.1 第一范式(1NF) 第一范式( )
1NF的定义 的定义 如果一个关系模式R的所有属性都是不可 如果一个关系模式 的所有属性都是不可 分的基本数据项, 分的基本数据项,则R∈1NF。 ∈ 。 第一范式是对关系模式的最起码的要求。 第一范式是对关系模式的最起码的要求。不 满足第一范式的数据库模式不能称为关系数 据库。 据库。 满足第一范式的关系模式并不一定是一个好 的关系模式。 的关系模式。 关系模式SCD(Sno,Sdept,Mname,Cname,Grade) 关系模式 ( ) 属于1NF,但不是一个好的关系模式 属于 ,
9.3 规范化
满足一定条件的关系模式称为范式 范式是符合某种级别的关系模式的集合。 范式是符合某种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。 关系数据库中的关系必须满足一定的要求。满足不 同程度要求的为不同范式。 同程度要求的为不同范式。 范式包括第一范式 第二范式、第三范式、 范式 第一范式、 范式包括第一范式、第二范式、第三范式、BC范式 、第四范式第五范式 关系模式的规范化: 关系模式的规范化:将一个低一级范式的关系模式 ,通过模式分解转换为若干个高一级范式的关系模 式集合的过程 规范化的目的:使数据库结构合理,消除存储异常 规范化的目的:使数据库结构合理, 使数据冗余尽量小,便于插入、删除和更新。 ,使数据冗余尽量小,便于插入、删除和更新。
9.2 函数依赖的基本概念
关系模式中的各属性之间相互依赖、相互 关系模式中的各属性之间相互依赖、 数据依赖。 制约的联系称为数据依赖 制约的联系称为数据依赖。数据依赖是通过一 个关系中属性间值的相等与否体现出来的数据 间的相互关系,是现实世界属性间相互联系的 间的相互关系, 抽象,是数据内在的性质和语义的体现。 抽象,是数据内在的性质和语义的体现。 数据依赖的分类:函数依赖、多值依赖和链接 数据依赖的分类:函数依赖、多值依赖和 依赖
9.3.1 第一范式(1NF) 第一范式( )
Sno 20066401021 20066401025 20066401021 20066401021 20066401025 20066401025 20066401021 20066402004 20066402004 20066402004 20066402005 20066402005 20066402005 Sdept 计算机系 计算机系 计算机系 计算机系 计算机系 计算机系 计算机系 信息系 信息系 信息系 信息系 信息系 信息系 Mname 张同心 张同心 张同心 张同心 张同心 张同心 张同心 裴松涛 裴松涛 裴松涛 裴松涛 裴松涛 裴松涛
第9章:关系模式规范化 章
本章要解决的关键问题: 本章要解决的关键问题:针对一个 具体的应用问题, 具体的应用问题,如何构造一个适合于 它的关系模型以及判断一个关系模型好 坏的标准。 坏的标准。
9.1 问题的提出
设计一个学生数据库, 设计一个学生数据库,该数据库中存储信 息包括:学生学号( )、所在系 息包括:学生学号(Sno)、所在系(Sdept)、 )、所在系( )、 系主任姓名( )、课程名 系主任姓名(Mname)、课程名(Cname)、 )、课程名( )、 成绩(Grade)。 成绩( )。 学生数据库的语义: 学生数据库的语义:
关系模式S、 和 的一个实例 关系模式 、D和SC的一个实例
D的一个实例 的一个实例
Sdept 计算机系 信息系 …… Mname 张同心 裴松涛
SC的一个实例 的一个实例
Sno Cname 85 81 92 Grade 2006640102 数据库 1 2006640102 数据结构 5 2006640102 C语言 1 Sdept
9.2.2常用术语和符号 常用术语和符号
1、非平凡的函数依赖 、 X→Y,Y不是 X的子集,则称X→Y是非 , 不是 的子集,则称 是非 的子集 平凡的函数依赖。 平凡的函数依赖。 2、平凡的函数依赖 、 X→Y,Y是 X的子集,则称 的子集, , 是 的子集 则称X→Y是平凡 是平凡 的函数依赖。 的函数依赖。 3、决定因素 、 若X→Y,则X称为这个函数依赖的决定因 , 称为这个函数依赖的决定因 或决定属性集。 素,或决定属性集。
SD和SC的实例 和 的实例
SD的一个实例 的一个实例
Sno 20066401021 20066401025 20066402004 20066402005 Sdept 计算机系 计算机系 信息系 信息系 …… Mname 张同心 张同心 裴松涛 裴松涛
SC的一个实例 的一个实例
Sno Cname 85 81 92 Grade 2006640102 数据库 1 2006640102 数据结构 5 2006640102 C语言 1
9.2.1 函数依赖的形式化定义
是一个属性集U上的关系模式 设R(U)是一个属性集 上的关系模式,X和 是一个属性集 上的关系模式, 和 Y是U的子集。若对于 是 的子集 若对于R(U)的任意一个可能的 的子集。 的任意一个可能的 关系r, 中不可能存在两个元组在 中不可能存在两个元组在X上的属性 关系 ,r中不可能存在两个元组在 上的属性 值相等, 而在Y上的属性值不等 上的属性值不等, 值相等, 而在 上的属性值不等, 则称 “X函 函 数确定Y” 函数依赖于X”,记作X→Y。 数确定 或“Y函数依赖于 ,记作 函数依赖于 。
……
Cname 数据库 数据结构 C语言 计算机网络 数据库 计算机网络 编译原理 信息系统 数据库 高等数学 信息系统 数据库 高等数学
Grade 85 81 92 76 82 94 83 87 79 81 90 88 85
分析该关系模式中存在的函数依赖关系
9.3.2 第二范式(2NF) 第二范式( )
一个系有若干学生,一个学生只属于一个系; 一个系有若干学生,一个学生只属于一个系; 一个系只有一名主任; 一个系只有一名主任; 一个学生可以选修多门课程, 一个学生可以选修多门课程,每门课程有若干 学生选修; 学生选修; 每个学生所学每门课程都有一个成绩。 每个学生所学每门课程都有一个成绩。
单一的关系模式SCD的一个实例 的一个实例 单一的关系模式
↔Y
9.2.2常用术语和符号 常用术语和符号
8、传递函数依赖 、 在关系模式R(U)中,X、Y和Z是U的子 在关系模式 中 、 和 是 的子 其中Y函数依赖于 函数依赖于X, 函数依赖于 函数依赖于Y, 集,其中 函数依赖于 ,Z函数依赖于 , 不函数依赖于Y,则称Z传递依赖于 传递依赖于X, 但X不函数依赖于 ,则称 传递依赖于 , 不函数依赖于 记作X 记作 T Y 9、候选码、主码、主属性、非主属性、全码 、候选码、主码、主属性、非主属性、 为关系模式R<U,F>中的属性或属 设K为关系模式 为关系模式 中的属性或属 F 性组合。 称为R的一个侯选 性组合。若K U,则K称为 的一个侯选 , 称为 码
9.3.3 第三范式(3NF) 第三范式( )
3NF的定义 的定义 如果关系模式R 如果关系模式 ∈ 2NF,且每个非主属性 , 都不传递函数依赖于R的码 则称R符合第三范 的码, 都不传递函数依赖于 的码,则称 符合第三范 记作R 式,记作 ∈3NF 将SD分解为两个关系模式 和D 分解为两个关系模式S和 分解为两个关系模式 S(Sno,Sdept) ( ) D(Sdept,Mname) ( ) SC(Sno,Cname,Grade) ( ) S ∈3NF ,D ∈3NF ,SC ∈3NF