- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章 关系数据库设计理论
目录 上一页 下一页 退出
小结
2
本章要点
问题的提出 函数依赖 规范化 数据依赖的公理系统 模式的分解
问题的提出
目录 上一页 下一页 退出
3
开发任何一种数据库应用系统,都会面临如 何构造合适的数据模型的逻辑结构的问题
依据用户需求所建立的概念模型最终是要转 换成数据模型的
– 概念模型逻辑模型物理模型
OS
张
Grade
S3
C2
T2 陈江 70
DS
杨 Cname
Cno
S3
C4
T4 陈江 56
DB
张
S4
C1
T1 魏致 90
OS
彭
S4
C2
T2 魏致 85
DS
杨
S5
C1
T1 乔远 95
OS
彭
Tno
Tname
10
S5 C4 T4 乔远 80 DB 张
分解模式
目录 上一页 下一页 退出
11
两种分解方法:
解1:
13
定义
– 函数依赖:设R(U)是属性集U上的关系模式, X , Y U, r是R(U) 上的任意一个关系,如果 成立对t , s r,若t[X] = s[X],则t[Y]=s[Y], 那么称“X函数决定Y”,或“Y函数依赖于X”, 记作XY。称X为决定因素。
• 如Sno Sname, (Sno,Cno) Grade
5
数据依赖的非形式化概念
目录 上一页 下一页 退出
6
函数依赖——在某关系中,对于不同的元组 来说,同一属性上给定一个值,那么与其他
属性取值的关系如何,是否具有决定性,如 何决定? 即属性之间的取值影响问题
– 如S表中一旦给定一个学号Sno值,那么该生所 对应的姓名Sname、性别Ssex、系代号Sdept等 等属性的取值就都可以确定了,且姓名、性别 等对于这个sno取值是唯一的,这里就可以说学 号Sno决定姓名Sname、性别Ssex、系代号Sdept, 记为:SnoSname、SnoSsex、SnoDno
函数依赖的分类
目录 上一页 下一页 退出
完全函数依赖和部分函数依赖
– 在R(U)中,如果XY,且对于任意X的真子集 X′,都有X′Y ,则称Y对X完全函数依赖,记作
XY。pYf,否则称为Y对X部分函数依赖,记作X
–例:关系S(Sno,Sname,Ssex,Cno,Cname,Grade)
• 有(Sno,Cno)f Grade,(Sno,Cno)p Sname
– 练习:找出职工工资表中的传递函数依赖
16
函数依赖的分类
目录 上一页 下一页 退出
若XY,YX,则记做XY
直接函数依赖:在R(U)中,如果XY,Y Z,且YX,但YX,即XY,实际 上是X 直接 Z则称Z对X直接函数依赖
– 例:找出下面关系中可能的函数依赖:
A
1 4
B
2 2
C
3 3
AB , BC , AC , ABC , ABC ,
– 反过来取定了Sname或Ssex或Dno其中的一个, 却不能决定Sno的唯一取值,即SnameSno, SsexSno, DnoSno
一个实例
目录 上一页 下一页 退出
现要建立一数据库描述职工工资管理情况:每个 职工有固定的工资级别,每个级别对应工资定额, 请选择关系模式描述逻辑结构
– 方案1:ENLS(ENAME, ELEVEL, ESALARY)
– 插入异常:如果学生没有选课,关于他的个人 信息及所在系的信息就无法插入。
– 删除异常:如果删除学生的选课信息,则有关 他的个人信息及所在系的信息也随之删除了。
– students(sno,sname) – courses (cno,tno,cname) – teachers(tno,cno,tname) – enrolls (sno,cno,grade)
解2:
– students(sno,sname) – courses (cno,cname) – teachers(tno,tname) – enrolls (sno,cno,grade) – teaching(tno,cno)
ENAME ELEVEL
赵明
4
孙其
5
ELEVEL ESALARY
4
1500
刘红
6
5
1700
李开
5
6
2000
周云
6
– 此时前面的问题就都解决了:插入、删除职工
等级、工资等级数据都不会有异常,且消除了冗余
ER模型关系模式
目录 上一页 下一页
建立教学管理 的关系模式
退 出 关系SCT (sno, cno, tno, sname, grade, cname, tname)
因Sdept Dean,Sno t Dean
规范化
目录 上一页 下一页 退出
20
规范化理论-----1971年E.F.Codd首先提出, 目的是要设计“好的”关系数据模式
– 规范化是在关系型数据库中减少数据冗余的过 程。除了数据以外,在数据库中,名称、对象 名称和形式都需要规范化。
– 关系模式满足的确定约束条件称为范式,根据 满足约束条件的级别不同,范式由低到高分为 1NF,2NF,3NF,BCNF,4NF,5NF等。
• 如S(Sno,Sname,Sdept)中, 若姓名没有重名,则Sno f U , Sname f U,故Sno和Sname是S的候选码;
•又如SC(Sno,Cno,Grade)中,(Sno,Cno) f U, (Sno,Cno)是SC的候选码。
– 主码:若R(U , F)有多个候选码,则可以从中选定 一个作为R的主码。如选定S中Sno为主码。 – 主属性:包含在每一个候选码中的属性,称作主 属性。如S中Sno,Sname都是主属性 – 全码:关系模式的码由整个属性组构成。
•如SCT(Sno,Cno,Tno)
示例
目录 上一页 下一页 退出
19
在关系模式S(Sno , Sname, Sdpet , Dean , Cno, Grade)中有哪些函数依赖,并确定主码
– 主码:(Sno,Cno) – 存在的函数依赖有: (Sno,Cno)f G
因Sno Sname,(Sno,Cno)pSname 因Sno Sdept,(Sno,Cno )p Sdept
Sno S1
Cno C1
Tno T1
Sname 赵民
Grade 90
Cname OS
Tname 彭
请找出其中数据依
S1 C2 T2 赵民 90 DS 杨 赖和存在的问题
S1
C3
T3 赵民 85 C++ 刘
S1
C4
T4 赵民 87
DB
张
S2
C1
T4 李军 90
OS
张 Sname
Sno
S3
C1
T4 陈江 75
Cno Tno
C1
T1
C1
T4
C2
T2
C3
T3
C4
T4
12
Enrolls
Sno Cno
S1
C1
S1
C2
S1
C3
S1
C4
S2
C1
S3
C1
S3
C2
S3
C4
S4
C1
S4
C2
S5
C1
S5
C4
Grade 90 90 85 87 90 75 70 56 90 85 95 80
函数依赖
目录 上一页 下一页 退出
数据依赖的非形式化概念
目录 上一页 下一页 退出
数据依赖
–通过一个关系中属性或属性组之间值的相等与 否体现出来的数据间的相互依存、互相制约的 关系,是现实世界属性间相互联系的抽象,是 数据存在的性质,是语义的体现。
–两类数据依赖:
• 函数依赖:Functional Dependency
• 多值依赖: Multivalued Dependency
函数依赖是语义的范畴
– 语义:数据所反映的现实世界事物本质联系 – 根据语义来确定函数依赖性的存在与否 – 函数依赖反映属性之间的一般规律,必须在关系模式下
的任一个关系r中都满足约Baidu Nhomakorabea条件
属性间的联系决定函数依赖关系(设X,Y是U的子 集)
– X和Y间的联系是1:1,则XY,YX – X和Y间的联系是1:n,则YX – X和Y间的联系是m:n,则X、Y之间不存在函数依赖
• 该模式上的一个关系如下:
ENAME
赵明 孙其 刘红 李开 周云
ELEVEL
4 5 6 5 6
ESALARY
1500 1700 2000 1700 2000
•这里可以找到如下的数 据依赖:
ENAMEELEVEL ENAMEESALARY ELEVELESALARY •用图示表示为
ENAME
ESALARY
BA , CB, CA , BCA ,
5
3
考察所有的依赖:AB ,BC
3 , 但B
A ,AACCB, 所以A
t
C
ABC ,但BC ,故AB p C
17
ACB ,但AB ,故AC p B
码
目录 上一页 下一页 退出
18
从函数依赖的角度进行定义
– 候选码:设K为R(U , F)的属性(组),若K f U, 则称K为R的候选码,即K的值取定了,则该元组 的剩余属性构成的属性组取值也就确定了。
– 不同的级别范式性质不同
关系模式的规范化------把一个低一级的关系 模式分解为高一级关系模式的过程
第一范式(1NF)
目录 上一页 下一页 退出
定义:关系中每一分量不可再分,该关系就 是第一范式,简记为1NF。
– 即不能以集合、序列等作为属性值;换句话说, 关系中的每个元组的各分量值都是单一的
– 平凡函数依赖:如果X Y,但YX,则称其 为非平凡的函数依赖,否则称为平凡的函数依 赖,这里一般讨论非平凡函数依赖
• 如(Sno,Sname) Sname是平凡的函数依赖
函数依赖的内涵
目录 上一页 下一页 退出
14
内涵:数据依赖的一种,它反映属性或属性组 之间相依存,互相制约的关系,即反映现实世 界的约束关系
– 一个关系r在属性组U上满足数据依赖F时,r就 称为R(U,F)上的一个关系--“为型赋值”
– 一个关系数据库的全局逻辑结构就是由所有的 这些关系模式构成的集合
–关系模式的设计:按照一定的原则从数量众多 而又相互关联的数据中,构造出一组既能较好 地反映现实世界,而又有良好的操作性能的关 系模式。
–关系规范化理论应用于:判断关系模式优劣, 如何评价,如何改进
如下面的关系:
Sno
Cno
Sno
Cno
S1 {C1,C2,C3}
S1
C1
S1
C2
S1
C3
在一个元组中Cno属性的取值是个集合,即当Sno取S1时, Cno取了3个值,故该关系不是1NF
•注意:关系模型的最低要求是要达到1NF
21
第二范式引例
目录 上一页 下一页 退出
22
有关系模式S(Sno , Cno , Sname , Sdept , Dean, Grade) 其中的问题:不良特性
– 数据冗余:职工很多,工资级别有限,每一级 别的工资数额反复存储多次。
– 更新异常:如果将5级工资的工资数额调为 1800,则需要找到每个具有5级工资的职工, 逐一修改
解决办法
目录 上一页 下一页 退出
9
一个好的模式应该不能出现插入、删除和更 新的异常,并尽可能地减少数据冗余
解决之道:分解!!
– 方案2: 分解为ENL(ENAME, ELEVEL)和 ELS(ELEVEL, ESALARY),关系表如下:
– 推论:函数依赖的左边若只有一个属性,则一定 是完全函数依赖
15
函数依赖的分类
目录 上一页 下一页 退出
传递函数依赖
– 在R(U)中,如果XY,Y Z,且YX,Y X,则称Z对X传递函数依赖。
– 例:有关系S(Sno,Sname,Ssex,Sdept,Dean), Dean是系主任名,一个系只有一个主任,则其 中存在的依赖: SnoSdept,SdeptDEAN, 故Snot DEAN
7
ELEVEL
目录 上一页 下一页 退出
8
存在的问题
上面得到的一个关系模式可以描述该工资管 理数据库,但是考察关系里面的数据就会发 现很多麻烦的问题:
– 插入异常:如果没有职工具有8级工资,则8级 工资的工资数额就难以插入。
– 删除异常:如果仅有职工赵明具有4级工资, 如果将赵明辞职之后要删除其记录,则有关4 级工资的工资数额信息也随之删除了。
分解后的关系
目录 上一页 下一页 退出
最佳分解方案:
Students
Sno S1 S2 S3 S4 S5
Sname 赵民 李军 陈江 魏致 乔远
Teachers
Cno Cname T1 彭 T2 杨 T3 刘 T4 张
Courses
Cno Cname
C1
OS
C2
DS
C3 C++
C4
DB
Teaching
– 其中逻辑模型的建立即数据库的逻辑设计是整 个数据库设计的核心,也是应用系统成功与否 的关键
• 基于关系模型的关系数据库设计理论建立在严密 理论和实用算法的基础上,把抽象的数学理论和 具体的实际问题有机的结合起来
• 理论的基础:数据之间的依赖
回顾关系模式定义
目录 上一页 下一页 退出
4
关系模式------对关系“型”的描述,一般写 作R(U, D, dom, F),本章只讨论R(U, F)