失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > (数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论

(数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论

时间:2024-03-24 22:34:40

相关推荐

(数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论

文章目录

一:概念回顾:关系模式二:数据依赖三:一个例子:不遵循关系数据理论导致的问题

一句话,研究关系数据库理论就是为了设计出合适的关系模式,也即合适、高效的表

一:概念回顾:关系模式

相关文章:(数据库系统概论|王珊)第二章关系数据库-第一节:关系数据结构及其形式化定义

关系模式:关系模式就是对关系的描述,可以表示为

R(U,D,DOM,F)R(U,D,DOM,F)R(U,D,DOM,F)

RRR:关系名UUU:组成该关系的属性名集合DDD:UUU中属性所来自的域DOMDOMDOM:属性向域的映像集合FFF:属性间数据的依赖关系集合(此部分属于第六章:关系数据理论的内容)

由于DDD、DOMDOMDOM与模式设计关系不大,所以在本章中把关系模式看作一个三元组

R<U,F>R<U,F>R<U,F>

并且仅当UUU上的一个关系rrr满足FFF时,rrr称为关系模式R<U,F>R<U,F>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)U=({Sno,Sdept,Mname,Cno,Grade})U=(Sno,Sdept,Mname,Cno,Grade)

根据现实世界我们所熟知的,会有以下事实

一个系有若干学生,但一个学生只属于一个系一个系只有一名(正职)负责人一个学生可以选修多门课程,每门课程有若干学生选修每个学生学习每一门课程有一个成绩

这样的语义限制,将会导致属性上的函数依赖

记作:

F=(Sno−>Sdept,Sdept−>Mname,(Sno,Cno)−>Grade)F=(Sno->Sdept,Sdept->Mname,(Sno,Cno)->Grade)F=(Sno−>Sdept,Sdept−>Mname,(Sno,Cno)−>Grade)

下表是关系模式Student某一时刻的一个实例

我们说,这样的关系模式是失败的,因为它存在以下问题

数据冗余:比如,每一个系的系主任姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同,这将浪费大量的存储空间更新异常:比如,某系更换系主任后,必须修改与该系学生有关的每一个元组插入异常:如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库删除异常:如果某个系的学生全部毕业了,则在删除该系学生信息的同时,这个系及其系主任的信息也丢掉了

而如何解决这些问题,就是下一节:规范化所要讨论的内容了

如果觉得《(数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。