假设设计成单一模式 单一的关系模式: Student<U、F> U=t Sno, Sdept, Mname, Cno, Grade
假设设计成单一模式 单一的关系模式 : Student <U、F> 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<U,F>中存在的问题 数据冗余太大 ■浪费大量的存储空间 例:每一个系主任的姓名重复出现 2修改复杂( Update anomalies) ■数据冗余,修改数据时,维护数据完整性代价大 例:某系更换系主任后,系统必须修改与该系学生有关的每一个 元组
关系模式Student<U, F>中存在的问题 ⒈ 数据冗余太大 ◼ 浪费大量的存储空间 例:每一个系主任的姓名重复出现 ⒉ 修改复杂(Update Anomalies) ◼ 数据冗余 ,修改数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个 元组
≌ 关系模式 Students<U,F>中存在的问题 3.插入异常( Insertion anomalies) ■该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个 系及其系主任的信息存入数据库 4.删除异常( Deletion anomalies) ■不该删除的数据不得不删 例,如果某个系的学生全部毕业了,我们在删除该系学 生信息的同时,把这个系及其系主任的信息也丢掉了
关系模式Student<U, F>中存在的问题 ⒊ 插入异常(Insertion Anomalies) ◼ 该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个 系及其系主任的信息存入数据库。 ⒋ 删除异常(Deletion Anomalies) ◼ 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学 生信息的同时,把这个系及其系主任的信息也丢掉了
≌ 数据依赖对关系模式的影响(续丌 结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生更新异常(插入异常、删除异常、修改复 杂), 数据冗余应尽可能少
数据依赖对关系模式的影响(续) 结论: • Student关系模式不是一个好的模式。 • “好”的模式: 不会发生更新异常(插入异常、删除异常、修改复 杂), 数据冗余应尽可能少