五、数据依赖对关系模式的影响 例1建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系( Sdept) 系主任姓名( Mname)、课程名( Cname) 成绩( Grade) 单一的关系模式: Student<U、F U=t Sno, Sdept, Mname, Cname, Grade An Introduction to Database System
An Introduction to Database System 五、数据依赖对关系模式的影响 [例1]建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式 : Student <U、F> U ={ Sno, Sdept, Mname, Cname, Grade }
数据依赖对关系模式的影响(续)( 属性组U上的一组函数依赖F: F={Sno→ Sdept, Sdept→ Mname, (Sno, Cname)→ Grade} Sno Cname Grade Sdept Mname An Introduction to Database System
An Introduction to Database System 数据依赖对关系模式的影响(续) 属性组U上的一组函数依赖F: F ={ Sno → Sdept, Sdept → Mname, (Sno, Cname) → Grade } Sno Cname Sdept Mname Grade
关系模式 Student<U,F>中存在的问题 1.数据冗余太大 2.更新异常( Update anomalies) 3.插入异常( Insertion anomalies) 4.删除异常( Deletion anomalies) An Introduction to Database System
An Introduction to Database System 关系模式Student<U, F>中存在的问题 1. 数据冗余太大 2. 更新异常(Update Anomalies) 3. 插入异常(Insertion Anomalies) 4. 删除异常(Deletion Anomalies)
数据依赖对关系模式的影响(续)( 结论: ■ Student关系模式不是一个好的模式。 “好”的模式 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖 An Introduction to Database System
An Introduction to Database System 数据依赖对关系模式的影响(续) 结论: ◼ Student关系模式不是一个好的模式。 ◼ “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖
分解关系模式 把这个单一模式分成3个关系模式: s( Sno, Sdept, Sno - Sdept) SC( Sno, Cno, Grade, ( Sno, Cno)- Grade) DEPT(Sdept, Mname, Sdept- Mname) An Introduction to Database System
An Introduction to Database System 分解关系模式 ❖把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno → Sdept); SC(Sno,Cno,Grade,(Sno,Cno) → Grade); DEPT(Sdept,Mname,Sdept→ Mname)