关系数据理论
关系数据理论
现实世界 没胶器 ::的 信息世界 概念结构 ER图 机器世界 逻辑结构 关系模式
1 概念结构 逻辑结构 现实世界 信息世界 机器世界 E-R图 关系模式
如何构造一个合适的数据库模式? 构造几个关系模式? 每个关系由哪些属性组成?
1 如何构造一个合适的数据库模式? 构造几个关系模式? 每个关系由哪些属性组成?
数据库逻辑设计的有力工具——关系数据库规范化理论
1 数据库逻辑设计的有力工具 —— 关系数据库规范化理论
关系模型概念回顾 1.关系:描述实体、属性、实体间的联系。从形式上看,它是 一张二维表; 2.关系模式:对关系的描述;关系数据库中,关系模式是型, 关系是值; 3.关系数据库:基于关系模型的数据库; 4.关系数据库的模式:对关系数据库的描述,关系数据库的型 也称为关系数据库模式
1 1. 关系:描述实体、属性、实体间的联系。从形式上看,它是 一张二维表; 2. 关系模式:对关系的描述;关系数据库中,关系模式是型, 关系是值; 3. 关系数据库:基于关系模型的数据库; 4. 关系数据库的模式:对关系数据库的描述,关系数据库的型 也称为关系数据库模式。 一、关系模型概念回顾
关系模型概念回顾 5关系模式的形式化定义 关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F) R:关系名; U:组成该关系的属性名集合(一组属性) D:属性组U中属性所来自的域; DOM:属性向域的映象集合; F:属性间数据的依赖关系集合; 由于D、DOM与模式设计关系不大,因此在可以把关系模式看作一个三元 组:R,当且仅当U上的一个关系r满足F时,r称为关系模式R 的一个关系
1 5. 关系模式的形式化定义 关系模式由五部分组成,即它是一个五元组:R(U, D, DOM, F) • R: 关系名; • U: 组成该关系的属性名集合(一组属性); • D: 属性组U中属性所来自的域; • DOM:属性向域的映象集合; • F: 属性间数据的依赖关系集合; 由于D、DOM与模式设计关系不大,因此在可以把关系模式看作一个三元 组:R ,当且仅当U上的一个关系 r 满足 F 时,r 称为关系模式 R 的一个关系。 一、关系模型概念回顾
二、关系模式中可能存在的异常 EG:建立一个描述学校教务的数据库:学生的学号(Sno)、所在系 ( Sdept)、系主任姓名( Mname)、课程号(Cno)和成绩( Grade); 假设用单一的关系模式 Student来表示,则该关系模式的属性集合 U = Sno, Sdept, Mname, Cname, Grade j 现实世界已知事实的语义 个系有若干学生,一个学生只属于一个系; 个系只有一名系主任; 个学生可以选修多门课程,每门课程有多名学生选修; 每个学生所学的每门课程都有一个成绩
1 EG:建立一个描述学校教务的数据库:学生的学号(Sno)、所在系 (Sdept)、系主任姓名(Mname)、课程号(Cno)和成绩(Grade); 假设用单一的关系模式 Student 来表示,则该关系模式的属性集合 U ={ Sno, Sdept, Mname, Cname, Grade } 现实世界已知事实的语义: • 一个系有若干学生, 一个学生只属于一个系; • 一个系只有一名系主任; • 一个学生可以选修多门课程, 每门课程有多名学生选修; • 每个学生所学的每门课程都有一个成绩。 二、关系模式中可能存在的异常
二、关系模式中可能存在的异常 Student表 no Sdept Mname Cl no Grade S1 计算机系 张明 CI S1 计算机系 长明 C2 85 SI 计算机 张明 C3 96 S4 计算系●张明 C1 73 S5 计 C1 86
1 二、关系模式中可能存在的异常 Student表 Sno Sdept Mname Cno Grade S1 计算机系 张明 C1 95 S1 计算机系 张明 C2 85 S1 计算机系 张明 C3 96 S4 计算机系 张明 C1 73 S5 计算机系 张明 C1 86 … … … … …
二、关系模式中可能存在的异常 ·数据冗余:如果一个系有多名学生或该学生选修了多门课程,则系名称和 系主任姓名就要出现多次,浪费了存储设备; 插入异常:如果一个系刚成立,无学生,或者有学生但尚未安排课程,则 无法把这个系及其负责人的信息加入数据库;(应该插入而未被插入) ·删除异常:如果某个系的学生全部毕业了,我们在删除该系学生信息的同 时,把这个系及其系主任的信息也丢掉了;(不该删除的数据不得不删) ·更新异常:如果某系更换系主任或更换系名后,系统必须修改与该系学生 有关的每一个元组;若有一个元组中的数据未更改,就会造成这个系主任 姓名不一致现象
1 • 数据冗余:如果一个系有多名学生或该学生选修了多门课程,则系名称和 系主任姓名就要出现多次,浪费了存储设备; • 插入异常:如果一个系刚成立,无学生,或者有学生但尚未安排课程,则 无法把这个系及其负责人的信息加入数据库;(应该插入而未被插入) • 删除异常:如果某个系的学生全部毕业了,我们在删除该系学生信息的同 时,把这个系及其系主任的信息也丢掉了;(不该删除的数据不得不删) • 更新异常:如果某系更换系主任或更换系名后,系统必须修改与该系学生 有关的每一个元组;若有一个元组中的数据未更改,就会造成这个系主任 姓名不一致现象。 二、关系模式中可能存在的异常
二、关系模式中可能存在的异常 结论: Student关系模式不是一个好的模式 好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应 尽可能少。 ·如果将关系模式 Student划分为三个关系模式 S(Sno, Sdept) SC(Sno, Cno, Grade) Dept( sdept, Mname 可基本解决以上问题; 但分解后是否是最佳的模式,也不是绝对的
1 结论: • Student关系模式不是一个好的模式。 • “好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应 尽可能少。 • 如果将关系模式Student划分为三个关系模式: S (Sno,Sdept ) 、SC(Sno,Cno,Grade ) 、Dept(Sdept, Mname ) 可基本解决以上问题; 但分解后是否是最佳的模式,也不是绝对的。 二、关系模式中可能存在的异常