数据库原理及技术第六章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数依赖
❖ 一个实体型的诸属性之间具有内在的联系,通过对这些联系的分析,我们可以做到一个关系 模式只表示一个实体型的信息,从而消除上述问题。在关系模型中,我们利用数据依赖来描 述这些属性间的联系。
❖ 数据依赖是通过关系中属性间值的相等与否体现出来的数据间的相互关系,它是现实世界属 性间相互联系的抽象,是数据内在的性质,是语义的体现。其中最重要的是函数依赖。
2NF(III)
❖ 原因:S2NF,因为
(SNO,CNO)
G
f SNOSNAME,(SNO,CNO) SNO DEPT,(SNO,CNO)
SNAME DEPT
SNOHEAD, (SNO,CNO) HEAD
❖ 规范化
将S分解为:
S_SD(SNO, SNAME, DEPT, HEAD) 2NF
SC(
HEAD 李一 李一 李一 王二 王二 李一 赵三
CNO
G
C01
90
C01
87
C02
92
C01
95
C02
78
C03
81
C01
82
关系数据库设计中存在的问题(Ⅱ)
❖ 问题
▪ 插入异常:如果一个系刚成立没有学生,或者有了学生但尚未安排课程,那么就 无法将这个系及其负责人的信息插入数据库。
▪ 删除异常:如果某个系的全部学生都毕业了,则删除该系学生及其选修课程的同 时,把这个系及其负责人的信息也丢掉了。
, CNO , G)2NF
p
p p
SNO
3NF(I)
❖ 不良特性
S_SD(SNO, SNAME, DEPT, HEAD)
▪ 插入异常:如果系中没有学生,则有关系的信息就无法插入。
▪ 删除异常:如果学生全部毕业了,则在删除学生信息的同时有关系的信息也随之 删除了。
▪ 更新异常:如果学生转系,不但要修改DEPT,还要修改HEAD,如果换系主任, 则该系每个学生元组都要做相应修改。
▪ 数据冗余和更新异常:学生及其所选课程很多,而系主任只有一个,但其却要和 学生及其所选课程出现的次数一样多。此外,如果某个系要更换系主任,就必须 修改这个系学生所选课程的每个元组,修改其中的系主任信息。若有疏忽,就会 造成数据的不一致,从而造成更新异常。
关系数据库设计中存在的问题(Ⅲ)
❖ 原因:把多个实体型用一个关系模式表示 ❖ 解决之道:分解
关系数据库设计中存在的问题(I) ❖ 有关学生的关系模式S(SNO , SNAME , DEPT , HEAD , CNO , G)
SNO S01 S02 ❖ 主键?S01 S03 S04 S02 S05
SNAME 杨明 李婉 杨明 李婉 安然 李婉 乐天
DEPT D01 D01 D01 D02 D02 D01 D03
▪ 数据冗余:每个学生都存储了所在系的系主任的信息。
3NF(II)
❖ 定义
▪ 关系模式R< U , F >中,若不存在这样的码X,属性组Y及非主属性Z(Z Y),使得 下式成立,
则称R3NF。
XY , YZ , YX
▪ 将2NF的关系模式规范化为3NF的关系模式,其方法是消除2NF的关系模式中非主 属性对码的传递依赖。
数据库原理及技术第六章
问题
❖ 如何才能构造一个良好的关系模式?要回答这个问题就必须要解决以下问题: ▪ 什么是不好的关系模式,一个不好的关系模式存在哪些弊病? ▪ 区分一个关系模式设计的优劣程度的标准是什么? ▪ 如何将一个不好的关系模式转换为一个好的关系模式?
❖ 关系数据理论借助于数学工具规定了一套关系数据库设计的理论和方法。是数据库逻辑设计 的有力工具。
p
p p
范式
❖ 定义 ▪ 范式是对关系的不同数据依赖程度的要求。如果一个关系满足某个范式所指定的 约束集,则称它属于某个特定的范式。
1NF 2NF 3NF BCNF 4NF 5NF
规范化
❖ 一个低一级范式的关系模式,通过模式分解可以转换为若干个高级范式的关系模式的集合, 这一过程称作规范化。
1NF
函数依赖
SNO
SNAME
S01
杨明
S02
李婉
S01
杨明
S03
李婉
SELECTS0S4NAME FR安O然M S WHERE SNO=‘S01’
SELECTS0S2NAME FR李O婉M S
WHERE SNO=‘S02’
S05
乐天
DEPT D01 D01 D01 D02 D02 D01 D03
HEAD 李一 李一 李一 王二 王二 李一 赵三
❖ 定义 关系中每一分量必须是原子的,不可再分。即不能以集合、序列等作为属性值。
SNO S1
CNO {C1,C2,C3}
不满足1NF的关系模式
SNO S1 S1 S1
CNO C1 C2 C3
满足1NF的关系模式
2NF(Ⅰ)
❖ 定义 ▪ 若R1NF,且每个非主属性完全依赖于码,则称R2NF ▪ 将1NF的关系模式规范化为2NF的关系模式,其方法是消除1NF的关系模式中非主 属性对码的部分依赖。 ▪ 思考:如果关系R的全体属性都是R的主属性,或者R的所有候选码都只含一个属 性,那么,R是否属于第二范式?
G
C01
90
C01
87
C02
92
C01
95
C02
78
C03
81
C01
82
函数依赖
❖ 函数依赖于属性间的联系类型有关。 ▪ 当X、Y之间是“1对1”联系时,则存在函数依赖XY和Y X。 • 如:学号和身份证号 ▪ 当X、Y之间是“多对1”联系时,则存在函数依赖XY。 • 如:SNO和DEPT ▪ 当X、Y之间是“多对多”联系时,则不存在函数依赖。 • 如:SNO和CNO
ቤተ መጻሕፍቲ ባይዱ
函数依赖
❖ 函数依赖是不随时间而变的。若关系模式R具有函数依赖XY,那么虽然关系模式R的 关系实例r在X,Y上的取值各不相同,并且随时间而变化, 但X,Y在任一特定时刻都 保持函数依赖XY 。
❖ 函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均 要满足的约束条件。
❖ 函数依赖是语义范畴的概念,它反映了一种语义完整性约束,我们只能根据语义来确定 一个函数依赖。
关系数据库设计中存在的问题(I)
SNO
SNAME
S01
杨明
S02
李婉
S01
杨明
S03
李婉
❖ G→SNO? G→SNAME? ❖ SNSO04→SNAME安?然
S02
李婉
S05
乐天
DEPT D01 D01 D01 D02 D02 D01 D03
HEAD 李一 李一 李一 王二 王二 李一 赵三
CNO
如(P,W,A)
例子
关系模式S(SNO , SNAME , DEPT , HEAD , CNO , G)
主码:(SNO,CNO)
函数依赖:
(SNO,CNO)
G
SNOSNAME,(SNO,CNO)
SNAME
SNO DEPT,(SNO,CNO)
DEPT
SNOHEAD,(SNO,CNO) HEAD
f
SNO
CNO
G
S01
C01
90
S02
C01
87
S01
C02
92
S03
C01
95
S04
C02
78
S02
C03
81
S05
C01
82
SNO S01 S02 S03 S04 S05
DEPT D01 D02 D03
HEAD 李一 王二 赵三
SNAME 杨明 李婉 李婉 安然 乐天
DEPT D01 D01 D02 D02 D03
BCNF(III)
❖ 定义 ▪ 若关系模式R< U , F >1NF,若XY,且YX时,X必含有码,则R< U , F > BCNF。 ▪ 由BCNF的定义可以看到,每个BCNF的关系模式都具有如下三个性质: • 所有非主属性都完全函数依赖于每个候选码。 • 所有主属性都完全函数依赖于每个不包含它的候选码。 • 没有任何属性完全函数依赖于非码的任何一组属性。
(SNO,CNO) G,
(SNO,CNO)
SNAME
f
p
f
p
函数依赖
▪ 传递函数依赖:在R(U)中,如果XY,( YX )Y Z,且Y X, ZY则称Z 对X传递函数依赖。 SNO DEPT,DEPT HEAD
函数依赖
A
B
C
D
a1
b1
c1
d1
a1
b2
c1
d2
a2
b2
c2
d2
a2
b3
c2
函数依赖
▪ 平凡函数依赖:如果X Y,但YX,则称其为非平凡的函数依赖,否则称为平凡 的函数依赖。如(SNO,SNAME) SNAME是平凡的函数依赖
▪ 完全函数依赖:在R(U)中,如果XY,且对于X的任何真子集X' ,都有X'Y ,则 称Y对X完全函数依赖,记作X Y ,否则称为Y对X部分函数依赖,记作X Y。
CNO
G
C01
90
C01
87
C02
92
C01
95
C02
78
C03
81
C01
82
SSELECT SNO FROM S WHERE SNAME = ‘李婉’
函数依赖
❖ 定义 ▪ 函数依赖:设R(U)是属性集U上的关系模式,X , Y 是U的子集。若对于R(U)的任意一个 可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则 称X函数决定Y,或Y函数依赖于X,记作XY。 如SNO SNAME, (SNO,CNO) G SELECT SNO, COUNT(DISTINCT SNAME) FROM S GROUP BY SNO
函数依赖
❖ 函数依赖极为普遍地存在于现实生活中。考察关系模式S(SNO , SNAME , DEPT , HEAD , CNO , G),由于一个SNO只对应一个学生,而一个学生只能在一个系中学习。因 而当SNO的值确定后,SNAME和DEPT也被唯一地确定了。就像自变量x确定后,相应的 f(x)也被确定了一样。我们说SNO函数决定(SNAME,DEPT),而(SNAME,DEPT) 函数依赖于SNO。
d3
a3
b3
c2
d4
❖ 检验:A→C?C→A?AB→D?

