第3讲 关系的完整性和规范化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
12
第3讲
二、关系的规范化
数据冗余:如各位老师的信息重复。 插入异常:如果要插入刘老师的个人信息,但刘老师未开
2.第一范式(1NF) 第一范式可能存在的问题:
课,会造成缺关键字“学号”、“课程号”。 删除异常:当要删除 课程号=“C3” 的元组,会丢失李老师 的信息。
系编号 01 02 03 系名 计算机 通信 电子 系主任 龚小勇 谭中华 袁 勇 办公室 205 207 210
说明
从表的“系编号(外键)”的取值只能为两种情
况:
若取非空值,则它必须是主表中存在的值。 取空值(null)。表明尚未给学生分配专业。null不等于0或空 字符串。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
是对关系的某种约束条件。
定义
目的
用于保证数据库中数据的正确性、一致性、有效性。
类型
实体完整性规则
是关系模型必须满足 的完整性约束条件。
参照完整性规则(引用完整性规则 ) 域完整性规则(用户自定义完整性规则)
第1章 关系数据库原理—关系的完整性规则、关系的规范化
5
第3讲
一、关系的完整性规则
高 低
类型
关系规范化的概念
将低级范式转换为若干个高级范式过程。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
11
第3讲
二、关系的规范化
2.第一范式(1NF)
如果关系模式R的每个属性都是不可分解的,则称R属
定义
于1NF。
第一范式是对关系的最低要求。
示例:判断哪一张表是1NF?
第1章 关系数据库原理—关系的完整性规则、关系的规范化
2
第3讲
第 1章
关系数据库原理
——关系的完整性和规范化
教学内容
1. 关系的完整性规则
实体完整性、参照完整性、域完整性
2. 函数依赖
完全函数依赖、部分函数依赖、传递函数
依赖
3. 关系的规范化
第一范式、第二范式、第三范式
第1章 关系数据库原理—关系的完整性规则、关系的规范化
6
第1章 关系数据库原理—关系的完整性规则、关系的规范化
第3讲
一、关系的完整性规则
2.参照完整性规则(引用完整性规则)
规则要求:
“不引用不存在的实体”。即:不允许在一
个关系中引用另一个关系中不存在的元组。
目的
用于确保相关联的表间的数据保持一致。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
消除2NF中的传递函数依赖,可转换为3NF。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
22
第3讲
课余作业布置
1. 教材 课后练习 五、设计题 4
课外练习
设关系模式SCT(学号,课程号,成绩,教师名,教 师地址)。如果规定:(1)每个学生每学一门课程只 有一个成绩;(2)每门课只有一个教师任教;(3)每 个教师只有一个地址(无同名教师)。
第 3讲
第 1章
关系数据库原理
——关系的完整性和规范化
SQL Server 2008
第3讲
复习
答:是能用来惟一标识元组的属性或属性组合。
什么是主关键字/主码/主键?
ER图转化为关系模式的原则是什么?
答:(1)每个实体转换为一个关系。 (2)每个联系也转换成一个关系。 (3)有相同主码的关系可以合并。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
20
第3讲
三、综合应用
分析与解答:
3. R(商店编号,商品编号,数量,部门编号,负 责人) 最高已达到2NF。因为负责人是码的 传递依赖。 4. 要达到3NF,必须消除非主属性对码的传递 依赖。对R分解后的两个模式如下:
R1(商店编号,商品编号,数量,部门编号) R2(部门编号,负责人)
9
第3讲
二、关系的规范化
在数据库的设计过程中,对于同一个问题,选
引
用不同的关系模式,其性能的优劣是大不相同 的,为了区分关系模式的优劣,人们常常把关 系模式分为各种不同等级的范式。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
10
第3讲
二、关系的规范化
1. 概念和范式的类型
第一范式(1NF) 第二范式(2NF) 第三范式(3NF)……
写出关系模式SCT的基本函数依赖集。 找出关系模式SCT的候选码。 试把SCT分解成2NF模式集,并说明理由。 试把SCT分解成3NF模式集,并说明理由。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
23
定义
性都不传递函数依赖于R的主码,则称R属于 3NF。
示例
下列关系模式是2NF,是否为3NF?为什么?
SD(学号,姓名,系名,系主任)
不是。因为:学号→系名,系名→系主任,存在传递依赖关系。
解决方法:消除传递函数依赖。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
16
第3讲
二、关系的规范化
第1章 关系数据库原理—关系的完整性规则、关系的规范化
21
第3讲
本课小结
实体完整性/参照完整性/域完整性
ຫໍສະໝຸດ Baidu
1. 关系的完整性规则
2. 范式的类型
1NF、2NF、3NF
3. 各范式间的关系:
1NF中的每个属性值是不可再分的,它是关系模式的
最低要求。
消除1NF中的部分函数依赖,可转换为2NF。
7
第3讲
一、关系的完整性规则
2.参照完整性规则(引用完整性规则)
系表(主表) 学生表(从表)
电话 6003 6025 6018 学号 03001 03102 03223 姓名 马力刚 王萍华 王平 性别 男 女 男 年龄 21 20 21 05 系编号 01
请思考:下面两个关系是否违反参照完整性规则?
3
第3讲
第 1章
认知目标:
关系数据库原理
——关系的完整性和规范化
学习目标
理解关系的完整性规则 了解函数依赖、关系规范化的含义 理解三种范式的定义
能力目标:
能判别关系的范式类别 (重点、难点)
能进行范式的分解(重点、难点)
第1章 关系数据库原理—关系的完整性规则、关系的规范化
4
第3讲
一、关系的完整性规则
8
第3讲
一、关系的完整性规则
3.域完整性规则(用户定义完整性规则)
规则要求
由用户根据实际情况,定义表中属性的取值
范围
例如:性别只能是男和女、年龄不能为负值、成
绩在0—100之间等。
目的
用于保证给定字段中数据的有效性,即保证
数据的取值在有效的范围内。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
第3讲
二、关系的规范化
3.第二范式(2NF)
如果关系模式R为第一范式,且R中每个非主属性完全
定义
函数依赖于R的主码,则称R属于2NF。
示例
下列关系模式是1NF,是否是2NF?为什么?
SCD(学号,姓名,课程号,成绩,系名,系主任)
主码为复合码:学号+课程号
不是。因为:“姓名、系名、系主任”与主码是部分函数依 赖(即:只依赖于学号)
19
第3讲
三、综合应用
分析与解答: 1. 基本的函数依赖有:
(商店编号+商品编号) → 部门编号
(商店编号+部门编号) → 负责人
(商店编号+商品编号) → 数量
2. 由题意,上面的函数依赖可知“商店编号” 是主属性,商品编号也是主属性,由这两 个属性,可以确定关系元组的所有属性, 所以R的候选码是:商店编号+商品编号。
检查分解后的新模式,如果仍不是2NF,则继续按照
前面的方法进行分解,直到达到要求。
关系模式SCD的分解结果如下:
SC(学号,课程号,成绩)
SD(学号,姓名,系名,系主任)
第1章 关系数据库原理—关系的完整性规则、关系的规范化
15
第3讲
二、关系的规范化
4.第三范式(3NF)
如果关系模式R为第二范式,且R中每个非主属
SD1(学号,姓名,系名)
SD2(系名,系主任)
第1章 关系数据库原理—关系的完整性规则、关系的规范化
17
第3讲
二、关系的规范化
5.各范式间的关系
各范式之间的关系
第1章 关系数据库原理—关系的完整性规则、关系的规范化
18
第3讲
三、综合应用
实例:假设某商业集团数据库中有1个关系模式R(商 店编号,商品编号,数量,部门编号,负责人)。如 果规定:
把直接对主码函数依赖的非主属性与决定它们的主码
4.第三范式(3NF) 分解为3NF的方法:
放在一个关系模式中。
把造成传递函数依赖的决定因素连同被它们决定的属
性放在一个关系模式中。
检查分解后的新模式,如果不是 3NF ,则继续按照前
面的方法进行分解,直到达到要求。
关系模式SD的分解结果如下:
解决方法:消除部分函数依赖。
第1章 关系数据库原理—关系的完整性规则、关系的规范化
14
第3讲
二、关系的规范化
把关系模式中对主码完全函数依赖的非主属性与决定
3.第二范式(2NF) 分解为2NF的方法:
它们的主码放在一个关系模式中。
把对主码部分函数依赖的非主属性和决定它们的主属
性放在一个关系模式中。
1.实体完整性规则
在任何关系的任何一个元组中,主键的值不能为空
规则要求:
值、也不能取重复的值。
目的:用于保证数据库表中的每一个元组都是存 在且唯一的。 请思考:下面的关系是否违反实体完整性规则?
学号 03001 03102 03223 03001 姓名 马力刚 王萍华 王平 张华 李萍 性别 男 女 男 男 女 年龄 21 20 21 22 19 系编号 01 02 03 04 05
(1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。
1. 写出关系模式R的基本函数依赖集
2. 找出关系模式R的候选码。 3. 关系模式R最高已经达到第几范式?为什么? 4. 如果R不属于3NF,请将R分解成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
13
第1章 关系数据库原理—关系的完整性规则、关系的规范化