第八章 关系模式的规范化与查询(部分)

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

8.1 问题的提出
针对一个问题,应该如何构造一个适合它的关系模式(应该构造几 个关系模式,每个关系模式由哪些属性组成)? 例1: D-L-C ={Sno, Sdept ,Sloc, Cno, G} 由现实世界的已知事实得知: ①一个系有若干学生,但一个学生只属于一个系; ②Sloc为学生住处,并且每个系的学生住在同一个地方; ③一个学生可以选修多门课程,每门课程有若干学生选修; ④每一个学生学习每一门课程有一个成绩: 这个模式有下述三个“毛病”: (1)插入异常:如果一个系刚成立尚无学生,或者虽然有了学生但尚未 安排课程,那么就无法把这个系及其学生住处存入数据库。 (2)删除异常:如果某个系的学生全部毕业了,在删除该系学生选修课 程的同时,把这个系及其学生住处的信息也丢掉了。 (3)冗余太大: Sdept 和Sloc出现的次数与 G 一样多。浪费存储空间;数 据库完整性维护代价大。
2012-6-2 5
定义8.2 在R(U)中,如果X→Y,并且对于X的任何一个真子 集X′,都有X′→ Y,则称Y对X完全函数依赖,记作: X→(F)Y • 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依 赖,记作: X→(P)Y 在关系S(Sno,Sname,Sdept,Sage)中, Sno→Sdept,Sno→Sage, Sno→Sname(若无重名)。 在关系SC(Sno,Cno,G)中, Sno → Cno,Sno→ G (Sno,Cno) →(F) G,(Sno,Cno)就是决定因素。
2012-6-2
15
• 关系模式STJ(S,T,J)中,S表示学生,T 表示教师,J表示课程。 每一教师只教一门 课程,每门课有若干教师,某一学生选定 某门课程,就对应一个固定的教师。 (S,J),(S,T)都是候选码。 STJ是3NF,STJ不是BCNF,因为T是决 定因素,而T 不包含码。
S T S J
2012-6-2 8
定义8.5 关系模式R中属性或属性组X并非R的码, 但X是另一个关系模式的码,则称X是R的外部 码(Foreign key),也称外码。 如在SC(Sno,Cno,G)中,Sno不是码,但Sno 是关系模式S(Sno,Sdept,Sage)的码,则Sno 是关系模式SC的外码。 主码与外码提供了一个表示关系间联系的手段。 关系模式S与SC的联系就是通过Sno来体现的。
Sdept Sno Sloc
2012-6-2
7
8.2.2 码(用函数依赖的概念定义) 定义8.4 设K为R(U,F)中的属性或属性组合,若K→U, 则K为R的候选码(Candidate key)。若候选码多于 一个,则选定其中的一个为主码(Primary key)。 • 包含在任何一个候选码中的属性,叫做主属性. • 不包含在任何码中的属性称为非主属性或非码属性. • 最简单的情况,单个属性是码。 • 最极端的情况,整个属性组是码,称为全码. 关系模式S(Sno,Sname,Sdept,Sage) 关系模式SC(Sno,Cno,G) (Sno,Cno)是码 关系模式R(P,W,A), P:演奏者,W:作品,A:听众. 全码(P,W,A)。
2012-6-2 19
2012-6-2
9
8.3 关系模式的规范化
8.3.1 范式 • 关系数据库中的关系是要满足一定要求的,满足不同 程度要求的称为不同范式。满足最低要求的叫第一范 式,简称1NF。第一范式中满足进一步要求的为第二 范式(2NF),其余以此类推。 • R为第x范式就可以写成R∈xNF。 • 对于各种范式之间的联系有: 5NF≤4NF≤BCNF≤3NF≤2NF≤1NF • 一个低一级范式的关系模式,通过模式分解可以转 为若干个高一级范式的关系模式的集合,这种过程就 叫规范化。
2012-6-2 10
8.3.2 2NF
定义8.6 若R∈1NF,且每一个非主属性完全函数依赖于 码,则R∈2NF。 例2. 关系D-L-C (Sno,Sdept,Sloc,Cno,G ) 其中Sloc为学生住处,并且每个系的学生住在同一个地方。 码(Sno,Cno)。函数依赖有: Sno Sdept (Sno,Cno) →(F) G, Sno→Sdept, G (Sno,Cno) →(P)Sdept Sno→Sloc, Sloc Cno (Sno,Cno) →(P)Sloc, Sdept→Sloc 非主属性Sdept和Sloc不完全依赖于码,D-L-C不属于2NF。 一个关系模式R不属于2NF,就会产生以下几个问题: 1.插入异常。2.删除异常。3.修改复杂。
J
2012-6-2
T
16
• 小结: 1NF 消除非主属性对码的部分函数依赖 2NF 消除非主属性对码的传递函数依赖 3NF 消除主属性对码的部分和传递函数依赖 BCNF • BCNF在函数依赖范畴内已实现了彻底的分 离,已消除了插入和删除异常。
ຫໍສະໝຸດ Baidu2012-6-2 17
思考题: 设有如下图所示的关系R: (1)它为第几范式?为什 么? (2)是否存在删除操作异 常?若存在,则说明是在 什么情况下发生的? (3)将它分解为高一级范 式,分解后的关系是如何 解决分解前可能存在的删 除操作异常问题的?
2012-6-2 2
回顾与分析: • 一个关系模式应当是一个五元组: R(U,D,dom, F) (1)关系名R,它是符号化的元组语义; (2)一组属性U; (3)属性组U中属性所来自的域D; (4)属性到域的映射dom; (5)属性组U上的一组数据依赖F。 • 本章中把关系模式看作是一个三元组: R〈U,F〉 • 当且仅当U上的一个关系r满足F时,r称为关系模式R〈U, F〉的一个关系 • 关系,作为一张二维表,对它有一个最起码的要求:每一 个分量必须是不可分的数据项。满足了这个条件的关系模 式就属于第一范式(1NF)。 • 关系必须满足一定的完整性约束条件,这些约束 : (1)对属性取值范围的限定 (2)数据依赖:属性值间的相互关连(主要体现于值的相 等与否) 2012-6-2 3
Sno G Cno
Sdept
Sloc
2012-6-2
12
8.3.3 3NF
定义8.7 关系模式R(U,F)中,若不存在这样的码X, 属性组Y及非主属性Z (not Z≤Y),使得X→Y, (Y→X), Y→Z成立,则称R(U,F)∈3NF。 由定义8.7可以证明,若R∈3NF,则每一个非主属性 既不部分依赖于码,也不传递依赖于码。 SC(Sno,Cno,G) ∈3NF, 而S-L(Sno,Sdept,Sloc) ∈3NF,仍会产生类似的问 题,解决的办法同样是将S-L分解为: S-D(Sno,Sdept) D-L(Sdept,Sloc) 分解后的关系模式S-D与D-L中不再存在传递依赖。
第八章 关系模式的规范化与查询优化
[学习目的与要求] 通过对本章的学习,了解关系模式规范化理 论及其在数据库设计中的作用,能够运用模式分解理论对关系 模式进行分解,使数据库系统设计符合3NF的要求,并掌握查 询优化的基本方法。 [学习基本要求 ] :本章理论性较强,学习者应从概念着手,弄 清概念之间的联系和作用,重点掌握函数依赖,无损连接,保 持依赖和范式。 [本章内容 ] 8.1 问题的提出 8.2 关系模式的函数依赖 8.3 关系模式的规范化 8.4 关系模式的分解特性 8.5 关系模式的优化 2012-6-2 1 8.6 关系查询优化
2012-6-2 11
问题在于有两种非主属性。 一种如G,它对码是完全函数依赖。 另一种如SDEPT,SLOC,对码不完全函数依赖。 解决的办法是用投影分解, 把关系模式S-L-C分解为两个关
系模式:
SC(Sno,Cno,G) ∈2NF
S-L(Sno,Sdept,Sloc) ∈2NF
Sno
2012-6-2 13
8.3.4 BCNF
BCNF(Boyce Codd Normal Form) 比3NF又进了一步, 通常认为BCNF是修正(扩充)的第三范式。 定义8.8 关系模式R〈U,F〉∈1NF。若X→Y且not Y≤X 时X必含有码,则R〈U,F〉∈BCNF 即:关系模式R〈U,F〉中,若每一个决定因素都包含码, 则R〈U,F〉∈BCNF。 由BCNF的定义可以得到,一个满足BCNF的关系模式有: 所有非主属性对每一个码都是完全函数依赖。 所有的主属性对每一个不包含它的码,也是完全函数依赖。 没有任何属性完全函数依赖于非码的任何一组属性。 可以证明:若R∈BCNF,则 R∈3NF。反之不然。
• 函数依赖:类似x 与f(x)的关系。例1中,当Sno确定后, Sdept就确定了; Sdept确定后, Sloc 就确定了。 F={Sno→Sdept,Sdept→ Sloc ,(Sno,Cno) →G} 。
Sno Cno G
Sdept
Sloc
• 将D-L-C分解成三个关系模式: S(Sno,Sdept,Sno→Sdept); SG(Sno,Cno,G,(Sno,Cno) → G); Dept(Sdept, Sloc,Sdept→ Sloc); 这三个模式都不会发生插入异常、删除异常毛病,数 据的余冗也得到了控制。 • 问题:如何描述关系模式的“好”与“不好”呢?
2012-6-2
课程名
教师名 教师地址 马千里 D1 于德水 D2 余 快
C1 C2 C3 C4
D1 于德水 D2
18
解:
(1)它是2NF。
R的候选关键字为课程名,而课程名→教师名,教师名→ 课程名,教师名→教师地址,即存在非主属性教师地址对 候选关键字课程名的传递函数依赖,因此R不是3NF。 不存在非主属性对候选关键字的部分函数依赖,所以R是 2NF。 (2)存在。当删除某门课程时会删除不该删除的教师的有 关信息。 (3)分解为高一级范式如下: R1(课程名,教师名);R2(教师名,教师地址)

