第八章 关系模式规范化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 解决方法:消除部分函数依赖。
刘根萍
三、关系的规范化
3.第二范式(2NF)
❖ 分解为2NF的方法: ▪ 把关系模式中对主码完全函数依赖的非主属性与决定 它们的主码放在一个关系模式中。 ▪ 把对主码部分函数依赖的非主属性和决定它们的主属 性放在一个关系模式中。 ▪ 检查分解后的新模式,如果仍不是2NF,则继续按照 前面的方法进行分解,直到达到要求。
▪ 第一范式是对关系的最低要求。
❖ 示例:判断哪一张表是1NF?
刘根萍
三、关系的规范化
2.第一范式(1NF)
✓ 第一范式可能存在的问题:
数据冗余:如各位老师的信息重复。
插入异常:如果要插入刘老师的个人信息,但刘老师未开 课,会造成缺关键字“学号”、“课程号”。
删除异常:当要删除 课程号=“C3” 的元组,会丢失李老师 的信息。
❖ 这些工作决定了到整个系统运行的效率,也是系统成败 的关键所在,所以必须在关系数据库的规范化理论的指 导下逐步完成。
刘根萍
一、问题的提出
情境:要求设计教学管理数据库,其关系模式如下: SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)
其中,SNO表示学生学号,SN表示学生姓名,AGE表示学生年龄, DEPT表示学生所在的系别,MN表示系主任姓名,CNO表示课程 号,SCORE表示成绩。
SNO
SN
AGE
DEPT
MN
CNO
SCORE
S1
赵亦
17
计算机 刘伟
C1
90
S1
赵亦
17
计算机 刘伟
C2
85
S2
钱尔
18
信息
王平
C5
57
S2
钱尔
18
信息
王平
C6
80
S2
钱尔
18
信息
王平
C7
70
S2
钱尔
18
信息
王平
C5
70
S3
孙珊
20
信息
王平
C1
0
S3
孙珊
20
信息 (王SN平O,CNOC2)属性的70组合能唯
❖ 如何按照一定的规范设计关系模式,将结构复杂的关系 分解成结构简单的关系,从而把不好的关系数据库模式 转变为好的关系数据库模式,这就是关系的规范化。
❖ 我们要设计的关系模式中的各属性是相互依赖、相互制 约的,这样才构成了一个结构严谨的整体。
❖ 因此在设计关模式时,必须从语义上分析这些依赖关系。 数据库模式的好坏和关系中各属性间的依赖关系有关。
(1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。
1. 写出关系模式R的基本函数依赖集 2. 找出关系模式R的候选码。 3. 关系模式R最高已经达到第几范式?为什么? 4. 如果R不属于3NF,请将R分解成3NF。
刘根萍
四、综合应用
刘根萍
二、函数依赖
3.部分函数依赖(局部依赖)
❖ 定义 ▪ 对于一个函数依赖:X→Y,如果存在Z∈X(Z 属于X),且有Z→Y成立,则称“Y部分函数 依赖于X”。
❖ 示例 ▪ 有如下的关系模式
SCD(学号,姓名,课程号,成绩,系名,系主任) • 主码为复合码:学号+课程号 • “姓名、系名、系主任”与主码是部分函数依赖
刘根萍
四、综合应用
分析与解答: 3. R(商店编号,商品编号,数量,部门编号,负责人)
最高已达到2NF。因为负责人是码的传递依赖。 4. 要达到3NF,必须消除非主属性对码的传递依
赖。对R分解后的两个模式如下: ▪ R1(商店编号,商品编号,数量,部门编号) ▪ R2(部门编号,负责人)
分析与解答:
1. 基本的函数依赖有: ▪ (商店编号+商品编号) → 部门wenku.baidu.com号 ▪ (商店编号+部门编号) → 负责人 ▪ (商店编号+商品编号) → 数量
2. 由题意,上面的函数依赖可知“商店编号”是主 属性,商品编号也是主属性,由这两个属性, 可以确定关系元组的所有属性,所以R的候选码 是:商店编号+商品编号。
不是。因为:学号→系名,系名→系主任,存在传递依赖关系。
❖ 解决方法:消除传递函数依赖。 刘根萍
三、关系的规范化
4.第三范式(3NF)
❖ 分解为3NF的方法:
▪ 把直接对主码函数依赖的非主属性与决定它们的主码 放在一个关系模式中。
▪ 把造成传递函数依赖的决定因素连同被它们决定的属 性放在一个关系模式中。
3. 删除异常
刘根萍
存在的问题
如果学生改名,则该学生的所有记录都要逐一修 改SN;
又如某系更换系主任,则属于该系的学生记录 都要修改MN的内容,稍有不慎,就有可能漏改某 些记录,这就会造成数据的不一致性,破坏了数 据的完整性。
4. 更新异常
刘根萍
一、问题的提出
❖ 由于存在以上问题,我们说,SCD是一个不好的关系 模式。产生上述问题的原因,直观地说,是因为关 系中“包罗万象”,内容太杂了。
修改量大。
学号 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刘根萍
三、关系的规范化
3.第二范式(2NF)
刘根萍
二、函数依赖
4.传递函数依赖
❖ 定义 ▪ 在关系模式中,如果X→Y(不能Y→X),Y→Z, 若存在X→Z ,则称“Z传递依赖于X”。
❖ 示例 ▪ 有如下的关系模式 SD(学号,姓名,系名,系主任)
“学号→系名,系名→系主任”,则系主任传递依赖于学号。
刘根萍
三、关系的规范化
在关系数据库的设计过程中,对于同一个问题, 选用不同的关系模式,其性能的优劣是大不相 同的,为了区分关系模式的优劣,人们常常把 关系模式分为各种不同等级的范式。
❖ 定义 ▪ 如果关系模式R为第一范式,且R中每个非主属性完 全函数依赖于R的主码(复合码),则称R为2NF模式。
❖ 示例 ▪ 下列关系模式是1NF,是否是2NF?为什么? SCD(学号,姓名,课程号,成绩,系名,系主任) • 主码为复合码:学号+课程号
不是。因为:“姓名、系名、系主任”与主码是部分函数依 赖(即:只依赖于学号)
❖ 那么,怎样才能得到一个好的关系模式呢?
❖ 我们把关系模式SCD分解为下面三个结构简单的关系 模式: ▪ 学生关系S(SNO,SN,AGE,DEPT) ▪ 选课关系SC(SNO,CNO,SCORE) ▪ 系关系D(DEPT,MN)
刘根萍
一、问题的提出
S
SNO
SN
S1
赵亦
S2
钱尔
S3
孙珊
S4
李思
D
2. 插入异常
刘根萍
存在的问题
某系学生全部毕业而没有招生时,删除全部学 生的记录则系名、系主任也随之删除,而这个系 依然存在,在数据库中却无法找到该系的信息。
另外,如果某个学生不再选修C1课程,本应该 只删去C1,但C1是主关系键的一部分,为保证实 体完整性,必须将整个元组一起删掉,这样,有 关该学生的其它信息也随之丢失。
DEPT
MN
计算机 刘伟
信息
王平
自动化 刘伟
AGE
DEPT
SNO
17
计算机
S1
18
信息
S1
20
信息
S2
21
自动化
S2
S2
S2
S3
S3
S3
S4
分解后的关系模式
SC
CNO
SCORE
C1
90
C2
85
C5
57
C6
80
C7
C5
70
C1
0
C2
70
C4
85
C1
93
刘根萍
一、问题的提出
❖ 在以上三个关系模式中,实现了信息的某种程度的分离, ▪ S中存储学生基本信息,与所选课程及系主任无关; ▪ D中存储系的有关信息,与学生无关; ▪ SC中存储学生选课的信息,而与所学生及系的有关信息 无关。
刘根萍
一、问题的提出
❖经过上述分析,我们说分解后的关系模式是一个好 的关系数据库模式。
❖从而得出结论,一个好的关系模式应该具备以下四 个条件: 1. 尽可能少的数据冗余。 2. 没有插入异常。 3. 没有删除异常。 4. 没有更新异常。
刘根萍
一、问题的提出
❖ 但要注意,一个好的关系模式并不是在任何情况下都是 最优的,比如查询某个学生选修课程名及所在系的系主 任时,要通过连接,而连接所需要的系统开销非常大, 因此要以实际设计的目标出发进行设计
刘根萍
三、关系的规范化
1.概念和范式的类型
❖ 类型
▪ 第一范式(1NF)
低
▪ 第二范式(2NF)
▪ 第三范式(3NF)……
高
❖ 关系规范化的概念 ▪ 将低级范式转换为若干个高级范式过程。
刘根萍
三、关系的规范化
2.第一范式(1NF) ❖ 定义
▪ 如果关系模式R的所有属性的值域中第一个值都是不 可再分解值,则称R是属于1NF模式。
❖ 函数依赖的类型 ▪ 完全函数依赖
▪ 部分函数依赖 ▪ 传递函数依赖
刘根萍
二、函数依赖
2.完全函数依赖
❖ 定义 ▪ 如果属性Y函数依赖于复合属性X,且不与X的 任何子集函数相依赖,则称“Y完全函数依赖 于X”。
❖ 示例 ▪ 有如下的关系模式:
生产(工厂编号,产品编号,计划数量)
“工厂编号+产品编号” →“计划数量”,是完全函数依 赖。
第八章 关系模式规范化
刘根萍
wzliugp@163.com
本章内容
问题的提出 函数依赖 关系的规范化
刘根萍
学习目标
数认知目标: 据 ▪ 了解函数依赖、关系规范化的含义 库 ▪ 理解三种范式的定义 的能力目标: 基 ▪ 能判别关系的范式类别 (重点、难点) 本 ▪ 能进行范式的分解(重点、难点) 概 念
❖ 关系模式SCD的分解结果如下: ▪ SC(学号,课程号,成绩) ▪ SD(学号,姓名,系名,系主任)
刘根萍
三、关系的规范化
4.第三范式(3NF)
❖ 定义 ▪ 如果关系模式R为第二范式,且R中每个非主
属性都不传递函数依赖于R的某个候选码,则
称R为3NF模式。
❖ 示例 ▪ 下列关系模式是2NF,是否为3NF?为什么? SD(学号,姓名,系名,系主任)
❖ 与SCD相比,分解后,数据冗余度明显降低。 ▪ 当新插入一个系时,只要在关系D中添加一条记录。 ▪ 当某个学生尚未选课,只要在关系S中添加一条学生记录, 而与选课关系无关,这就避免了插入异常。 ▪ 当一个系的学生全部毕业时,只需在S中删除该系的全部 学生记录,而关系D中有关该系的信息仍然保留,从而不 会引起删除异常。 ▪ 同时,由于数据冗余度的降低,数据没有重复存储,也 不会引起更新异常。
1. 数据冗余
刘根萍
存在的问题
如果某个新系没有招生,尚无学生时,则系名和 系主任的信息无法插入到数据库中。
因为 (SNO,CNO)是主关系键,不能为空,而这 时没有学生,SNO和CNO均无值,因此不能进行插 入操作。 当某个学生尚未选课,即CNO未知,实体完整性约 束还规定,主关系键的值不能部分为空,同样不 能进行插入操作。
▪ 检查分解后的新模式,如果不是3NF,则继续按照前 面的方法进行分解,直到达到要求。
❖ 关系模式SD的分解结果如下:
▪ SD(学号,姓名,系名) ▪ SD(系名,系主任)
刘根萍
三、关系的规范化
5.各范式间的关系
刘根萍
四、综合应用
实例:假设某商业集团数据库中有1个关系模式R(商店 编号,商品编号,数量,部门编号,负责人)。如果规定:
刘根萍
二、函数依赖
1.概念、类型
❖ 函数依赖 ▪ 是指关系中各属性或属性组之间的相互依赖关系。 它是关系规范化的理论基础。
❖ 函数依赖的定义
▪ 给定一个关系模式R,X和Y都是R的属性或属性组, 对于X的每个确定值在任何时刻Y只有一个确定的值 与之对应,则称“X函数决定Y”,或称为“Y函数依 赖于X”,X称为决定因素,记为:X→Y。
刘根萍
一、问题的提出
❖ 在关系数据库系统中,关系模型包括一组关系模式,各 个关系不是完全孤立的,数据库的设计较层次和网状模 型更为重要。
❖ 如何设计一个适合的关系数据库系统,关键是关系数据 库模式的设计
▪ 一个好的关系数据库模式应该包括多少关系模式 ▪ 每一个关系模式又应该包括哪些属性 ▪ 如何将这些相互关联的关系模式组建一个适合的关系模型
根据实际情况,这些数据有如下语义规定:
一个系有若干个学生,但一个学生只属于一个系; 一个系只有一名系主任,但一个系主任可以同时兼几个系的系 主任; 一个学生可以选修多门功课,每门课程可有若干学生选修; 每个学生学习课程有一个成绩。
刘根萍
一、问题的提出
填入一部分具体的数据,则可得到SCD关系模式的实例, 即一个教学管理数据库,如下图所示:
S3 S4
孙珊 李思
20 男
信息 自动化
(王刘SN平伟一O标,C识N主一OCC41关)个是系元该键组关。8953,系所模以式的
关系SCD
刘根萍
存在的问题
每个系名和系主任的名字存储的次数等于该系的 学生人数乘以每个学生选修的课程门数,同时学 生的姓名、年龄也都要重复存储多次,数据的冗 余度很大,浪费了存储空间。
刘根萍
三、关系的规范化
3.第二范式(2NF)
❖ 分解为2NF的方法: ▪ 把关系模式中对主码完全函数依赖的非主属性与决定 它们的主码放在一个关系模式中。 ▪ 把对主码部分函数依赖的非主属性和决定它们的主属 性放在一个关系模式中。 ▪ 检查分解后的新模式,如果仍不是2NF,则继续按照 前面的方法进行分解,直到达到要求。
▪ 第一范式是对关系的最低要求。
❖ 示例:判断哪一张表是1NF?
刘根萍
三、关系的规范化
2.第一范式(1NF)
✓ 第一范式可能存在的问题:
数据冗余:如各位老师的信息重复。
插入异常:如果要插入刘老师的个人信息,但刘老师未开 课,会造成缺关键字“学号”、“课程号”。
删除异常:当要删除 课程号=“C3” 的元组,会丢失李老师 的信息。
❖ 这些工作决定了到整个系统运行的效率,也是系统成败 的关键所在,所以必须在关系数据库的规范化理论的指 导下逐步完成。
刘根萍
一、问题的提出
情境:要求设计教学管理数据库,其关系模式如下: SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)
其中,SNO表示学生学号,SN表示学生姓名,AGE表示学生年龄, DEPT表示学生所在的系别,MN表示系主任姓名,CNO表示课程 号,SCORE表示成绩。
SNO
SN
AGE
DEPT
MN
CNO
SCORE
S1
赵亦
17
计算机 刘伟
C1
90
S1
赵亦
17
计算机 刘伟
C2
85
S2
钱尔
18
信息
王平
C5
57
S2
钱尔
18
信息
王平
C6
80
S2
钱尔
18
信息
王平
C7
70
S2
钱尔
18
信息
王平
C5
70
S3
孙珊
20
信息
王平
C1
0
S3
孙珊
20
信息 (王SN平O,CNOC2)属性的70组合能唯
❖ 如何按照一定的规范设计关系模式,将结构复杂的关系 分解成结构简单的关系,从而把不好的关系数据库模式 转变为好的关系数据库模式,这就是关系的规范化。
❖ 我们要设计的关系模式中的各属性是相互依赖、相互制 约的,这样才构成了一个结构严谨的整体。
❖ 因此在设计关模式时,必须从语义上分析这些依赖关系。 数据库模式的好坏和关系中各属性间的依赖关系有关。
(1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。
1. 写出关系模式R的基本函数依赖集 2. 找出关系模式R的候选码。 3. 关系模式R最高已经达到第几范式?为什么? 4. 如果R不属于3NF,请将R分解成3NF。
刘根萍
四、综合应用
刘根萍
二、函数依赖
3.部分函数依赖(局部依赖)
❖ 定义 ▪ 对于一个函数依赖:X→Y,如果存在Z∈X(Z 属于X),且有Z→Y成立,则称“Y部分函数 依赖于X”。
❖ 示例 ▪ 有如下的关系模式
SCD(学号,姓名,课程号,成绩,系名,系主任) • 主码为复合码:学号+课程号 • “姓名、系名、系主任”与主码是部分函数依赖
刘根萍
四、综合应用
分析与解答: 3. R(商店编号,商品编号,数量,部门编号,负责人)
最高已达到2NF。因为负责人是码的传递依赖。 4. 要达到3NF,必须消除非主属性对码的传递依
赖。对R分解后的两个模式如下: ▪ R1(商店编号,商品编号,数量,部门编号) ▪ R2(部门编号,负责人)
分析与解答:
1. 基本的函数依赖有: ▪ (商店编号+商品编号) → 部门wenku.baidu.com号 ▪ (商店编号+部门编号) → 负责人 ▪ (商店编号+商品编号) → 数量
2. 由题意,上面的函数依赖可知“商店编号”是主 属性,商品编号也是主属性,由这两个属性, 可以确定关系元组的所有属性,所以R的候选码 是:商店编号+商品编号。
不是。因为:学号→系名,系名→系主任,存在传递依赖关系。
❖ 解决方法:消除传递函数依赖。 刘根萍
三、关系的规范化
4.第三范式(3NF)
❖ 分解为3NF的方法:
▪ 把直接对主码函数依赖的非主属性与决定它们的主码 放在一个关系模式中。
▪ 把造成传递函数依赖的决定因素连同被它们决定的属 性放在一个关系模式中。
3. 删除异常
刘根萍
存在的问题
如果学生改名,则该学生的所有记录都要逐一修 改SN;
又如某系更换系主任,则属于该系的学生记录 都要修改MN的内容,稍有不慎,就有可能漏改某 些记录,这就会造成数据的不一致性,破坏了数 据的完整性。
4. 更新异常
刘根萍
一、问题的提出
❖ 由于存在以上问题,我们说,SCD是一个不好的关系 模式。产生上述问题的原因,直观地说,是因为关 系中“包罗万象”,内容太杂了。
修改量大。
学号 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刘根萍
三、关系的规范化
3.第二范式(2NF)
刘根萍
二、函数依赖
4.传递函数依赖
❖ 定义 ▪ 在关系模式中,如果X→Y(不能Y→X),Y→Z, 若存在X→Z ,则称“Z传递依赖于X”。
❖ 示例 ▪ 有如下的关系模式 SD(学号,姓名,系名,系主任)
“学号→系名,系名→系主任”,则系主任传递依赖于学号。
刘根萍
三、关系的规范化
在关系数据库的设计过程中,对于同一个问题, 选用不同的关系模式,其性能的优劣是大不相 同的,为了区分关系模式的优劣,人们常常把 关系模式分为各种不同等级的范式。
❖ 定义 ▪ 如果关系模式R为第一范式,且R中每个非主属性完 全函数依赖于R的主码(复合码),则称R为2NF模式。
❖ 示例 ▪ 下列关系模式是1NF,是否是2NF?为什么? SCD(学号,姓名,课程号,成绩,系名,系主任) • 主码为复合码:学号+课程号
不是。因为:“姓名、系名、系主任”与主码是部分函数依 赖(即:只依赖于学号)
❖ 那么,怎样才能得到一个好的关系模式呢?
❖ 我们把关系模式SCD分解为下面三个结构简单的关系 模式: ▪ 学生关系S(SNO,SN,AGE,DEPT) ▪ 选课关系SC(SNO,CNO,SCORE) ▪ 系关系D(DEPT,MN)
刘根萍
一、问题的提出
S
SNO
SN
S1
赵亦
S2
钱尔
S3
孙珊
S4
李思
D
2. 插入异常
刘根萍
存在的问题
某系学生全部毕业而没有招生时,删除全部学 生的记录则系名、系主任也随之删除,而这个系 依然存在,在数据库中却无法找到该系的信息。
另外,如果某个学生不再选修C1课程,本应该 只删去C1,但C1是主关系键的一部分,为保证实 体完整性,必须将整个元组一起删掉,这样,有 关该学生的其它信息也随之丢失。
DEPT
MN
计算机 刘伟
信息
王平
自动化 刘伟
AGE
DEPT
SNO
17
计算机
S1
18
信息
S1
20
信息
S2
21
自动化
S2
S2
S2
S3
S3
S3
S4
分解后的关系模式
SC
CNO
SCORE
C1
90
C2
85
C5
57
C6
80
C7
C5
70
C1
0
C2
70
C4
85
C1
93
刘根萍
一、问题的提出
❖ 在以上三个关系模式中,实现了信息的某种程度的分离, ▪ S中存储学生基本信息,与所选课程及系主任无关; ▪ D中存储系的有关信息,与学生无关; ▪ SC中存储学生选课的信息,而与所学生及系的有关信息 无关。
刘根萍
一、问题的提出
❖经过上述分析,我们说分解后的关系模式是一个好 的关系数据库模式。
❖从而得出结论,一个好的关系模式应该具备以下四 个条件: 1. 尽可能少的数据冗余。 2. 没有插入异常。 3. 没有删除异常。 4. 没有更新异常。
刘根萍
一、问题的提出
❖ 但要注意,一个好的关系模式并不是在任何情况下都是 最优的,比如查询某个学生选修课程名及所在系的系主 任时,要通过连接,而连接所需要的系统开销非常大, 因此要以实际设计的目标出发进行设计
刘根萍
三、关系的规范化
1.概念和范式的类型
❖ 类型
▪ 第一范式(1NF)
低
▪ 第二范式(2NF)
▪ 第三范式(3NF)……
高
❖ 关系规范化的概念 ▪ 将低级范式转换为若干个高级范式过程。
刘根萍
三、关系的规范化
2.第一范式(1NF) ❖ 定义
▪ 如果关系模式R的所有属性的值域中第一个值都是不 可再分解值,则称R是属于1NF模式。
❖ 函数依赖的类型 ▪ 完全函数依赖
▪ 部分函数依赖 ▪ 传递函数依赖
刘根萍
二、函数依赖
2.完全函数依赖
❖ 定义 ▪ 如果属性Y函数依赖于复合属性X,且不与X的 任何子集函数相依赖,则称“Y完全函数依赖 于X”。
❖ 示例 ▪ 有如下的关系模式:
生产(工厂编号,产品编号,计划数量)
“工厂编号+产品编号” →“计划数量”,是完全函数依 赖。
第八章 关系模式规范化
刘根萍
wzliugp@163.com
本章内容
问题的提出 函数依赖 关系的规范化
刘根萍
学习目标
数认知目标: 据 ▪ 了解函数依赖、关系规范化的含义 库 ▪ 理解三种范式的定义 的能力目标: 基 ▪ 能判别关系的范式类别 (重点、难点) 本 ▪ 能进行范式的分解(重点、难点) 概 念
❖ 关系模式SCD的分解结果如下: ▪ SC(学号,课程号,成绩) ▪ SD(学号,姓名,系名,系主任)
刘根萍
三、关系的规范化
4.第三范式(3NF)
❖ 定义 ▪ 如果关系模式R为第二范式,且R中每个非主
属性都不传递函数依赖于R的某个候选码,则
称R为3NF模式。
❖ 示例 ▪ 下列关系模式是2NF,是否为3NF?为什么? SD(学号,姓名,系名,系主任)
❖ 与SCD相比,分解后,数据冗余度明显降低。 ▪ 当新插入一个系时,只要在关系D中添加一条记录。 ▪ 当某个学生尚未选课,只要在关系S中添加一条学生记录, 而与选课关系无关,这就避免了插入异常。 ▪ 当一个系的学生全部毕业时,只需在S中删除该系的全部 学生记录,而关系D中有关该系的信息仍然保留,从而不 会引起删除异常。 ▪ 同时,由于数据冗余度的降低,数据没有重复存储,也 不会引起更新异常。
1. 数据冗余
刘根萍
存在的问题
如果某个新系没有招生,尚无学生时,则系名和 系主任的信息无法插入到数据库中。
因为 (SNO,CNO)是主关系键,不能为空,而这 时没有学生,SNO和CNO均无值,因此不能进行插 入操作。 当某个学生尚未选课,即CNO未知,实体完整性约 束还规定,主关系键的值不能部分为空,同样不 能进行插入操作。
▪ 检查分解后的新模式,如果不是3NF,则继续按照前 面的方法进行分解,直到达到要求。
❖ 关系模式SD的分解结果如下:
▪ SD(学号,姓名,系名) ▪ SD(系名,系主任)
刘根萍
三、关系的规范化
5.各范式间的关系
刘根萍
四、综合应用
实例:假设某商业集团数据库中有1个关系模式R(商店 编号,商品编号,数量,部门编号,负责人)。如果规定:
刘根萍
二、函数依赖
1.概念、类型
❖ 函数依赖 ▪ 是指关系中各属性或属性组之间的相互依赖关系。 它是关系规范化的理论基础。
❖ 函数依赖的定义
▪ 给定一个关系模式R,X和Y都是R的属性或属性组, 对于X的每个确定值在任何时刻Y只有一个确定的值 与之对应,则称“X函数决定Y”,或称为“Y函数依 赖于X”,X称为决定因素,记为:X→Y。
刘根萍
一、问题的提出
❖ 在关系数据库系统中,关系模型包括一组关系模式,各 个关系不是完全孤立的,数据库的设计较层次和网状模 型更为重要。
❖ 如何设计一个适合的关系数据库系统,关键是关系数据 库模式的设计
▪ 一个好的关系数据库模式应该包括多少关系模式 ▪ 每一个关系模式又应该包括哪些属性 ▪ 如何将这些相互关联的关系模式组建一个适合的关系模型
根据实际情况,这些数据有如下语义规定:
一个系有若干个学生,但一个学生只属于一个系; 一个系只有一名系主任,但一个系主任可以同时兼几个系的系 主任; 一个学生可以选修多门功课,每门课程可有若干学生选修; 每个学生学习课程有一个成绩。
刘根萍
一、问题的提出
填入一部分具体的数据,则可得到SCD关系模式的实例, 即一个教学管理数据库,如下图所示:
S3 S4
孙珊 李思
20 男
信息 自动化
(王刘SN平伟一O标,C识N主一OCC41关)个是系元该键组关。8953,系所模以式的
关系SCD
刘根萍
存在的问题
每个系名和系主任的名字存储的次数等于该系的 学生人数乘以每个学生选修的课程门数,同时学 生的姓名、年龄也都要重复存储多次,数据的冗 余度很大,浪费了存储空间。