1 / 20

数据库原理与 SQL Server

数据库原理与 SQL Server. 第 6 课 数据库规范化设计 ( 二 ). 第 6 课 数据库规范化设计 —— 数据依赖. 目标: 了解关系模式的规范化问题 掌握函数依赖的相关知识 掌握属性集闭包的计算. 3.3 数据库原理 — 数据库规范化设计. 概念: 对于给定应用环境,构造最优数据库模式 目标:结构合理、使用方便、效率较高的数据库 内容: 3.3.1 数据模型 3.3.2 关系模型规范化问题 3.3.3 函数依赖 3.3.4 属性集闭包 3.3.5 范式. 数据库逻辑结构. 数据依赖. 评价标准. 一、关系模式的规范化问题.

Download Presentation

数据库原理与 SQL Server

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. 数据库原理与SQL Server 第6课 数据库规范化设计(二)

  2. 第6课 数据库规范化设计——数据依赖 目标: • 了解关系模式的规范化问题 • 掌握函数依赖的相关知识 • 掌握属性集闭包的计算

  3. 3.3 数据库原理—数据库规范化设计 概念:对于给定应用环境,构造最优数据库模式 目标:结构合理、使用方便、效率较高的数据库 内容:3.3.1 数据模型 3.3.2 关系模型规范化问题 3.3.3 函数依赖 3.3.4 属性集闭包 3.3.5 范式 数据库逻辑结构 数据依赖 评价标准

  4. 一、关系模式的规范化问题 人工管理: 文件系统: 数据库系统: • 数据不能共享,冗余度高 数据可以共享(理论),仍有较高冗余度 数据可以共享,具有可控冗余度 数据管理 数据冗余:同一个数据在系统中多次重复出现 问题:操作异常

  5. 关系模式的操作异常 实例 学生选课关系模式R(sno,sname,sex,cno,cname,score)实例 将数据库应用 改为数据结构 数据结构 删除1007 插入新课程 c004 操作系统 修改异常: 插入异常: 删除异常: 数据不一致 操作异常 无法插入 丢失信息

  6. 关系模式的规范化 泛关系模式 当R(U)中U包含了现实问题的所有属性,称R(U) 为泛关系(模式) 问题 泛关系模式R(U)通常有数据冗余,需分解为多个模式Ri, 其集合ρ={R1,…,Rk}称为数据库模式ρ 实例 “学生选课”泛关系模式:R(sno,sname,sex,cno,cname,score) 分解为数据库模式: ρ={R1(sno,sname,sex),R2(cno,cname),R3(sno,cno, score)} 符号 A、B、C…表示单属性,U、V、W、X、Y、Z表示属性集 R、S表示关系,R(A,B,C)=R(ABC)=ABC={A,B,C}

  7. 二、函数依赖 数据依赖:数据间的联系 函数依赖:属性间的联系,最基本的数据依赖

  8. 函数依赖的定义 定义 R(U),X、Y为属性集,t1、t2为元组,若t1[X] =t2[X],则t1[Y]=t2[Y],称X函数决定Y函数 或Y依赖于X,记作X→Y,称函数依赖(FD) 实例 对(sno,sname,sex,cno,cname,score)有FD sno→sname cno→cname sno→sex sno→(sname,sex) (sno,cno)→score

  9. 函数依赖实例 实例 R(ABCD),假设A与B为一对多联系,而C与D 为一对一联系,写出相应的FD A与B一对多联系,即每个A值有多个B值对应,有FD: B→A C与D一对一联系,有FD: D→C和C→D 注意 一对多关系的FD为多端决定一端

  10. 函数依赖和关键码的关系 定义 R(U),若X→U,则X是R的超键 若X任一子集X1,X1→U不成立,则X是R的候选键 实例 对“学生选课”关系模式R(sno,sname,sex,cno,cname,score) 有FD:(sno,cno)→(sno,sname,sex,cno,cname,score) 即(sno,cno)为关系模式R(U)的超键 由于 sno→(sno,sname,sex,cno,cname,score) 不成立 cno→(sno,sname,sex,cno,cname,score) 即(sno,cno)为关系模式R(U)的候选键 有FD:(sno,sname,cno)→(sno,sname,sex,cno,cname,score) 因有FD:(sno,cno)→(sno,sname,sex,cno,cname,score) 即(sno,sname,cno)只是超键而非候选键

  11. 结论 • 若X是R的候选键,则任意Y均有X→Y 如 “学生选课” R(sno,sname,sex,cno,cname,score) 有(sno,cno)→(sno ,sname ,sex ,cno ,cname ,score) • 若X→Y,而X非超键,则R一定有冗余 • 如 “学生选课” R(sno,sname,sex,cno,cname,score) • 有cno→cname,则cno相同时cname必冗余 • 函数依赖表示数据的完整性约束

  12. 函数依赖的扩充定义 定义 若X→Y,且Y⊆ X,则称X→Y是“平凡的FD” 反之称“非平凡的FD” 实例 对(sno,sname,sex,cno,cname,score)有FD (sno,sname)→sno sno→sno 平凡的FD sno→sname 非平凡的FD 结论 ● 平凡的FD是不可能不满足的FD ●要研究的是非平凡的FD

  13. 三、属性集的闭包 函数依赖集闭包 属性集闭包 关系模式规范化重点

  14. 函数依赖集与函数依赖集的闭包 定义 函数依赖的集合,称函数依赖集(F) 由F中所有FD可推导出的所有FD的集合(F+) 实例 R(ABC),F={A→B,B→C},求F+ F+={ φ→φ ,A→φ ,A→A ,A→B ,A→C ,B→…, C→…, AB→φ ,AB→A ,AB→… ,…} 结论 ●F+计算复杂,是指数级计算 ●判断任一FD是否属于F+ 实例 教师认识所有学生

  15. 属性集闭包的定义 定义 对F,F+中所有X→A的A的集合称X的闭包(X+) 实例 R(ABC),F={A→B,B→C} 结论 ●X+表示了所有X可以决定的属性 如R(ABC),F={A→B,B→C} ,则A+= A B C 有A+=ABC ,则A→ABC ●若X+包含R所有属性X是超键,当X不可约则是候选键 如R(ABC),F={A→B,B→C} 有A+=ABC,则A为超键 ,因A不可约则A为候选键 ●X→Y属于F+的必充条件是Y是X+的子集 如R(ABC),F={A→B,B→C}, A+=ABC ∈ F+ {A→φ ,A→A ,A→B ,A→C ,A→AB ,A→AC ,A→BC ,A→ABC}

  16. 属性集闭包实例 实例 R(ABC),F={A→B,B→C} 求其候选键并判断A→C和B→A是否属于F+ 根据属性集闭包的定义: A+=ABC ,B+=BC ,C+=C 由于A+包含R所有属性且A不可约,则A为候选键 由于C∈A+ ,则A→C∈F+ 由于A∉B+ ,则B→A∉F+ 结论 ●不求F+判断FD是否属于F+ ●求候选键 求属性集的闭包

  17. 属性集闭包算法 算法F为R(U) 的FD集,A(A∈U)的闭包算法 ① 将A置入A+ ② 对F每一FD,若左部所有属性属于A+,则将 右部所有属性置入A+ ③ 重复第二步至A+封闭 算法F为R(U) 的FD集,X (X∈U) 的闭包算法 ① 求X中每个单属性的闭包 ② 若F中无左部为X的FD,则X+为X中各属性闭 包的并集,否则将A扩展为X重新计算

  18. 属性集闭包算法实例(一) 实例 R(ABCD),F={A→B,B→C,D→B},求候选键 (1)求A+ ① A+=A ② 由A→B,而A∈A+,则A+=AB ③ 由B→C,而B∈A+,则A+=ABC ④ A+封闭,即A+=ABC (2)求B+、C+、D+ 按步骤(1)可得:B+=BC,C+=C,D+=BCD (3)求其候选键 所有FD左部为单属性,属性集闭包为单属性闭包的并 (AD)+=ABCD,且AD不可约 R候选键为AD

  19. 属性集闭包算法实例(二) 实例 R(ABC),F={A→BC,BC→A},求候选键 ① 求属性闭包 A+= ABC,B+= B,C+= C ② 求属性集闭包 由BC→A,则(BC)+= ABC 其余属性集闭包为属性闭包的并 ③ 求候选键 A+=ABC,(BC)+=ABC,且A、BC不可约 R候选键为A和BC

  20. 作业 第三章 习题 2、10、11、12、13、14

More Related