ch06规范化理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 关系数据库规范化理论
6.2关系模式中的码
• 全码:候选码为整个关系的所有属性 例如:教师开课(职工号,课程号,开课 学期),主码是 (职工号,课程号,开课学期)
• 外码:用于关系表之间建立关联的属性 例如:Students数据库包含三个关系模式, 哪些属性是外码?
第六章 关系数据库规范化理论
2.第二范式(2NF)
• 第二范式:如果关系模式R是第一范式,且 每个非主属性都完全函数依赖于主属性, 则称R为满足第二范式的模式,记为: R∈2NF模式。 • 属于1NF的关系模式消除了对码的部分函数 依赖后得到的关系模式属于2NF。
第六章 关系数据库规范化理论
2.第三范式(3NF)
• 第三范式:如果关系模式R是第二范式,且 每一个非主属性是不传递函数依赖于R的码, 则称R为满足第三范式的模式,记为: R∈3NF模式。 • 可见:3NF要求R的每一个非主属性既不部 分函数依赖也不传递函数依赖于码。
第六章 关系数据库规范化理论
引 言
• 推论: • S-L-C(Sno,Sdept,Sloc,Cno,Grade)
是“不好”的数据库模式
×
第六章 关系数据库规范化理论
引 言
• 规范化理论是指导数据库设计的重要理论。
“不好”的数 据库模式
转化
“好”的数 据库模式
第六章 关系数据库规范化理论
本章内容
例:Students数据库
student course
sc
第六章 关系数据库规范化理论
• 结论: • SC表的Sno是外码; • SC表的Cno是外码。
第六章 关系数据库规范化理论
小结
• 本节课介绍了数据库模式规范化理论的两 个基础概念: • 函数依赖(完全函数依赖、部分函数依赖, 传递函数依赖) • 码(侯选码,主码,主属性,非主属性, 全码,外码)
非第一范式
学号 00001 00001 00001
姓名 王芳 王芳 王芳
所在系 计算机系 计算机系 计算机系
第一范式
所选课程 英语 数学 物理
第六章 关系数据库规范化理论
• 说明: 任何一个关系数据库系统中,第一范式 是对关系模式的最起码的要求。不满足第 一范式的数据库模式不能称为关系数据库
第六章 关系数据库规范化理论
9821101 信息 计算机
9821102 信息
9821103 信息
c02
c03
?
84
1公寓
1公寓
第六章 关系数据库规范化理论
引 言
SLC关系模式存在问题: (1) 数据冗余度大 如果一个学生选修了10门课程,那么他的 Sdept和Sloc值就要重复存储了10次。 (2) 修改复杂 例如学生转系,在修改此学生元组的Sdept值 的同时,还可能需要修改住处(Sloc)。如果 这个学生选修了K门课,则必须无遗漏地修改K 个元组中全部Sdept、Sloc信息。
f
Cno
t
Sloc
f
第六章 关系数据库规范化理论
6.2关系模式中的码
• 候选码:在关系中能决定全部属性值的最小属性 组。 例如:Student(Sno,Sname,Sage,Sdept) 若不允许重名,则候选码是Sno和Sname • 主码:被选中的候选码,如Sno • 主属性:包含在任一候选码中的属性 • 例如:Student(Sno,Sname,Sage,Sdept) • 非主属性:不包含在任一候选码中的属性
第六章 关系数据库规范化理论
二、规范化过程
• 一个低一级范式的关系模式,通过模式分 解可以转换为若干个高一级范式的关系模 式的集合,这种过程就叫规范化。 • 规范化的过程可以概括为: • ①通过横向或纵向展开的方式将原始的关 系模式转换为1NF。 • ②对转换后的1NF关系模式进行投影分解, 消除非主属性对码的部分函数依赖,从而 产生一组属于2NF的关系模式。
第六章 关系数据库规范化理论
6.1.2 完全函数依赖和部分函数依赖
完全函数依赖和部分函数依赖: • 设有关系模式R(U),X→Y是R的一个函数依 赖,且对于任何真子集X’X,X’→Y,都不 成立,则称X→Y是一个完全函数依赖。记 作: full Y X 反之,如果X’→Y成立,则称X→Y,是一 part 个部分函数依赖。 P Y X
第六章 数据库规范化理论
设计数据库
第六章 关系数据库规范化理论
第6章关系数据库规范化理论 引 言
• 数据库设计是数据库应用领域主要的研究 课题。 • 数据库设计的目标是:
满足用户需求 性能良好
数据库模式
第六章 关系数据库规范化理论
引 言
Students数据库包含三个关系模式: • Student(Sno,Sname,Sage,Sdept) • Course(Cno,Cname,Credit) • SC(Sno,Cno,Grade) • 在操作过程中,我们能正常地对它们执行 修改、删除、更新操作,没有出现异常。
第六章 关系数据库规范化理论
二、规范化过程
• ③对上述2NF关系模式进行投影分解,消除 非主属性对码的传递函数依赖,从而产生 一组属于3NF的关系模式。 • 对于一般的数据库用户来说,设计到3NF就 足够了。因为规范化程度越高,表的个数 会越多,相应的就有可能降低操作的效率。
第六章 关系数据库规范化理论
第六章 关系数据库规范化理论
《数据库原理与应用》
讲 授: 电 话: 陈秀琼 8602686
E-mail: xiujoan@163.com
第六章 关系数据库规范化理论
(上半学期)
第一章 绪论
认识数据库
第二章 关系数据库 第三章关系数据库标准语言SQL 第四章数据库的安全性
操纵数据库 定义数据库
第五章 数据库的完整性
• 1NF的定义:如果一个关系模式R的所有属 性都是不可分的基本数据项,则R∈1NF。 例1:
学号 姓名 性别 籍贯 成绩 英语 数学 物理 数据库
非第一范式
学号 姓名 性别 籍贯 英语 数学 物理 数据库
第一范式
第六章 关系数据库规范化理论
1.第一范式(1NF)
例2:
学号 00001 姓名 王芳 所在系 所选课程 计算机系 英语、数学、物理
小结:范式及规范化过程
1NF
(消除非主属性对码的部分依赖)
2NF
(消除非主属性对码的传递依赖)
3NF
(既消除非主属性对码的部分依赖,又消 除了非主属性对码的传递依赖)
第六章 关系数据库规范化理论
6.3.2模式分解
• 以S-L-C关系模式为例说明 • SLC存在的问题原因: SLC模式存在“不良”的函数依赖:部分 函数依赖和传递函数依赖。 • 措施: 进行规范化处理,将部分函数依赖和传 递函数依赖转换为完全函数依赖。消除关 系模式存在数据冗余度大、修改复杂、插 入异常、删除异常等问题。
第六章 关系数据库规范化理论
例 S-L-C关系模式分解
SLC
p
Sno
f t
Sdept
Grade Cno
• SLC的码为(Sno, Cno) • SLC满足第一范式(1NF) • 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)
Sloc
第六章 关系数据库规范化理论
例 S-L-C关系模式分解
第六章 关系数据库规范化理论
引 言
(3) 插入异常
假设Sno=95102,Sdept=IS,Sloc=N的学 生还未选课,因课程号是主属性,因此该学生 的信息无法插入SLC。 (4) 删除异常 假定某个学生本来只选修了c03号课程这一门 课。现在因身体不适,他连c03号课程也不选 修了。因课程号是主属性,此操作将导致该学 生信息的整个元组都要删除。
6.1函数依赖 6.1.1函数依赖的基本概念 6.1.2部分函数依赖和完全函数依赖 6.1.3传递函数依赖 6.2 关系模式的码 6.3关系规范化 6.3.1 范式及规范化 6.3.2 模式分解
第六章 关系数据库规范化理论
6.1函数依赖
• 函数是我们非常熟悉的概念: Y=f(X) • 这个函数说明了X和Y在数量上的对应关系,即给 定一个X值,都会有Y值和它对应。也可以说X函 数决定Y,或Y函数依赖于X; • 但在关系数据库中,讨论函数是注重语义上的关 系,比如: • 省= f(城市) • 如“三明市”在“福建省”,“武汉市”在“湖 北省” • 语义:体现属性间现实世界的意义和规则。
6.1.1函数依赖的基本概念
例如,对学生关系模式 student(Sno,Sname,Sage,Sdept) 有以下依赖关系:
Sno Sname, Sno Sage, Sno 例如,对学生选课关系模式 sc(sno,cno,grade) 有以下依赖关系: (Sno,Cno) Grade Sdept,
f
第六章 关系数据库规范化理论
6.1.3传递函数依赖
传递函数依赖: • 设有关系模式R(U),X,Y,ZU,如果X→Y,Y→Z, transfer 且YX,Y不函数决定X,有X→Z,则Z传递函数依 赖于X。记作: X t Z
例2,假设有关系模式S (Sno,Sname,Dept,Dept_master)
第六章 关系数据库规范化理论
6.3.1 范式及规范化
一、范式: 关系数据库中的关系模式必须满足一定的要 求。满足不同程度要求的为不同范式(Normal Form)。 • 范式的种类: • 第一范式(1NF) • 第二范式(2NF) • 第三范式(3NF) • BC范式(BCNF) • 第四范式(4NF) • 第五范式(5NF)
4.删除异常 3.插入异常 2.修改复杂 1.数据冗余
引 言
P70 表6-1 S-L-C模式的数据示例
Sno Sdept 9812101 计算机 9812101 计算机 9821101 信息 计算机 Sloc 2公寓 2公寓 1公寓 2公寓
Байду номын сангаас2公寓 1公寓
Cno c01 c02 c01
Grade 80 85 90
取消部分函数依赖后图:
SC
Grade Cno
SL
Sno
Sno
Sdept
Sloc
SC(sno,cno,grade) , 属于3NF SL(sno,sdept,sloc) ,属于 2NF
第六章 关系数据库规范化理论
由于Sno
f
Dept
系名完全函数依赖于学号 系主任完全函数依赖于系 系主任传递依赖于学号
Dept
f
Dept_master
t
所以Sno
Dept_master
第六章 关系数据库规范化理论
例:分析SLC的函数依赖
f •S-L-C(Sno,Sdept,Sloc,Cno,Grade) p
Sno Grade Sdept
√
是“好”的数据库模式
第六章 关系数据库规范化理论
引 言
• 假设有一个描述学生住宿及选课情况的关 系模式: • S-L-C(Sno,Sdept,Sloc,Cno,Grade) • 说明:Sloc为学生住处;假设每个系的学 生住在同一个地方。 • 这个关系模式存在是否是好的关系模式呢
第六章 关系数据库规范化理论
第六章 关系数据库规范化理论
6. 3.1 范式
• 各种范式之间存在联系:在1NF中满足进一步要求 的为2NF,其余依此类推。
1NF 2 NF 3 NF BCNF 4 NF 5 NF
• 某一关系模式R为第n范式,可简记为R∈nNF。
第六章 关系数据库规范化理论
1.第一范式(1NF)
第六章 关系数据库规范化理论
6.1.1函数依赖的基本概念
直观的函数依赖的定义是: • 设X、Y是关系模式R的两个不同的属性或属 性组,如果X的取值确定时,Y的取值也就 确定了,叫作X函数决定Y或Y函数依赖于X, 表示为:X → Y,其中X称为决定因素。 • 这与函数y=f(x)一样.
第六章 关系数据库规范化理论
f
第六章 关系数据库规范化理论
6.1.2 部分函数依赖和完全函数依赖
例1,假设有关系模式SC (Sno,Sname,Cno,Credit,Grade) 有以下依赖关系:
Sno Sname
p
姓名函数依赖于学号
(Sno,Cno) (Sno,Cno)
Sname Grade
姓名部分函数依赖于学号和课程号 成绩完全函数依赖于学号和课程号
第六章 关系数据库规范化理论
6.1.1函数依赖的基本概念
说明: • 函数依赖讨论的是属性之间的依赖关系, 它是语义范畴的概念。 • 也就是说关系模式的属性之间是否存在函 数依赖只与语义有关,只能根据数据的语 义来确定函数依赖。 • 例如“Sname→Sage”这个函数依赖只有 在不允许有同名人的条件下成立。如果允 许有同名人,则年龄就不再函数依赖于姓 名了。