教据库系统概论 An Introduction to Database System 第六讲关系数据理论
数据库系统概论 An Introduction to Database System 第六讲 关系数据理论
第六讲关系数据理论 6.1问题的提出 6.2规范化 6.3数据依赖的公理系统 *6.4模式的分解 6.5小结
第六讲 关系数据理论 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解 6.5 小结
6.1问题的提出 关系模式存在的问题
6.1 问题的提出 关系模式存在的问题
关系模式存在的问题 例1(P170):描述学校的数据库: 学生的学号(Sno)、所在系( Sdept) 系主任姓名( Mname)、课程号(Cno) 成绩( Grade) 问题:如何设计关系模式? 捉示:1.概念模型2.逻辑模型(关系模式)
关系模式存在的问题 例1(P170):描述学校的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程号(Cno) 成绩(Grade) 问题:如何设计关系模式? 提示:1.概念模型 2.逻辑模型(关系模式)
≌ 数据依赖对关系模式的影响(续丌 学校数据库的语义: 一个系有若干学生,一个学生只属于一个系 个系只有一名主任; 3.一个学生可以选修多门课程,每门课程有若干学生 选修; 4.每个学生所学的每门课程都有一个成绩
数据依赖对关系模式的影响(续) 学校数据库的语义: ⒈ 一个系有若干学生, 一个学生只属于一个系; ⒉ 一个系只有一名主任; ⒊ 一个学生可以选修多门课程, 每门课程有若干学生 选修; ⒋ 每个学生所学的每门课程都有一个成绩
假设设计成单一模式 单一的关系模式: Student U=t Sno, Sdept, Mname, Cno, Grade
假设设计成单一模式 单一的关系模式 : Student U ={ Sno, Sdept, Mname, Cno, Grade }
Student表 Sno Sdept Mname Cno Grade S1计算机系张明 C195 S2计算机系张明 C190 S3计算机系张明 C188 S4计算机系张明 C170 S5计算机系张明 C178
Student 表 Sno Sdept Mname Cno Grade S1 计算机系 张明 C1 95 S2 计算机系 张明 C1 90 S3 计算机系 张明 C1 88 S4 计算机系 张明 C1 70 S5 计算机系 张明 C1 78 … … …
≌ 关系模式 Students中存在的问题 数据冗余太大 ■浪费大量的存储空间 例:每一个系主任的姓名重复出现 2修改复杂( Update anomalies) ■数据冗余,修改数据时,维护数据完整性代价大 例:某系更换系主任后,系统必须修改与该系学生有关的每一个 元组
关系模式Student中存在的问题 ⒈ 数据冗余太大 ◼ 浪费大量的存储空间 例:每一个系主任的姓名重复出现 ⒉ 修改复杂(Update Anomalies) ◼ 数据冗余 ,修改数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个 元组
≌ 关系模式 Students中存在的问题 3.插入异常( Insertion anomalies) ■该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个 系及其系主任的信息存入数据库 4.删除异常( Deletion anomalies) ■不该删除的数据不得不删 例,如果某个系的学生全部毕业了,我们在删除该系学 生信息的同时,把这个系及其系主任的信息也丢掉了
关系模式Student中存在的问题 ⒊ 插入异常(Insertion Anomalies) ◼ 该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个 系及其系主任的信息存入数据库。 ⒋ 删除异常(Deletion Anomalies) ◼ 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学 生信息的同时,把这个系及其系主任的信息也丢掉了
≌ 数据依赖对关系模式的影响(续丌 结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生更新异常(插入异常、删除异常、修改复 杂), 数据冗余应尽可能少
数据依赖对关系模式的影响(续) 结论: • Student关系模式不是一个好的模式。 • “好”的模式: 不会发生更新异常(插入异常、删除异常、修改复 杂), 数据冗余应尽可能少