❖ 定义 ▪ 候选码:设K为R< U , F >的属性或属性组合, 若K U ,则称K为R的一个候 选码。若候选码多于一个,则选定其中一个作为主码。 ▪ 超码:设K为R< U , F >的属性或属性组,若K U,则称K为R的超码。
f

▪ 主属性:包含在任何一个候选码中的属性,称作主属性。 ▪ 非主属性:不包含在任何一个候选码中的属性,称作非主属性。 ▪ 全码:关系模式的码由整个属性组构成。
3NF(III)
❖ 原因: S_SD 3NF,因为
▪ SNOSNAME, SNODEPT
▪ SNO HEAD
▪ 原因:SNODEPT,DEPTHEAD
❖ 规范化
t
▪ 将S分解为:
• DEPT(DEPT , HEAD)
• STUDENT(
, SNAME , SNO)
DEPT
BCNF(I)
❖ 示例 ▪ STJ(S, T, J),S表示学生,T表示教师,J表示课程。每位老师只教授一门课,每门 课由若干教师教,某一学生选定某门课就确定了一个固定的教师,因此具有以下 函数依赖: TJ,(S,J)T (S,T),(S,J)为候选码。
C# 物理
化学
P#
{张明, 张平}
{张明, 王微}
B#
{普通物理学,光 学原理}
{无机化学,有机 化学}
C# 物理 物理 物理 物理 化学
化学 化学 化学
P# 张明 张明 张平 张平 张明
张明 王微 王微
B# 普通物理学 光学原理 普通物理学 光学原理 无机化学
有机化学 无机化学 有机化学
2NF(II)
关系模式S(SNO, SNAME , DEPT , HEAD , CNO , G) ❖ 不良特性
▪ 插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入。 ▪ 删除异常:如果删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删
除了。 ▪ 数据冗余:如果一个学生选修了k门课,则有关他的所在系的信息重复 ▪ 更新异常:如果学生转系,若他选修了k门课,则需要修改k次。
BCNF(Ⅱ)
❖ 不良特性 ▪ 插入异常:如果没有学生选修某位老师的任课,则该老师担任课程的信息就无法 插入。 ▪ 删除异常:删除学生选课信息,会删除掉老师的任课信息。 ▪ 更新异常:如果老师所教授的课程有所改动,则所有选修该老师课程的学生元组 都要做改动。 ▪ 数据冗余:每位学生都存储了有关老师所教授的课程的信息。
BCNF(IV)
❖ 原因: 存在主属性对码的不良依赖,STJ BCNF,因为T J,而T不含有码。
❖ 改造 将S分解为(S,T),(T,J)。
❖ 思考 (S , J , P),表示学生选修课程的名次,有函数依赖(S,J) P, (J,P) S,它 属于BCNF吗?
多值依赖(Ⅰ)
❖ 关系模式TEACH(C#,P#,B#),一门课程由多个教师任教,一门课程使用相同的 一套参考书。它的码是(C#,P#,B#),所以属于BCNF。
相关文档
最新文档