四、一个实例 例:建立一个描述学生情况的数据库,面临的对象有: 学生:用学号(Sno)描述, 系:用系名(Sdept)描述 系主任:用其姓名(Mname)描述 课程:用课程号(Cno)描述 成绩:Grade 假设用单一的关系模式$来表示,属性集合为: U=(Sno,Sdept,Mname,Cno,Grade An Introduction to Database System
An Introduction to Database System 四、一个实例 例:建立一个描述学生情况的数据库,面临的对象有: 学生:用学号(Sno)描述, 系:用系名(Sdept)描述 系主任:用其姓名(Mname)描述 课程:用课程号(Cno)描述 成绩:Grade 假设用单一的关系模式S来表示,属性集合为: U ={ Sno, Sdept, Mname, Cno, Grade }
一个实例(续) 由现实世界的已知事实得知: 1.一个系有若干学生,一个学生只属于一个系; 2.一个系只有一名(正职)主任; 3.一个学生可以选修多门课程,每门课程有若干学生 选修; 4.每个学生所学的每门课程都有一个成绩。 An Introduction to Database System
An Introduction to Database System 一个实例(续) 由现实世界的已知事实得知: ⒈ 一个系有若干学生, 一个学生只属于一个系; ⒉ 一个系只有一名(正职)主任; ⒊ 一个学生可以选修多门课程, 每门课程有若干学生 选修; ⒋ 每个学生所学的每门课程都有一个成绩
一个实例(续) 属性组U上的一组函数依赖F: F SnoSdept,Sdept-Mname, (Sno,Cno)→Grade} Sno Cno Grade Sdept Mname An Introduction to Database System
An Introduction to Database System 一个实例(续) 属性组U上的一组函数依赖F: F ={ Sno → Sdept, Sdept → Mname, (Sno, Cno) → Grade } Sno Cno Sdept Mname Grade
一个实例(续) ■如果只考虑函数依赖这一种数据依赖,就会得到描述 该数据库单一的关系模式: s<U、F>〉 An Introduction to Database System
An Introduction to Database System 一个实例(续) ◼ 如果只考虑函数依赖这一种数据依赖,就会得到描述 该数据库单一的关系模式 : s <U、F>
关系模式s<U,F>中存在的问题 1.数据兄余太大 ■浪费大量的存储空间 例:学生所在的系和系主任的姓名重复出现 2.更新异样 ■数据冗余,更新数据时,维护数据完整性代价大, 容易造成数据不一致。 例:某条更换系主任后,系统必须修改与该系学生有关 的每一个元组 An Introduction to Database System
An Introduction to Database System 关系模式s<U, F>中存在的问题 ⒈ 数据冗余太大 ◼ 浪费大量的存储空间 例:学生所在的系和系主任的姓名重复出现 2.更新异样 ◼ 数据冗余 ,更新数据时,维护数据完整性代价大, 容易造成数据不一致。 例:某系更换系主任后,系统必须修改与该系学生有关 的每一个元组