当前位置:文档之家› 第3讲 关系数据库原理(关系的完整性和规范化)

第3讲 关系数据库原理(关系的完整性和规范化)

第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
13
第3讲
二,函数依赖
4.传递函数依赖
定义
在关系模式中,如果X→Y(不能Y→X),Y→Z, 在关系模式中,如果X→Y(不能Y→X),Y→Z, 若存在X→Z ,则称" 传递依赖于X 若存在X→Z ,则称"Z传递依赖于X".
示例
有如下的关系模式 SD(学号,姓名,系名,系主任) SD(学号,姓名,系名,系主任)
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
15
第3讲
三,关系的规范化
1. 概念和范式的类型
类型
第一范式(1NF) 第一范式(1NF) 第二范式(2NF) 第二范式(2NF) 第三范式(3NF)…… 第三范式(3NF)……
高 低
关系规范化的概念
将低级范式转换为若干个高级范式过程.
学习目标
认知目标:
理解关系的完整性规则 了解函数依赖,关系规范化的含义 理解三种范式的定义
——关系的完整性规则,规范化 ——关系的完整性规则,规范化
能力目标: 能力目标:
能判别关系的范式类别 (重点,难点) 重点,难点) 能进行范式的分解(重点,难点)
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
学号 01 01 02 03 03 04 课程号 C1 C2 C1 C3 C2 C1 成绩 90 78 85 57 77 83 教师 王 周 王 李 周 王 教师年龄 34 45 34 27 45 34 办公室 2-14 1-01 2-14 3-15 1-01 2-14
18
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
不是.因为:学号→系名,系名→ 不是.因为:学号→系名,系名→系主任,存在传递依赖关系.
解决方法:消除传递函数依赖.
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
21
第3讲
三,关系的规范化
4.第三范式(3NF) 分解为3NF的方法: 分解为3NF的方法:
把直接对主码函数依赖的非主属性与决定它们的主码 放在一个关系模式中. 放在一个关系模式中. 把造成传递函数依赖的决定因素连同被它们决定的属 性放在一个关系模式中. 性放在一个关系模式中. 检查分解后的新模式,如果不是3NF, 检查分解后的新模式,如果不是3NF,则继续按照前面 的方法进行分解,直到达到要求. 的方法进行分解,直到达到要求.
第3讲
第1章 关系数据库原理
——关系的完整性和关系的规范化 ——关系的完整性和关系的规范化 主讲人:李静
SQL Server 2005
第3讲
复习
什么是关键字/ 什么是关键字/码/键?
答:是能用来惟一标识元组的属性或属性组合.
什么是主关键字/主码/ 什么是主关键字/主码/主键?
答:被指定为关键字的候选关键字,称为~.
3.部分函数依赖(局部依赖)
定义
对于一个函数依赖:X→Y,如果存在Z∈X( 对于一个函数依赖:X→Y,如果存在Z∈X(Z 属于X),且有Z→Y成立,则称" 属于X),且有Z→Y成立,则称"Y部分函数依 赖于X 赖于X".
示例
有如下的关系模式
SCD(学号,姓名,课程号,成绩,系名,系主任) SCD(学号,姓名,课程号,成绩,系名,系主任) 主码为复合码:学号+ 主码为复合码:学号+课程号 "姓名,系名,系主任"与主码是部分函数依赖 姓名,系名,系主任"
示例
有如下的关系模式: 有如下的关系模式:
生产(工厂编号,产品编号,计划数量) 生产(工厂编号,产品编号,计划数量) "工厂编号+产品编号" →"计划数量",是完全函 工厂编号+产品编号" 计划数量" 数依赖.
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
12
第3讲
二,函数依赖
把关系模式中对主码完全函数依赖的非主属性与决定 它们的主码放在一个关系模式中. 它们的主码放在一个关系模式中. 把对主码部分函数依赖的非主属性和决定它们的主属 性放在一个关系模式中. 性放在一个关系模式中. 检查分解后的新模式,如果仍不是2NF,则继续按照前 检查分解后的新模式,如果仍不是2NF,则继续按照前 面的方法进行分解,直到达到要求.
函数依赖的类型
完全函数依赖 部分函数依赖 传递函数依赖
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
11
第3讲
二,函数依赖
2.完全函数依赖
定义
如果属性Y函数依赖于复合属性X,且不与X 如果属性Y函数依赖于复合属性X,且不与X的 任何子集函数相依赖,则称" 任何子集函数相依赖,则称"Y完全函数依赖 于X".
关系模式SCD的分解结果如下: 关系模式SCD的分解结果如下:
SC(学号,课程号,成绩) SC(学号,课程号,成绩) SD(学号,姓名,系名,系主任) SD(学号,姓名,系名,系主任)
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
20
第3讲
三,关系的规范化
4.第三范式(3NF)
10
第3讲
二,函数依赖
1.概念,类型(教材52页) 函数依赖
是指关系中各属性或属性组之间的相互依赖关系.它是关系 规范化的理论基础.
函数依赖的定义
给定一个关系模式R 给定一个关系模式R,X和Y都是R的属性或属性组,对于X的每 都是R的属性或属性组,对于X 个确定值在任何时刻Y只有一个确定的值与之对应,则称" 个确定值在任何时刻Y只有一个确定的值与之对应,则称"X 函数决定Y ,或称为" 函数依赖于X 函数决定Y",或称为"Y函数依赖于X",X称为决定因素,记为 :X→Y. X→Y.
第3讲
三,关系的规范化
3.第二范式(2NF) 定义
如果关系模式R为第一范式,且R 每个非主属性完全 如果关系模式R为第一范式,且R中每个非主属性完全 函数依赖于 的主码(复合码),则称R 2NF模式. 函数依赖于R的主码(复合码),则称R为2NF模式.
示例
下列关系模式是1NF,是否是2NF?为什么? 下列关系模式是1NF,是否是2NF?为什么? SCD(学号,姓名,课程号,成绩,系名,系主任) SCD(学号,姓名,课程号,成绩,系名,系主任)
学号 03001 03102 03223 03001 姓名 马力刚 王萍华 王平 张华 李萍 性别 男 女 男 男 女 年龄 21 20 21 22 19 系编号 01 02 03 04 05
7
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
第3讲
一,关系的完整性规则
2.域完整性规则(用户定义完整性规则) 规则要求
"学号→系名,系名→系主任",则系主任传递依赖 学号→系名,系名→系主任" 于学号.
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
14
第3讲
三,关系的规范化(教材55页) (教材55页)

在关系数据库的设计过程中,对于同一个问题 ,选用不同的关系模式,其性能的优劣是大不 相同的,为了区分关系模式的优劣,人们常常 把关系模式分为各种不同等级的范式.
ER图转化为关系模式的原则是什么? ER图转化为关系模式的原则是什么?
答:(1)每个实体转换为一个关系. 每个实体转换为一个关系. (2)每个联系也转换成一个关系. (3)有相同码的关系可以合并.
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
2
第3讲
复习
关系应具备什么性质?
主码为复合码:学号+ 主码为复合码:学号+课程号
不是.因为:"姓名,系名,系主任" 不是.因为:"姓名,系名,系主任"与主码是部分函数依 赖(即:只依赖于学号)
解决方法:消除部分函数依赖.
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
19
第3讲
三,关系的规范化
3.第二范式(2NF) 分解为2NF的方法: 分解为2NF的方法:
示例:判断哪一张表是1NF? 示例:判断哪一张表是1NF?
第1章 关系数据库原理—关系的完整性规则,关系的规范化 关系数据库原理—
17
第3讲
三,关系的规范化
2.第一范式(1NF) 第一范式可能存在的问题:
数据冗余:如各位老师的信息重复. 插入异常:如果要插入刘老师的个人信息,但刘老师未开 课,会造成缺关键字"学号" 课,会造成缺关键字"学号","课程号". 课程号" 删除异常:当要删除 课程号="C3" 的元组,会丢失李老师 课程号= C3" 的信息. 修改量大.
定义
如果关系模式R为第二范式,且R 如果关系模式R为第二范式,且R中每个非主属 性都不传递函数依赖于R的某个候选码,则称R 传递函数依赖于R的某个候选码,则称R 为3NF模式. 3NF模式.
示例
下列关系模式是2NF,是否为3NF?为什么? 下列关系模式是2NF,是否为3NF?为什么? SD(学号,姓名,系名,系主任) SD(学号,姓名,系名,系主任)
6
第3讲
一,关系的完整性规则
1.实体完整性规则(教材30页)
规则要求:
在任何关系的任何一个元组中,主键的值不能为空 在任何关系的任何一个元组中,主键的值不能为空 值,也不能取重复的值. 值,也不能取重复的值.
相关主题