文档介绍:第5章关系数据库设计理论
一个数据库应用系统往往涉及到多方面的复杂的数据信息。例如,在学生管理信息系统中,要涉及到学生、院系、宿舍、课程、成绩等数据。再例如,在产品销售数据库中设计到产品、类别、仓库、销售单、销售明细单等数据。
如何将所涉及到的数据组织存入到数据库中?是放在一个表中存放还是分放在几个表中存放?每个表应由哪些属性组成?怎样设计才是科学合理的呢?
解决之法是用RDB设计理论:规范化理论
例如:产品报价数据库
第5章内容及要求
数据依赖(数据依赖对关系模式的影响; 数据依赖的概念,包括函数依赖、平凡函数依赖和非平凡函数依赖、完全函数依赖和部分函数依赖、传递函数依赖、码)
范式理论(范式、2NF、3NF、BCNF、多值依赖、4NF。关系模式的规范化;各种范式小结和规范化步骤。)
关系模式的分解(模式分解的准则;无损连接性;保持函数依赖;模式分解的算法;)
小结
习题
数据依赖
数据依赖在关系模式中广泛存在,影响巨大。
恰当的数据依赖是必要的。但不必要的数据依赖会对关系模式产生不好的影响。
进行数据库设计时要深入分析数据间的依赖。
本节主要介绍关系模式中的数据依赖的相关概念,分析数据依赖对关系模式的影响。
数据依赖
关系模式中的数据依赖
数据依赖分类
一个关系模式中的函数依赖
函数依赖对关系模式的影响
函数依赖的概念
平凡函数依赖和非平凡函数依赖
完全函数依赖和部分函数依赖
传递函数依赖、码
关系模式中的数据依赖
1. 关系模式描述为:
R(U,D,DOM,F)
R为关系名。U属性名集合。D为属性组U中属性所来自的域。DOM属性向域的映象的集合。F为属性间数据的依赖关系集合。
2. 数据依赖F:限定组成关系的各元组必须满足的完整性约束条件。如属性的取值范围;或者属性值间的相互关联(即数据依赖)。
3. 关系模式的简述为: R(U,F)
数据依赖分类
1. 关系模式中的数据依赖有多种,比较重要的是函数依赖、多值依赖、连接依赖。
2. 函数依赖:关系模式中属性间的普遍存在函数依赖。
例:student(sno,sname,ssex,sage,sdept)
该关系模式中存在以下函数依赖:
Sno—>sname, Sno—> ssex, Sno—> sdept。
3. 多值依赖:一门课由多个老师上,使用同一套参考书。
4. 连接依赖:关系与关系间往往存在联系。
学校关系模式的函数依赖
sno
cname
grade
sdept
Mname
如学校数据库模式:一个系有若干学生,一个学生只属于一个系;一个系只有一个系主任;一个学生可以选修多门课程,每门课程有若干同学选修;每个学生所学的每门课程都有成绩。
假设学校数据库模式仅由一个表构成。
student(sno,sdept,ame,grade)
各属性为学号,所在系,系主任名,课程名,成绩。
关系中存在的数据依赖为:
函数依赖对关系模式的影响
关系模式:student(sno,sdept,ame,grade)存在一些问题:
1. 数据冗余太大。 sdept,ame重复保存。
2. 更新异常。
3. 插入异常。
4. 删除异常。
为什么会出现这些问题呢?
因为存在不合适的数据依赖!
函数依赖的概念
定义:设R(U)是一个关系模式,U是R的属性集合,X,Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性相同,而在Y上的属性不同,则称“X函数确定Y”或”Y函数依赖于X“,记作 XY。
说明:
(1)对R中所有关系实例而言;
(2)数据库设计者可作强制规定,如姓名不能同名;
(3)如XY,X称为决定属性集;
(4)如XY,并且YX 则记为XY;
(5)若Y不函数依赖于X,记作X—\—>Y。