- pdf 下载:明码 7281
- 专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解
一句话,钻研关系数据库实践就是为了设计出适合的关系模式,也即适合、高效的表
一:概念回顾:关系模式
- 相干文章:(数据库系统概论 | 王珊)第二章关系数据库 - 第一节:关系数据结构及其形式化定义
关系模式:关系模式就是对关系的形容,能够示意为
$$R(U,D,DOM,F)$$
- $R$:关系名
- $U$:组成该关系的属性名汇合
- $D$:$U$ 中属性所来自的域
- $DOM$:属性向域的映像汇合
- $F$:属性间数据的依赖关系汇合(此局部属于第六章:关系数据实践的内容)
因为 $D$、$DOM$ 与模式设计关系不大,所以在本章中把关系模式看作一个三元组
$$R<U,F>$$
- 并且仅当 $U$ 上的一个关系 $r$ 满足 $F$ 时,$r$ 称为关系模式 $R<U,F>$ 的一个关系
二:数据依赖
数据依赖:数据依赖是一个关系外部属性与属性之间的一种束缚关系。这种束缚关系是通过属性间值的相等与否体现进去的数据间相干分割。它是事实世界属性间互相分割的形象,是数据外在的性质,是语义的体现。次要有两种类型的数据依赖
- 函数依赖(FD):属性间的这种依赖关系相似于数学中的函数 y =f(x),自变量 x 确定之后,相应的函数值 y 也就惟一地确定了 。比方形容一个学生的关系,能够有学号(
Sno
)、姓名(Sname
)、系名(Sdept
) 等几个属性,因为一个学号只对应一个学生,一个学生只在一个系学习。因此当“学号”值确定之后,学生的姓名及所在系的值也就被惟一地确定了。 记作Sno→Sname
,Sno-> Sdept
- 多值依赖(MVD):前面会说
三:一个例子:不遵循关系数据实践导致的问题
【例】建设一个形容学校教务的数据库,该数据库波及的对象包含学生的学号
(Sno
)、所在系(Sdept
)、系主任姓名(Mname
)、课程号(Cno
) 和问题 (Grade
)。假如用一个繁多的关系模式Student
来示意,则该关系模式的属性汇合为
$$U=({Sno,Sdept,Mname,Cno,Grade})$$
依据事实世界咱们所熟知的,会有以下事实
- 一个系有若干学生,但一个学生只属于一个系
- 一个系只有一名 (正职) 负责人
- 一个学生能够选修多门课程,每门课程有若干学生选修
- 每个学生学习每一门课程有一个问题
这样的语义限度,将会导致属性上的函数依赖
记作:
$$F=(Sno->Sdept,Sdept->Mname,(Sno,Cno)->Grade)$$
下表是关系模式 Student
某一时刻的一个实例
咱们说,这样的关系模式是失败的,因为它存在以下问题
- 数据冗余:比方,每一个系的系主任姓名反复呈现,反复次数与该系所有学生的所有课程问题呈现次数雷同,这将节约大量的存储空间
- 更新异样:比方,某系更换系主任后,必须批改与该系学生无关的每一个元组
- 插入异样:如果一个系刚成立,尚无学生,则无奈把这个系及其系主任的信息存入数据库
- 删除异常:如果某个系的学生全副毕业了,则在删除该系学生信息的同时,这个系及其系主任的信息也丢掉了
而如何解决这些问题,就是下一节:规范化 所要探讨的内容了