第5章关系数据库设计理论 个数据库应用系统往往涉及到多方面的复杂的 数据信息、。例如,在学生管理信息系统中,要涉 及到学生、院系、宿舍、课程、成绩等数据。再 例如,在产品销售数据库中设计到产品、类别 仓库、销售单、销售明细单等数据。 ■如何将所涉及到的数据组织存入到数据库中?是 放在一个表中存放还是分放在几个表中存放?每 个表应由哪些属性组成?怎样设计才是科学合理 的呢? ■解决之法是用RDB设计理论:规范化理论
第5章 关系数据库设计理论 ◼ 一个数据库应用系统往往涉及到多方面的复杂的 数据信息。例如,在学生管理信息系统中,要涉 及到学生、院系、宿舍、课程、成绩等数据。再 例如,在产品销售数据库中设计到产品、类别、 仓库、销售单、销售明细单等数据。 ◼ 如何将所涉及到的数据组织存入到数据库中?是 放在一个表中存放还是分放在几个表中存放?每 个表应由哪些属性组成?怎样设计才是科学合理 的呢? ◼ 解决之法是用RDB设计理论:规范化理论
数都所其不工八图 序(P)数据库(0)窗口(w)帮助(H 回时国图回凶国价后幽到回對国到回司因回刮 操作员 操作员 月田编号 期作径明 产品数量 业务员 R备份编号 操作员 报分明号 +黉名 wizard I 业务员 wizard 报价单号 名称2 总金额 地址2 客户名称 联系2 报价单号 区编号 斗价分区 奥开始国部” Windows Commander45,数据库设计器报价库 民多国昌1615
例如:产品报价数据库
第5章内容及要求 5,1数据依赖(数据依赖对关系模式的影响;数据依赖 的概念,包括函数依赖、平凡函数依赖和非平凡函数依 赖、完全函数依赖和部分函数依赖、传递函数依赖、码) 5.2范式理论(范式、2NF、3NF、BCNF、多值依赖、4NF 关系模式的规范化;各种范式小结和规范化步骤。) 关系模式的分解(模式分解的准则;无损连接性 保持函数依赖;模式分解的算法; 4小结 习题
第5章 内容及要求 ▪ 5.1 数据依赖(数据依赖对关系模式的影响; 数据依赖 的概念,包括函数依赖、平凡函数依赖和非平凡函数依 赖、完全函数依赖和部分函数依赖、传递函数依赖、码) ▪ 5.2 范式理论(范式、2NF、3NF、BCNF、多值依赖、4NF。 关系模式的规范化;各种范式小结和规范化步骤。) ▪ 5.3 关系模式的分解(模式分解的准则;无损连接性; 保持函数依赖;模式分解的算法;) ▪ 5.4 小结 ▪ 5.5 习题
5.1数据依赖 数据依赖在关系模式中广泛存在,影响巨大 恰当的数据依赖是必要的。但不必要的数据 依赖会对关系模式产生不好的影响。 进行数据库设计时要深入分析数据间的依赖。 本节主要介绍关系模式中的数据依赖的相关 概念,分析数据依赖对关系模式的影响
5.1 数据依赖 ▪ 数据依赖在关系模式中广泛存在,影响巨大。 ▪ 恰当的数据依赖是必要的。但不必要的数据 依赖会对关系模式产生不好的影响。 ▪ 进行数据库设计时要深入分析数据间的依赖。 ▪ 本节主要介绍关系模式中的数据依赖的相关 概念,分析数据依赖对关系模式的影响
5.1数据依赖 5.1.1关系模式中的数据依赖 ■5.1.2数据依赖分类 5.1.3一个关系模式中的函数依赖 5.1.4函数依赖对关系模式的影响 5.1.5函数依赖的概念 5.1.6平凡函数依赖和非平凡函数依赖 5.1.7完全函数依赖和部分函数依赖 5.1.8传递函数依赖、码
5.1 数据依赖 ◼ 5.1.1 关系模式中的数据依赖 ◼ 5.1.2 数据依赖分类 ◼ 5.1.3 一个关系模式中的函数依赖 ◼ 5.1.4 函数依赖对关系模式的影响 ◼ 5.1.5 函数依赖的概念 ◼ 5.1.6 平凡函数依赖和非平凡函数依赖 ◼ 5.1.7 完全函数依赖和部分函数依赖 ◼ 5.1.8 传递函数依赖、码
5.1.1关系模式中的数据依赖 1.关系模式描述为: R(U, D, DOM, F) R为关系名。U属性名集合。D为属性组U中属 性所来自的域。DOM属性向域的映象的集合。 F为属性间数据的依赖关系集合。 2.数据依赖F:限定组成关系的各元组必须满 足的完整性约東条件。如属性的取值范围;或 者属性值间的相互关联(即数据依赖)。 3.关系模式的简述为:R(U,F)
5.1.1 关系模式中的数据依赖 ▪ 1. 关系模式描述为: R(U,D,DOM,F) R为关系名。U属性名集合。D为属性组U中属 性所来自的域。DOM属性向域的映象的集合。 F为属性间数据的依赖关系集合。 ▪ 2. 数据依赖F:限定组成关系的各元组必须满 足的完整性约束条件。如属性的取值范围;或 者属性值间的相互关联(即数据依赖)。 ▪ 3. 关系模式的简述为: R(U,F)
5.1.2数据依赖分类 1.关系模式中的数据依赖有多种,比较重要的是函数依 赖、多值依赖、连接依赖 ■2.函数依赖:关系模式中属性间的普遍存在函数依赖 F: student(sno, sname ssex, sage, sdept 该关系模式中存在以下函数依赖: Sno->sname, sno>ssex, sno> sdept ■3.多值依赖:一门课由多个老师上,使用同一套参考书 4.连接依赖:关系与关系间往往存在联系
5.1.2 数据依赖分类 ▪ 1. 关系模式中的数据依赖有多种,比较重要的是函数依 赖、多值依赖、连接依赖。 ▪ 2. 函数依赖:关系模式中属性间的普遍存在函数依赖。 例:student(sno,sname,ssex,sage,sdept) 该关系模式中存在以下函数依赖: Sno—>sname, Sno—> ssex, Sno—> sdept。 ◼ 3. 多值依赖:一门课由多个老师上,使用同一套参考书。 ◼ 4. 连接依赖:关系与关系间往往存在联系
1.3学校关系模式的函数依赖 如学校数据库模式:一个系有若干学生,一个学生只属 于一个系 个系只有一个系主任;一个学生可以选修 多门课程,每门课程有若干同学选修;每个学生所学的 每门课程都有成绩 假设学校数据库模式仅由一个表构成。 student(sno sdept, mname, cname, grade 各属性为学号,所在系,系主任名,课程名,成绩 关系中存在的数据依赖为: Sno cname grade sdept Enamel
5.1.3 学校关系模式的函数依赖 sno cname grade sdept Mname ▪ 如学校数据库模式:一个系有若干学生,一个学生只属 于一个系;一个系只有一个系主任;一个学生可以选修 多门课程,每门课程有若干同学选修;每个学生所学的 每门课程都有成绩。 ▪ 假设学校数据库模式仅由一个表构成。 student(sno,sdept,mname,cname,grade) ▪ 各属性为学号,所在系,系主任名,课程名,成绩。 ▪ 关系中存在的数据依赖为:
5.1.4函数依赖对关系模式的影响 关系模式: student(sno, sdept, mname, chame, grade) 存在一些问题: 1.数据冗余太大。 sdept, mname, cname重复保存。 2.更新异常。 3.插入异常。 4.删除异常。 为什么会出现这些问题呢? 因为存在不合适的数据依赖!
5.1.4 函数依赖对关系模式的影响 ▪ 关系模式:student(sno,sdept,mname,cname,grade) 存在一些问题: ▪ 1. 数据冗余太大。 sdept,mname,cname重复保存。 ▪ 2. 更新异常。 ▪ 3. 插入异常。 ▪ 4. 删除异常。 ▪ 为什么会出现这些问题呢? ▪ 因为存在不合适的数据依赖!
5.1.5函数依赖的概念 定义:设R(U)是一个关系模式,U是R的属性集合,Ⅹ, Y是U的子集。对于R(U)的任意一个可能的关系r,如 果r中不存在两个元组,它们在Ⅹ上的属性相同,而在Y 上的属性不同,则称“X函数确定Y〃或”Y函数依赖于 X,记作X→Y 说明: (1)对R中所有关系实例而言; (2)数据库设计者可作强制规定,如姓名不能同名 (3)如X→Y,X称为决定属性集; (4)如X→Y,并且Y→X则记为X→Y; (5)若Y不函数依赖于X,记作X-\->Y
5.1.5 函数依赖的概念 ▪ 定义:设R(U)是一个关系模式,U是R的属性集合,X, Y是U的子集。对于R(U)的任意一个可能的关系r,如 果r中不存在两个元组,它们在X上的属性相同,而在Y 上的属性不同,则称“X函数确定Y”或”Y函数依赖于 X“ ,记作 X→Y。 ▪ 说明: ▪ (1)对R中所有关系实例而言; ▪ (2)数据库设计者可作强制规定,如姓名不能同名; ▪ (3)如X→Y,X称为决定属性集; ▪ (4)如X→Y,并且Y→X 则记为X→Y; ▪ (5)若Y不函数依赖于X,记作X—\—>Y