文档介绍:数据库系统概论第六章
第一页,共48页
第6章 关系数据理论
数据库设计的一个最基本的问题是怎样建立一个好的数据库模式。Codd提出了一套关系数据库设计理论—关系的规范化理论,根据现实世界存在的数据依赖进行关系模式的规范化处理,从而得到一个好的数据库设计。
第二页,共48页
问题的提出
1、问题的提出
关系的描述:R(U,D,DOM,F)
关系是一个五元组。R为关系名,U为属性集合,D为属性组U中属性所来自的域,DOM为属性到域的映射集合,F为属性间数据的依赖关系集合。
第三页,共48页
问题的提出(续)
2、数据依赖
属性间数据的依赖关系集合F是描述关系的元组语义,限定关系内部属性与属性间必须满足的约束条件。
数据依赖是通过一个关系中属性间值的依赖与否体现出来的数据间的相互关系。
最重要的数据依赖是函数依赖(FD)和多值依赖(MVD)
第四页,共48页
问题的提出(续)
实例:建立一个数据库,涉及的对象包括:学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mn)、课程名(Cname)、成绩(Grade)。要求如下:
(1)一个系有若干学生,但一个学生只属于一个系;
(2)一个系只有一个系主任;
(3)一个学生可以选多门课程,每门课程有若干学生选修;
(4)每个学生学习每一门课程有个成绩。
建立关系模式:
Student(SNO,SDEPT,MN,CNAME,GRADE)
第五页,共48页
这个关系模式存在4个问题:
(1)数据冗余:一个学生选修多门课程,所在系和系主任就重复存储多次。
(2)更新异常:当更新某些数据时,容易造成存储数据的不一致性。如换系主任了,则必须修改与该系学生有关的每一个元组。
(3)插入异常:若某个学生未学习课程,则他的信息就无法插入。
(4)删除异常:当要删除学生所有成绩时,将所有关于该学生的信息都删除了。
F={SNOSDEPT,SDEPT MN,(SNO,CNAME) G}
第六页,共48页
原因:由存在于模式中的某些数据依赖引起的
解决方法:通过分解关系模式来消除其中不合适的数据依赖
F={SNOSDEPT,SDEPT MN,(SNO,CNAME) G}
S(SNO,SDEPT) SG(SNO,CNAME,Grade)
DEPT(SDEPT,MN)
第七页,共48页
规范化
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
第八页,共48页
1、函数依赖
定义
设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。
几点说明:
(1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
(2)函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念。我们只能根据数据的语义来确定函数依赖。
(3)数据库设计者可以对其做出强制的规定。
规范化(续)
第九页,共48页
1、函数依赖
基本术语和符号
若XY,但YX,则称XY是非平凡的函数依赖,反之称为平凡的函数依赖。
若XY,则X叫做决定因素
若XY,YX,则记作XY
若Y不函数依赖于X,则记作X Y
规范化(续)
第十页,共48页