文档介绍:数据库系统概论第六章
第1页,本讲稿共48页
第6章 关系数据理论
数据库设计的一个最基本的问题是怎样建立一个好的数据库模式。Codd提出了一套关系数据库设计理论—关系的规范化理论,根据现实世界存在的数据依赖进行关系模式的规范NO,SDEPT,MNAME)
SNO SDEPT, SDEPTMNAME
SNO MNAME
传递
第13页,本讲稿共48页
候选关键字:学号
FD{学号姓名,学号出生日期,学号班号,班号系名,系名宿舍区}
传递函数依赖:
学号班号系名,学号系名
班号系名宿舍区,班号宿舍区
学号系名宿舍区,学号宿舍区
传递
传递
传递
分析关系模式:
STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),学生属于某个班级,班级属于某个系,其中一个系的学生分在一个宿舍区,指出其候选关键字,函数依赖关系和存在的传递函数依赖。
第14页,本讲稿共48页
规范化(续)
2、码
定义:设K为R(U,F)中的属性或属性组合,若KU,则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。
主属性:包含在任何一个候选码中的属性(Prime attribute)。
非主属性:不包含在任何码中的属性称为非主属性或非码属性。
定义:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码。
F
第15页,本讲稿共48页
关系模式S(Sno,Sdept,Sage),单个属性Sno是码,
SC(Sno,Cno,Grade)中,(Sno,Cno)是码
关系模式R(P,W,A),其中:P为演奏者,W为作品, A为听众。
(1)一个演奏者可以演奏多个作品
(2)某一作品可被多个演奏者演奏
(3)听众可以欣赏不同演奏者的不同作品
码为(P,W,A),即全码(All-Key)
举例:
第16页,本讲稿共48页
规范化(续)
3、范式(NF)
关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式,目前主要有六种范式:
5NF 4NF BCNF 3NF 2NF 1NF
一个低一级的范式,通过分解,可以转换为若干个高一级范式的关系模式的集合,这个过程就叫规范化。
第17页,本讲稿共48页
规范化(续)
3、范式(NF)
第一范式
如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。
即当表中每一行的每一列只具有唯一值时,表被认为是符合第一范式(1NF)的。
1NF是对关系的最低要求,不满足1NF的关系是非规范化的关系。
分解方法:非规范化关系转化为满足1NF的规范化关系方法很简单,只要将表分别从横向、纵向展开即可。
第18页,本讲稿共48页
举例:
规范化
第19页,本讲稿共48页
练习
第20页,本讲稿共48页
练习
答案:
第21页,本讲稿共48页
规范化(续)
3、范式(NF)
第二范式
若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。
分解方法:
找出并抹去函数依赖于码的一部分而不是整个码的属性,将它们放到不同的表中。
组合剩余的属性。
规范化过程:消除非主属性对码的部分函数依赖
第22页,本讲稿共48页
关系S(学号,系名,宿舍区,课程号,成绩)
举例:
码(学号,课程号)
函数依赖集:
(学号,课程号)成绩 学号系名 学号宿舍区
(学号,课程号) P系名
(学号,课程号) P宿舍区
解决:
SC(学号,课程号,成绩) S-L(学号,系名,宿舍区)
第23页,本讲稿共48页
将下面的R关系规范化到第二范式
练习:
第24页,本讲稿共48页
答案:
练习:
第25页,本讲稿共48页
规范化(续)
SC(学号,课程号,成绩) S-L(学号,系名,宿舍区)仍然存在问题:
(1)插入异常,若某个系因种种原因,还未有学生,则无法将该系的信息存入数据库。
(2)删除异常,如果某个系的学生全部毕业了,在删除该系学生的信息的同时,该系的信息也丢掉了。
(3)数据冗余度大,每个系的学生都住在同一个地方,关于系的住处的信息却重复出现。
(4)修改复杂,当调整学生住处时,需要更改大量学生的属性。
出现上述问题的原因是因为在关系模式中仍然存在有传递函数依赖关系。
第26页,本讲稿共48页
规范化(续)
3、范式(NF)
第三范式
关系模式R(U,F)中若不存在这样的码X、属性组Y及非主属性Z(Z Y),使得XY,YZ成立,则称R(U