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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
✓ 关系模式SCD的分解结果如下:
SC(学号,课程号,成绩) SD(学号,姓名,系名,系主任)
第1章 关系数据库原理—关系的完整性规则、关系的规范化 20
第3讲 三、关系的规范化
4.第三范式(3NF) ✓ 定义
如果关系模式R为第二范式,且R中每个非主属
性都不传递函数依赖于R的某个候选码,则称R
办公室 205 207 210
电话 6003 6025 6018
学号 03001 03102 03223
姓名 马力刚 王萍华 王平
性别 男 女 男
年龄 21 20 21
系编号 01
05
✓ 说明
从表的“系编号(外键)”的取值只能为两种情 况:
❖ 若取非空值,则它必须是主表中存在的值。 ❖ 取空值(null)。表明尚未给学生分配专业。Null不等于0或空字
第1章 关系数据库原理—关系的完整性规则、关系的规范化 15
第3讲 三、关系的规范化
1. 概念和范式的类型
ቤተ መጻሕፍቲ ባይዱ
✓类型
第一范式(1NF)

第二范式(2NF)
第三范式(3NF)…… 高
✓关系规范化的概念
将低级范式转换为若干个高级范式过程。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 16
✓ 目的
用于保证给定字段中数据的有效性,即保证数 据的取值在有效的范围内。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 8
第3讲 一、关系的完整性规则
3.参照完整性规则(引用完整性规则) ✓ 规则要求:
“不引用不存在的实体”。即:不允许在一 个关系中引用另一个关系中不存在的元组。
是对关系的某种约束条件。
✓ 目的
用于保证关系数据库中数据的正确性和可靠性。
✓ 类型
实体完整性规则
是关系模型必须满足 的完整性约束条件。
参照完整性规则(引用完整性规则 )
域完整性规则(用户自定义完整性规则)
第1章 关系数据库原理—关系的完整性规则、关系的规范化 6
第3讲 一、关系的完整性规则
02
C1
85

34
03
C3
57

27
03
C2
77

45
04
C1
83