• • •
2012-6-2
14
• 关系模式C(Cno,Cname,Cpno),C∈3NF。C∈BCNF。 • 关系模式SC(Sno, Cno,G),SC∈3NF。SC∈BCNF。 • 关系模式S(Sno,Sname,Sdept,Sage),假定Sname 也具有唯一性,那么S就有两个码,这两个码都由单 个属性组成,彼此不相交。S也属于BCNF。 • 关系模式SJP(S,J,P)中,S是学生,J表示课程,P 表示名次。 (S,J)→P;(J,P)→S 所以(S,J)与(J,P)都可以作为候选码。显然没有属 性对码传递依赖或部分依赖。SJP∈3NF,而且除(S, J)与(J,P)以外没有其他决定因素,所以SJP∈BCNF。
2012-6-2
6
定义8.3 在R(U)中,如果X→Y,not (Y≦X), (Y→X), Y→Z,则称Z对X传递函数依赖。 加上条件 (Y→X) ,是因为如果Y→X,则X←→Y, 实际上是X→Z,是直接函数依赖而不是传递函数 依赖。
传递函数依赖的例子:S-L(Sno,Sdept,Sloc)
2012-6-2 4
8.2 关系模式的函数依赖
8.2.1 函数依赖 定义8.1 设R(U)是属性集U上的关系模式。X,Y是U的子 集。若对于R(U)的任意一个可能的关系r,r中不可能存在 两个元组的X上的属性值相等,而在Y上的属性值不等, 则称X函数确定Y或Y函数依赖于X,记作X→Y。 注意,函数依赖不是指关系模式R的某个或某些关系满足 的条件,而是指R的一切关系均要满足的约束条件。 • X→Y,但not Y≤X, 则称X→Y是非平凡的函数依赖。 • X→Y,但Y≤X, 则称X→Y是平凡的函数依赖。 • 若X→Y,则X叫做决定因素 。 • 若X→Y,Y→X,则记作X←→ Y • 若Y不函数依赖于X,则记作X → Y。 选修关系: SG(Sno,Cno,G) (Sno,Cno) → G
相关文档
最新文档