1 / 128

第 4 章 关系数据库理论 数据库模式 : 一组相关的关系模式 关系模式 R(A 1 ,A 2 ,…,A n )

第 4 章 关系数据库理论 数据库模式 : 一组相关的关系模式 关系模式 R(A 1 ,A 2 ,…,A n ). 4.1 函数依赖 4.1.1 函数依赖的基本概念 一、关系模式的优劣与数据依赖 1. 关系模式集性能比较. 例 1 :学生数据库 方案 1 :各类数据放在一个关系模式中 Students(Sno,Sname,Cno,Grade,Sdept,Sloc) 键 (Sno , Cno). 问题: ①冗余: 一个学生选 20 门课 学生 系 宿舍区的信息 重复存储.

acton
Download Presentation

第 4 章 关系数据库理论 数据库模式 : 一组相关的关系模式 关系模式 R(A 1 ,A 2 ,…,A n )

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. 第4章 关系数据库理论 数据库模式: 一组相关的关系模式 关系模式 R(A1,A2,…,An)

  2. 4.1 函数依赖 4.1.1 函数依赖的基本概念 一、关系模式的优劣与数据依赖 1.关系模式集性能比较

  3. 例1:学生数据库 方案1:各类数据放在一个关系模式中 Students(Sno,Sname,Cno,Grade,Sdept,Sloc) 键 (Sno,Cno)

  4. 问题: ①冗余: 一个学生选20门课 学生 系 宿舍区的信息 重复存储

  5. ②潜在不一致(修改复杂) 学生改名 对于所选的若干门课 若干行 到处修改 潜在的不一致 修改复杂

  6. ③插、删异常 没选课 Cno为NULL学生信息无法插入 选课信息输入错误 删除 同时删学生信息

  7. 方案2:选课信息单独存放 Students(Sno,Sname,Sdept,Sloc) 键: Sno SC(Sno,Cno,Grade) 键: (Sno,Cno) 有所改进: 与选课无关的信息只存一次

  8. 仍有问题: 1.冗余 系与宿舍区的对应关系 一个系1000个学生 系与宿舍区的对应关系存放1000次

  9. 2.潜在不一致 系换宿舍区 到处修改 潜在的不一致 修改1000次 复杂

  10. 3.删插异常 有相应学生的信息 才能插入系以及宿舍区的信息 学生全部毕业 系与宿舍区的联系同时删除

  11. 2.产生冗余及更新异常的原因 关系模式内部属性值之间的内在联系 ——数据依赖 主要的数据依赖: 函数依赖、多值依赖

  12. Sname Sno Sdept 键 Cno Sloc Grade 一个Sno,m个Cno m行学生信息 一个系1000个Sno,1000行 系与宿舍区的n:1联系

  13. 3.关于数据依赖 属性值之间相关联系的表达 语义的体现 构成数据的约束 大多数数据依赖是函数依赖

  14. 二、函数依赖的定义 1.函数依赖 设 R(U)是一个关系模式,U 是关系 R 的属性全集; X,Y是R 的属性组(X,Y  U); 若对于R上任意一个可能的关系实例 r 满足: t1,t2∈r ,t1[X]=t2[X] 则 t1[Y]=t2[Y] 则称“X 函数决定 Y”或“Y 函数依赖于 X” 记为:X  YX 称为决定因素 对关系模式

  15. 函数依赖 X  Y 的含义为: 任何时刻表中任一元组: 属性组X上的值(a1 a2 ...an) 唯一地决定 在属性组Y上的值 (b1 b2 ...bm)

  16. R(A,B,C,D) 一个实例: A B C D t1 a1 b1 c1 d1 t2 a2b2c2d2 t3 a2b2 c2 d3 t4 a3b2c2 d4? 元组t2,t3 A的取值相同 B,C的取值相同 实例判定函数依赖?

  17. 若 对于任何时刻(任意实例)有 A的取值相同时 B,C上的取值相同 则 A (B,C)

  18. 函数依赖的例: 例 Movies(title,year ,length, genre, studioName,starName) (title,year)length ? 决定 ? (title,year)genre ? 函数依赖 ? (title,year)  studioName 即 (title,year)(length, genre, studioName) 关系实例 P38 图3-2 1-3行 5-6行

  19. 例: Students(Sno,Sname,Sage,Class_no,Sdept) 此关系模式上有许多函数依赖 如: Sno (Sname,Sage,Class_no,Sdept) Class_no Sdept (Sno,Sname)(Sage,Class_no ) ……

  20. 2.平凡函数依赖 如果函数依赖X  Y,Y  X; 则称为平凡函数依赖 否则称为非平凡的函数依赖 例:(Sno,Sname)  Sname 平凡函数依赖 (Sno,Cno)  Cno 平凡函数依赖 Sno  Sname非平凡的函数依赖

  21. 所有平凡的函数依赖保持“恒真” 通常我们讨论的都是非平凡的函数依赖 包含平凡的函数依赖有时简化规则的陈述 A1A2…An B1B2…Bm 平凡: B1B2…Bm是A1A2…An子集 非平凡:每一个Bi不是A1A2…An子集 (通常讨论)

  22. 4.1.2 函数依赖与键 设 R(U)是一个关系模式,U 是关系 R 的属性全集;X是R 的属性组(X  U); 若X  U ,且不存在 X’ X ,X’  U 则称X为R的键(候选键)。 X 能决定所有属性 X 中属性缺一则不可决定所有属性

  23. 键举例: 例 Movies(title,year,length,genre, studioName, StarName) 影片 影星 键 : (title,year , StarName) 能决定所有属性 三个属性缺一不可 所以 是 键

  24. 例: Students(Sno,Sname,Sage,Class_no,Sdept) 键 Sno (Sno,Sname ) 是 超键 不是键 真子集Sno可以决定所有属性

  25. 设 R(U)是一个关系模式,U 是关系 R 的属性全集;X是R 的属性组(X  U); 若X  U ,则称X为R的超键。 与键比较

  26. 超键举例: Students(Sno, Sname, sage, Class_no, Sdept) 超键有: Sno (Sno,Sname) (Sno,Class_no) (Sno, Sname,Sage, Class_no, Sdept) …

  27. 4.1.3 函数依赖的规则 P40 如何推导函数依赖 已知某关系所满足的函数依赖,推出它满足的另一些函数依赖。 例 3.4 R(A,B,C) 由A B, B C 推导 A C 思路:考察R的任意两个A上取值相同的元组 看看C上取值是否相同

  28. 假设 这样的两个元组为 (a,b1,c1 ) (a,b2,c2) 由 A B A上值相同则B上值相同 有b1=b2记为 b 得到 (a,b,c1 ) (a,b,c2) 由B C B上值相同则C上值相同 有 c1=c2 即C上取值相同 所以 A上取值相同的元组 C上取值相同 所以A C

  29. 函数依赖集S 蕴涵于 函数依赖集T: 满足T中函数依赖 的关系实例 也满足S中函数依赖 R(A,B,C) T:{A B, B C } S{A B, B C ,A C}

  30. 函数依赖集等价: 函数依赖集S蕴涵于函数依赖集T 函数依赖集T蕴涵于函数依赖集S S与T是等价的

  31. P40 分解规则: A1A2…An B1B2…..Bm 则A1A2…An Bi i=1,…m 例: (title,year,length,genre) (title,year) (length,genre) 则 (title,year) length (title,year) genre

  32. 合并规则: P40 组合/结合 A1A2…An Bi i=1,…m 则A1A2…An B1B2…..Bm 例: (title,year,length,genre) (title,year) length (title,year) genre 则 (title,year) (length,genre)

  33. P42 平凡依赖规则: A1A2…An B1B2…..Bm 等价于A1A2…An C1C2…..Ck 去掉A中出现的属性 非平凡 例: (title,year) (studioName,year) (title,year) (studioName)

  34. **属性集的闭包 函数依赖集F 属性组X 若有属性组Y 包含所有满足下述条件的属性A X A 蕴涵于F中的函数依赖 称Y为属性组X对于函数依赖集F的闭包, 记为XF+

  35. P43 例3.8: R(A,B,C,D,E,G) F={AB C , BC AD, D E, CG B} {A,B}+={A,B,C,D,E} F

  36. 闭包与键 例: R(A,B,C,D) F={A  D, BC  A} {B,C}+={A,B,C,D} 决定属性全集 B +={B} C +={C} 最小性 BC 是键 F F F

  37. 求键时的一些考虑: 1.一个属性不在函数依赖右边出现,则一定是键属性 2.此外,考虑含函数依赖左边属性的属性集的闭包(不含不在左边、在右边的属性) 3.不必考虑以键作为真子集的属性集的闭包 4.不必考虑属性全集的闭包(全键情况除外)

  38. 例: R(A,B,C,D) F={A  C, C  B,B A} 求所有键 分析:键中必含D 键属性涉及左边的A,B,C 解: {A,D}+ ={A,C,B,D} {B,D}+ ={B,A,C,D} {C,D}+ ={C,B,A,D} D不是键,不含D的属性组也不能作键 {A,D}{B,D}{C,D}为键 不必考虑以上述键作为真子集的属性组 这是所有的键 F F F

  39. 定理: 当且仅当 Bi在A+中 i=1..m A B1B2…..Bm 蕴涵于 函数依赖集F F

  40. 定理的例: 例: R(A,B,C,D,E,G) F={AB C, BC AD, D E, CG B} 1) AB D是否蕴涵于上述函数依赖? {A,B}+={A,B,C,D,E} AB D蕴涵于... 2) D A是否蕴涵于上述函数依赖? { D}+={DE} D A不蕴涵于... F F

  41. 传递规则: A1A2…An B1B2…..Bm B1B2…..Bm C1C2…..Ck 则 A1A2…An C1C2…..Ck

  42. P44 例3.10 Movies(title,year,length,genre, studioName, StudioAddr) (title,year) studioName studioName StudioAddr (title,year) StudioAddr

  43. **函数依赖集的闭包: 由给定的函数依赖集推导出的所有函数依赖的集合 **对于关系模式: 能导出关系模式的所有函数依赖的给定的函数依赖集,称为“基本集” , 如果基本集的任何真子集不能导出关系上的所有依赖,此基本集为最小的. 最小基本集又称为极小的函数依赖集 等价

  44. 极小的函数依赖集 (1)F中任一函数依赖的右部仅含一个属性 (2)F中没有多余的函数依赖 即:不存在这样的函数依赖X  A 使F 与 F-{X  A} 等价 (3)F中每个函数依赖的左部都没有多余的属性 即:不存在这样的函数依赖X  A, 对于X的真子集Z 使F 与 F-{X  A} ∪ZA 等价

  45. 计算极小函数依赖集的算法: (1)应用分解规则,使F中每一个函数依赖的 右部属性单一化 (2)去掉各函数依赖左部多余的属性 (3)去掉多余的函数依赖 例:F={A  BC,B  C,AB  C} (1) F1=F= {A  B, A  C, B  C,AB  C} (2)F2=F1= {A  B, A  C, B  C,A  C} ={A  B, A  C, B  C} (3)F3=F2={A  B, B  C} 极小集

  46. A,B,C为属性组 Armstrong公理: 推导函数依赖的规则 自反律 B  A 则 A B 增长律(增广律) A B 则任意C AC BC 传递律 A B B C 则 A C

  47. 4.2 关系数据库模式设计 4.2.1 有关函数依赖 完全函数依赖 设 R(U)是一个关系模式,U 是关系 R 的属性全集;X,Y是R 的属性组(X,Y  U); 若X  Y ,且不存在 X’  X ,X’  Y 则称 Y 完全函数依赖于 X ;记作: X  Y 。 f

  48. 完全函数依赖含义: 元组在属性组Y上的值 依赖于 在属性组X中所有属性上的值。

  49. 部分函数依赖 设 R(U)是一个关系模式,U 是关系 R 的属性全集; X,Y是R 的属性组(X,Y  U); 若X  Y ,且存在X’ X ,X’  Y 则称 Y 部分函数依赖于 X ;记作: X  Y 。 P

  50. 部分函数依赖含义: 元组在属性组Y的值, 只依赖于 属性组X的一部分属性的值。

More Related