150 likes | 483 Views
数据库原理与 SQL Server. 第 7 课 数据库规范化设计 ( 三 ). 第 7 课 数据库规范化设计 —— 范式. 目标: 了解关系模式的范式的概念 掌握第一、二、三范式的判定 掌握关系模式的规范化方法. 3.3 数据库原理 — 数据库规范化设计. 概念: 对于给定应用环境,构造最优数据库模式 目标:结构合理、使用方便、效率较高的数据库 内容: 3.3.1 数据模型 3.3.2 关系模型规范化问题 3.3.3 函数依赖 3.3.4 属性集闭包 3.3.5 范式. 数据库逻辑结构. 数据依赖. 评价标准. 一、范式.
E N D
数据库原理与SQL Server 第7课 数据库规范化设计(三)
第7课 数据库规范化设计——范式 目标: • 了解关系模式的范式的概念 • 掌握第一、二、三范式的判定 • 掌握关系模式的规范化方法
3.3 数据库原理—数据库规范化设计 概念:对于给定应用环境,构造最优数据库模式 目标:结构合理、使用方便、效率较高的数据库 内容:3.3.1 数据模型 3.3.2 关系模型规范化问题 3.3.3 函数依赖 3.3.4 属性集闭包 3.3.5 范式 数据库逻辑结构 数据依赖 评价标准
一、范式 范式:满足特定要求的关系模式,评价关系模式的优劣 第n范式:表示关系模式的某一级别 5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF 规范化:通过模式分解,将低一级范式转换成若干高一级范式
第一范式(1NF) 定义 R中每一属性的值域为原子的,则R属于1NF模式 实例 对R(sno,sname,sex,phone) 当phone包含两个电话时R非1NF 结论 ● 1NF与关系模式的性质(属性是原子的)一致, 即关系模式必属于1NF
第二范式(2NF) 定义 R∈1NF且每个非主属性完全依赖于候选键,则R属于2NF模式 非主属性: 主属性: 不属于候选键的属性 属于候选键的属性 完全依赖: 局部依赖: 左部不可约 左部可约 实例 关系模式R(sno,cno,score,tno,taddress),约定“一门课程只能 由一个教师带”,判断R是否属于2NF模式 由“一门课程只能由一个教师带”,则候选键为:(sno,cno) 对非主属性tno、taddress,有:cno→(tno,taddress) 则(sno,cno)→(tno,taddress)为局部依赖 即R∉2NF
2NF结论 ● 2NF要求每个非主属性不能由候选键的一部分 决定,否则必有冗余 如R(sno,cno,score,tno,taddress),当同一课程 有多个学生选修时,tno冗余 ● 当R候选键为单属性时,必属于2NF
2NF分解 算法R(WXYZ),若存在X→Y(即Y局部依赖于候选键), 则可将R分解为: R1(WXZ)和R2(XY)。 实例 对关系模式R(sno,cno,score,tno,taddress),R∉2NF 分解: R1(sno,cno,score) 和 R2(cno,tno,taddress) 消除了局部依赖(sno,cno)→(tno,taddress) R1、R2∈2NF 注意 taddress为教师的属性
第三范式(3NF) 定义 R∈1NF且每个非主属性都不传递依赖于候选键,则R属于 3NF模式 X→A传递依赖:X→Y,Y→A(Y→X不成立且A∉Y) 等价定义:R∈1NF且F中每个非平凡X→Y,都有X是超键或Y中 每个属性均为主属性,则称R属于3NF模式 实例 将R分解为R1(sno,cno,score)和R2(cno,tno,taddress),判断 R2是否属于3NF模式 ,taddress为非主属性且tno非超键 ,R2∉3NF 有:tno→taddress (一教师可带多门 课 或:cno→tno ,tno→taddress 且tno→cno不成立 ,故cno→taddress为传递函数依赖 ,即tno一定非候选键)
3NF结论 ● 3NF要求每个非主属性必须由候选键决定,否则必有 数据冗余 如R2(cno,tno,taddress),当同一教师带多门课程时,taddress冗余 ● 2NF只要求每个非主属性不能由候选键的一部分(但 可以是非主属性)决定,显然3NF⊂2NF ● 实际对X→Y,当X非候选键则当X相同Y必冗余 X不属于候选键 X非候选键 X是候选键的一部分 ∉2NF ∉3NF
3NF分解 算法R(WXYZ),若存在X→Y(即Y传递依赖于候选键), 则可将R分解为: R1(WXZ)和R2(XY)。 实例 对关系模式R2(cno,tno,taddress),R∉3NF 分解: R21(cno,tno) 和 R22(cno,taddress) 消除了taddress传递依赖于cno,R21、R22∈3NF 最终,将非2NF模式R(sno,cno,score,tno,taddress) 分解为3NF模式的关系模式 R1(sno,cno,score) ,R2(cno,tno) ,R3(cno,taddress)
其他范式 BCNF:所有属性都不传递依赖与候选键 4NF:多值依赖 5NF:联结依赖
关系模式的分解特性 模式分解:将泛关系模式R(U)分解为模式数据库模式 ρ={R1,…,Rk} 模式分解等价性:R和ρ是否表示同一个数据库 数据等价: 语义等价: 无损分解 保持依赖 判定
结论 ● 规范化是消除不合适的数据依赖,使关系模式分离 实质是概念的单一化,即一个关系描述一个实体 如R(sno,sname,sex,cno,cname,score),分解为 R1(sno,sname,sex),R2(cno,cname),R3(sno,cno,score) ● 并不是规范化程度越高越好,分解过细将使查询需 更多的联接
作业 第三章 习题 15、16、17