34
第1章 关系数据库原理—关系的完整性规则、关系的规范化
办公室 2-14 1-01 2-14 3-15 1-01 2-14
18
第3讲 三、关系的规范化
3.第二范式(2NF)
✓ 定义
如果关系模式R为第一范式,且R中每个非主属性完全 函数依赖于R的主码(复合码),则称R为2NF模式。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 2
复习 第3讲
✓ 关系应具备什么性质?
答:(1)关系中每一个属性值都是不可分解的。 (2)关系中不允许出现相同的行。 (3)关系中不允许出现相同的列。 (4)关系中没有行序、没有列序。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 3
✓ 示例
有如下的关系模式
SCD(学号,姓名,课程号,成绩,系名,系主任) ❖主码为复合码:学号+课程号 ❖“姓名、系名、系主任”与主码是部分函数依赖
第1章 关系数据库原理—关系的完整性规则、关系的规范化 13
第3讲 二、函数依赖
4.传递函数依赖 ✓ 定义
在关系模式中,如果X→Y(不能Y→X),Y→Z, 若存在X→Z ,则称“Z传递依赖于X”。
生产(工厂编号,产品编号,计划数量)
“工厂编号+产品编号” →“计划数量”,是完全函 数依赖。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 12
第3讲 二、函数依赖
3.部分函数依赖(局部依赖) ✓ 定义
对于一个函数依赖:X→Y,如果存在Z∈X(Z 属于X),且有Z→Y成立,则称“Y部分函数依 赖于X”。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 22
第3讲 三、关系的规范化
5.各范式间的关系 ✓ 各范式之间的关系
第1章 关系数据库原理—关系的完整性规则、关系的规范化 23
第3讲 四、综合应用
实例:假设某商业集团数据库中有1个关系模式R(商 店编号,商品编号,数量,部门编号,负责人)。如 果规定: (1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。
?函数依赖的定义?给定一个关系模式rx和y都是r的属性或属性组对于x的每个确定值在任何时刻y只有一个确定的值与之对应则称xx函数决定函数决定yy或称为yy函数依赖于函数依赖于xxx称为决定因素记为
第3讲
第1章 关系数据库原理
——关系的完整性和关系的规范化
主讲人:栾志军(讲师、软件工程师) QQ:563475641 手机:15063828826
第3讲 三、关系的规范化
2.第一范式(1NF) ✓ 定义
如果关系模式R的所有属性的值域中第一个值都是不可 再分解值,则称R是属于1NF模式。
第一范式是对关系的最低要求。
✓ 示例:判断哪一张表是1NF?
第1章 关系数据库原理—关系的完整性规则、关系的规范化 17
第3讲 三、关系的规范化
2.第一范式(1NF)
✓ 示例
下列关系模式是1NF,是否是2NF?为什么? SCD(学号,姓名,课程号,成绩,系名,系主任)
❖主码为复合码:学号+课程号
不是。因为:“姓名、系名、系主任”与主码是部分函数依 赖(即:只依赖于学号)
✓ 解决方法:消除部分函数依赖。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 19
第3讲 三、关系的规范化
3.第二范式(2NF)
✓ 分解为2NF的方法:
把关系模式中对主码完全函数依赖的非主属性与决定 它们的主码放在一个关系模式中。
把对主码部分函数依赖的非主属性和决定它们的主属 性放在一个关系模式中。
检查分解后的新模式,如果仍不是2NF,则继续按照前 面的方法进行分解,直到达到要求。
✓ 目的
用于确保相关联的表间的数据保持一致。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 9
第3讲 一、关系的完整性规则
3.参照完整性规则(引用完整性规则)
请思考:下面两个关系是否违反参照完整性规则?
系表(主表)
学生表(从表)
系编号 01 02 03
系名 计算机 通信 电子
系主任 龚小勇 谭中华 袁勇
2. 由题意,上面的函数依赖可知“商店编号” 是主属性,商品编号也是主属性,由这两 个属性,可以确定关系元组的所有属性, 所以R的候选码是:商店编号+商品编号。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 25
第3讲 四、综合应用
分析与解答: 3. R(商店编号,商品编号,数量,部门编号,负
为3NF模式。
✓ 示例
下列关系模式是2NF,是否为3NF?为什么? SD(学号,姓名,系名,系主任)
不是。因为:学号→系名,系名→系主任,存在传递依赖关系。
✓ 解决方法:消除传递函数依赖。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 21
第3讲 三、关系的规范化
4.第三范式(3NF)
✓ 分解为3NF的方法:
——关系的完整性规则、规范化
学习目标
认知目标:
理解关系的完整性规则 了解函数依赖、关系规范化的含义 理解三种范式的定义
能力目标:
能判别关系的范式类别 (重点、难点) 能进行范式的分解(重点、难点)
第1章 关系数据库原理—关系的完整性规则、关系的规范化 5
第3讲 一、关系的完整性规则
✓ 定义
符串。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 10
第3讲 二、函数依赖
1.概念、类型
✓ 函数依赖
是指关系中各属性或属性组之间的相互依赖关系。它是关系 规范化的理论基础。
✓ 函数依赖的定义
给定一个关系模式R,X和Y都是R的属性或属性组,对于X的每 个确定值在任何时刻Y只有一个确定的值与之对应,则称“X 函数决定Y”,或称为“Y函数依赖于X”,X称为决定因素,记为 :X→Y。
SQL Server 2005
复习 第3讲
✓ 什么是关键字/码/键?
答:是能用来惟一标识元组的属性或属性组合。
✓ 什么是主关键字/主码/主键?
答:被指定为关键字的候选关键字,称为~。
✓ ER图转化为关系模式的原则是什么?
答:(1)每个实体转换为一个关系。 (2)每个联系也转换成一个关系。 (3)有相同码的关系可以合并。
1.实体完整性规则
✓ 规则要求:
在任何关系的任何一个元组中,主键的值不能为空 值、也不能取重复的值。
✓ 目的:用于保证数据库表中的每一个元组都是惟 一的。
请思考:下面的关系是否违反实体完整性规则?
学号 03001 03102 03223
03001
姓名 马力刚 王萍华 王平 张华 李萍
性别 男 女 男 男 女
第3讲 课余作业布置
✓ 课外练习
1. 教材P25:9 2. 补充:设关系模式SCT(学号,课程号,成绩,教师
名,教师地址)。如果规定:(1)每个学生每学一门 课程只有一个成绩;(2)每门课只有一个教师任教; (3)每个教师只有一个地址(无同名教师)。 ❖ 写出关系模式SCT的基本函数依赖集。 ❖ 找出关系模式SCT的候选码。 ❖ 试把SCT分解成2NF模式集,并说明理由。 ❖ 试把SCT分解成3NF模式集,并说明理由。
✓ 示例
有如下的关系模式 SD(学号,姓名,系名,系主任)
“学号→系名,系名→系主任”,则系主任传递依赖 于学号。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 14
第3讲 三、关系的规范化
✓引
在关系数据库的设计过程中,对于同一个问题 ,选用不同的关系模式,其性能的优劣是大不 相同的,为了区分关系模式的优劣,人们常常 把关系模式分为各种不同等级的范式。
把直接对主码函数依赖的非主属性与决定它们的主码 放在一个关系模式中。
把造成传递函数依赖的决定因素连同被它们决定的属 性放在一个关系模式中。
检查分解后的新模式,如果不是3NF,则继续按照前面 的方法进行分解,直到达到要求。
✓ 关系模式SD的分解结果如下:
SD(学号,姓名,系名) SD(系名,系主任)
✓ 函数依赖的类型
完全函数依赖 部分函数依赖 传递函数依赖
第1章 关系数据库原理—关系的完整性规则、关系的规范化 11
第3讲 二、函数依赖
2.完全函数依赖 ✓ 定义
如果属性Y函数依赖于复合属性X,且不与X的 任何子集函数相依赖,则称“Y完全函数依赖 于X”。
✓ 示例
有如下的关系模式:
年龄 21 20 21 22 19
系编号 01 02 03 04 05
第1章 关系数据库原理—关系的完整性规则、关系的规范化 7
第3讲 一、关系的完整性规则
2.域完整性规则(用户定义完整性规则) ✓ 规则要求
由用户根据实际情况,定义表中属性的取值 范围
❖ 例如:性别只能是男和女、年龄不能为负值、成 绩在0—100之间等。
1. 写出关系模式R的基本函数依赖集 2. 找出关系模式R的候选码。 3. 关系模式R最高已经达到第几范式?为什么? 4. 如果R不属于3NF,请将R分解成3NF。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 24
第3讲 四、综合应用
分析与解答: 1. 基本的函数依赖有:
(商店编号+商品编号) → 部门编号 (商店编号+部门编号) → 负责人 (商店编号+商品编号) → 数量
责人) 最高已达到2NF。因为负责人是码的 传递依赖。 4. 要达到3NF,必须消除非主属性对码的传递 依赖。对R分解后的两个模式如下:
R1(商店编号,商品编号,数量,部门编号) R2(部门编号,负责人)
第1章 关系数据库原理—关系的完整性规则、关系的规范化 26
第3讲 本课小结
1. 关系的完整性规则
实体完整性/参照完整性/域完整性
2. 范式的类型
1NF、2NF、3NF
3. 各范式间的关系:
1NF中的每个属性值是不可再分的,它是关系模式的 最低要求。
消除1NF中的部分函数依赖,可转换为2NF。 消除2NF中的传递函数依赖,可转换为3NF。
第1章 关系数据库原理—关系的完整性规则、关系的规范化 27
✓ 第一范式可能存在的问题:
数据冗余:如各位老师的信息重复。
插入异常:如果要插入刘老师的个人信息,但刘老师未开 课,会造成缺关键字“学号”、“课程号”。
删除异常:当要删除 课程号=“C3” 的元组,会丢失李老师 的信息。
修改量大。
学号
课程号
成绩
教师
教师年龄
01
C1
90

34
01
C2
78

45
第3讲 第1章 关系数据库原理
——关系的完整性规则、规范化
教学内容
1. 关系的完整性规则
实体完整性、参照完整性、域完整性
2. 函数依赖
完全函数依赖、部分函数依赖、传递函数 依赖
3. 关系的规范化
第一范式、第二范式、第三范式
第1章 关系数据库原理—关系的完整性规则、关系的规范化 4
第3讲 第1章 关系数据库原理
相关文档
最新文档