1 / 21

课间休息

课间休息. 注意时间. 第五章 关系数据理论 5.1 问题的提出. 一 、关系模式 一个 关系模式应当是一个五元组 : R (U, D, dom, F) 其中 : (1) 关系名 R; (2) 一组属性 U; (3) 属性组 U 中属性所来自的域 D; (4) 属性到域的映射 dom; (5) 属性组 U 上的一组数据依赖 F. 由于 (3),(4) 队模式设计关系不大,因此本章把关系模式看作是一个三元组: R <U, F>. 二、 数据依赖的概念.

mura
Télécharger la présentation

课间休息

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 课间休息 注意时间

  2. 第五章 关系数据理论 5.1问题的提出 一 、关系模式 一个关系模式应当是一个五元组: R(U, D, dom, F) 其中: (1) 关系名R; (2) 一组属性U; (3) 属性组U中属性所来自的域D; (4) 属性到域的映射dom; (5) 属性组U上的一组数据依赖 F 由于(3),(4)队模式设计关系不大,因此本章把关系模式看作是一个三元组: R <U, F>

  3. 二、 数据依赖的概念 比如描述一个学生的关系,可以有学号(SNO),姓名(SNAME),.系名(SDEPT)等几个属性. 称SNO函数决定SNAME和SDEPT,或者说SNAME、SDEPT函数依赖于SNO,记为:SNO→SNAME,SNO→SDEPT。 要建立一个数据库来描述学生的一些情况,面临的对象有: 学生,系,系负责人,课程和成绩。于是得到一组属性。 U={SNO, SDEPT, MN,CNAME, G} 由现实世界的已知事实,得到属性组U上的一组函数依赖: F={SNO →SDEPT, STEPT → NM, (SNO,CNAME) → G} 描述学校的数据库模式: S<U, F>, 它是一个单一的关系模式,这个模式有三个“毛病”. 把上述单一的关系模式进行改造,分成三个关系模式: S(SNO, SDEPT,SNO → SDEPT); SG(SNO,CNAME,G,(SNO,CNAME) → G); DEPT(SDEPT,MN,SDEPT → MN);

  4. 5.2 规 范 化 定义5.2在R(U)中,如果 X → Y,且对于X的任何一个真子集X, 都有X’ →Y,则称Y对X完全函数依赖,记作: X → Y. \ F 若 X → Y,但Y不完全函数依赖X,则称Y对X部分函数依赖,记作: X → Y. P _ \ 定义5.3在R(U)中,如果 X→Y,(Y X),Y→ X,Y→Z,则称Z对X传递函数依赖. ∪ 5.2.1 函数依赖 定义5.1设R(U)是属性集U上的关系模式. X,Y是U的子集. 若对于R(U)的任意一个可能的关系r, r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X → Y.

  5. 5.2.2 码 定义5.4 设K为R(U, F)中的属性或属性组合, 若K→U,则K为R的候选码(Candidate key)。 1NF 2NF 3NF BCNF 4NF 5NF 定义5.5 关系模式R中的属性或属性组X并非R的码, 但X是另一个关系模式的码,则称X是R的外部码(Foreign key)。也称外码。 5.2.3 范式 图5.2 各种范式之间的关系

  6. 5.2.4 2NF 定义5.6若R∈1NF, 且每一个非主属性完全函数函数依赖于码, 则R∈2NF。 下面举一个不是2NF的例子: 关系模式S-L-C(SNO, SDEPT, SLOC, CNO, G) 这里码为(SNO, CNO). 函数依赖有: (SNO, CNO) →G SNO →SDEPT, (SNO, CNO) →SDEPT SNO →SLOC, (SNO, CNO) →SLOC F P P 5.2.5 3NF 定义5.7关系模式R <U, F>中若不存在这样的码X,属性组Y及非主属性Z(Z Y),使得X →Y,(Y →X) Y →Z成立,则称 R <U, F> ∈3NF ∪ 一个关系模式R不属于2NF,就会产生以下三个问题. 解决的办法是用投影分解把关系模式S-L-C分解为两个关系模式. SC(SNO, CNO,G) S-L(SNO,SDEPT,CLOC)

  7. 5.2.6 BCNF BCNF 比 3NF 更进一步,其消除主属性对码的部分与传递依赖。 1. 定义7.8: 关系模式R<U,F>∈1NF,若X→Y且Y X时X必含有码, 则R<U,F> ∈BCNF 。 即: R<U,F> 中,每一个决定因素都包含码,则R<U,F> ∈BCNF。 2. 结论: ⑴.所有非主属性对每一个码都是完全函数依赖。 显然,这是3NF的要求所达到的,非主属性不部分、传递函数依赖于码。 ⑵.所有主属性对每一个不包含它的码,是完全函数依赖。 ⑶.没有任何属性完全函数依赖于非码的任何一组属性。

  8. 3. 举例: 例 1:关系模式 SJP(S,J,P)中,S 是学生,J 表示课程,P表示名次。 由语义得到下面的函数依赖: (S,J) → P;(J,P) → S 这个关系模式中显然没有属性对码传递函数依赖或部分依赖。所以SJP∈3NF。 又因除(S,J)与(J,P)以外没有其他决定因素。所以SJP∈BCNF。 例2 关系模式STJ(S,T,J)中,S表示学生,T表示教师, J表示课程. 由语义得到下面的函数依赖: (S,J) → T;(S,T) →J; T → J STJ∈3NF, 但STJ不是BCNF关系,因为T是决定因素,而T不是码.

  9. 5.2.7 多值依赖 一. 引入 例1 P178 二. 定义7.9 设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y,关系模式R(U)中多值依赖X→ →Y成立, 当且仅当对R(U)的任一关系r, 给定的一对(x, z)值, 有一组Y的值,这组值仅仅决定于x值而与z值无关。 三. 举例 例2. 关系模式WSC(W,S,C)中,W表示仓库,S表示保管员,C表示商品.

  10. 四. 多值依赖的性质: (1).多值依赖具有对称性。即若X→→Y,则X→→Z, 其中Z=U-X-Y。 (2). 多值依赖的传递性。 X→→Y,Y→→Z,则X→→Z-Y。 (3). 函数依赖是多值依赖的特殊情况。即若X→Y,则X→→Y. (4). 若 X→→Y,X→→Z,则X→→ZY。 (5). 若 X→→Y,X→→Z,则X→→Z∩Y。 (6). 若 X→→Y,X→→Z,则X→→Y-Z, X→→Z-Y 。 五. 多值依赖与函数依赖的基本区别

  11. 5.2.8 4NF 4NF 是消除了非平凡且非函数依赖的多值依赖。 1. 定义7.10: 关系模式R<U,F>∈1NF,如果对于R的每个非平凡的多值依赖X→→Y(YX) ,X都含有码,则称R<U,F> ∈4NF。 注:一个关系模式若属于4NF,则必然属于BCNF。 5.2.9 规范化小结 规范化的目的是:消除关系模式中存在的插入异常、删除异常、修改复杂和数据冗余等毛病。 基本思想是:逐步消除数据依赖中不合适的部分,使概念单一化。 1NF→2NF:消除非主属性对码的部分函数依赖。 2NF→3NF:消除非主属性对码的传递函数依赖。 3NF→BCNF:消除主属性对码的部分和传递函数依赖。 BCNF→4NF:消除非平凡且非函数依赖的多值依赖。 方法:通过对关系模式的投影分解来实现的。

  12. 5.3 数据依赖的公理系统 定义5.11: 对于满足一组函数依赖F 的关系模式R <U,F>,其任何一个关系r,若函数依赖X→Y都成立,则称F 逻辑蕴含X→Y。 1.合并规则:由X→Y,X→Z,有X→YZ 2.伪传递规则:由X→Y,WY→Z,有XW→Z 3.分解规则:由X→Y,ZY,有X→Z 定义5.12: 在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+ 定义5.13: 设F为属性集U上的一组函数依赖,XU,XF+=﹛A︱X →A能由F根据Armstrong公理导出 ﹜, XF+称为属性集X关于函数依赖集F的闭包。 因此,要判定X →Y是否能由F根据Armstrong公理导出,就要求出XF+,判定Y是否为XF+的子集。 这是由算法5.1来完成的。

  13. 算法5.1: 求属性集X(XU)关于U上的函数依赖集F的闭包XF+ 输入:X,F 输出: XF+ 步骤: ①.令X(0)=X,i=0 ②.求B ③. X(i+1)=B∪X(i) ④.判断X(i+1)=X(i) 吗? ⑤.相等,则XF+ =X(i),算法终止 ⑥.不等,则i = i+1,返回②

  14. 例1 已知关系R <U,F>,U=﹛A,B,C,D,E﹜,F=﹛AB→C,B→D,C→E,EC→B,AC→B﹜。 求(AB)F+ 由算法7.1得: 设X(0) ={AB}, 计算X(1),扫描F中各函数依赖,找左部为A,B,AB的函数依赖:AB→C,B→D, 于是X(1)=AB∪CD={ABCD}, 因为X(0) ≠ X(1) 计算X(2),扫描F中各函数依赖,找左部为X(1)的子集的函数依赖:AC→B,C→E, 于是X(2)= X(1) ∪BE={ABCDE}, 因为X(3)= X(2) 所以 (AB)F+= X(2) ={ABCDE}。

  15. 补充: 已知关系R <U,F>,U=﹛A,B,C,D,E﹜,F=﹛AB→C,B→D,C→E,EC→B,AC→B﹜。 求R 的码? 解法: 1.求出所有可能存在的闭包X(i) =XF+, 2.若X(i) =U,则选出其中的X, 3.在X中选出最简的主属性组Xi , 4. Xi 就是所求的码。 具体解为: (AB)F+=﹛ABCDE﹜ (B)F+=﹛BD﹜ (C)F+=﹛CBDE﹜ (EC)F+=﹛CBDE﹜

  16. (AC)F+=﹛ABCDE﹜ (ABC)F+=﹛ABCDE﹜ (ABCE)F+=﹛ABCDE﹜ (BC)F+=﹛BCDE﹜ (BEC)F+=﹛BCDE﹜ (AEC)F+=﹛ABCDE﹜ 包含全部属性的有(AB)F+, (AC)F+, (ABC)F+, (ABCE)F+, (AEC)F+ 挑选出最简的是: (AB)F+, (AC)F+ 所以R 的码为: AB 和 AC

  17. 定义5.14: 如果G+ =F+,就说函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价。 定义5.15: 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集Fm,亦称为最小依赖集,最小覆盖。 ⑴.F中任一函数依赖的右部仅含有一个属性。 ⑵.F中不存在这样的函数依赖X→A,使得F与F-﹛X→A﹜等价。 ⑶. F中不存在这样的函数依赖X→A:X有真子集Z使得F -﹛X→A﹜∪ ﹛Z→A﹜与F等价。 例2:关系模式S <U,F>,U=﹛SNO,SDEPT,MN,CNAME,G﹜, F=﹛SNO→SDEPT,SDEPT→MN,(SNO ,CNAME)→G﹜。 设F’=﹛SNO→SDEPT,SNO→MN,SDEPT→MN,(SNO,CNAME)→G, (SNO,SDEPT)→SDEPT﹜ 。 根据定义5.15可以验证F为最小覆盖, 而F′不是。

  18. 定理5.3: 每一个函数依赖集F均等价于一个极小函数依赖集Fm (此Fm称为F的最小依赖集)。 求极小函数依赖集Fm的步骤: 例3 已知:F=﹛A→B,B→A,B→C,A→C,C→A﹜ 求F 的极小函数依赖集Fm 解: 1.化右部为单一属性:F=﹛A→B,B→A,B→C,A→C,C→A﹜ 2. ①在F中去掉A→B, (A)F+={AC},∵B∈ (A)F+,∴不去掉。 ②在F中去掉B→A , (B)F+={ABC},∵A∈ (B)F+,∴应去掉。 ③在F中去掉B→C , (B)F+={B},∵C∈ (B)F+,∴不去掉。 ④在F中去掉A→C, (A)F+={ABC},∵C∈ (A)F+,∴应去掉。

  19. ⑤在F中去掉C→A, (C)F+={C},∵A∈ (C)F+,∴不去掉。 3.因主属性是单属性,故不用再取其子集去考察。 故极小函数依赖集Fm=﹛A→B,B→C,C→A﹜ 例4 已知关系R <U,F>,U=﹛A,B,C,D,E,F,G,H,I,J﹜,F=﹛A→B,A→C,A→DE,D→E,DE→B,AF→GHI,I→J﹜。 求F 的极小函数依赖集Fm 解: 1.化右部为单一属性: ① A→DE  A→D,A→E ② AF→GHI  AF→G, AF→H, AF→I 则F=﹛A→B,A→C,A→D,A→E,D→E,DE→B,AF→G, AF→H, AF→I,I→J﹜。

  20. 2. ①A→B:记G=F-﹛A→B﹜, ∴(A)G+= ﹛ACDEB﹜ , ∴ B∈ (A)G+, ∴去掉A→B , F=F-﹛A→B﹜=﹛ A→C,A→D,A→E,D→E,DE→B,AF→G, AF→H, AF→I,I→J ﹜ 。 ②A→C:记G=F-﹛ A→C ﹜, ∴(A)G+= ﹛ADEB﹜ , ∴ C∈ (A)G+, ∴不去掉A→C , F=﹛ A→C,A→D,A→E,D→E,DE→B,AF→G, AF→H, AF→I,I→J ﹜ 。

  21. 第五章结束

More Related