关系数据库标准化理论.docx
- 文档编号:7588195
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:75.99KB
关系数据库标准化理论.docx
《关系数据库标准化理论.docx》由会员分享,可在线阅读,更多相关《关系数据库标准化理论.docx(21页珍藏版)》请在冰豆网上搜索。
关系数据库标准化理论
第四章关系数据库标准化理论
一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。
关系数据库设计,确实是如何把已给定的彼此关联的一组属性名分组,并把每一组属性名组成关系的问题。
但是,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。
为了使数据库设计合理靠得住,简单有效,长期以来,形成了关系数据库设计的理论——标准化理论。
关系标准化的作用
标准化,确实是用形式更为简练,结构加倍标准的关系模式取代原有关系模式的进程。
若是将两个或两个以上实体的数据寄存在一个内外,就会显现以下三个问题:
Ø数据冗余度大
Ø插入异样
Ø删除异样
所谓数据冗余,确实是相同数据在数据库中多次重复寄存的现象。
数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。
插入异样是指,当在不标准的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有效数据无法插入的情形。
删除异样是指,当不标准的数据表中某条需要删除的元组中包括有一部份有效数据时,就会显现删除困难。
(以P98工资表为例)
解决上述三个问题的方式,确实是将不标准的关系分解成为多个关系,使得每一个关系中只包括一个实体的数据。
(讲例子解)
固然,改良后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是专门大的。
那么,什么样的关系需要分解?
分解关系模式的理论依据又是什么?
分解完后可否完全排除上述三个问题?
回答这些问题需要理论指导。
下面,将加以讨论:
函数依托
4属性间关系
实体间的联系有两类:
一类是实体与实体之间联系;另一类是实体内部各属性间的联系。
数据库建模一章中讨论的是前一类,在那个地址咱们将学习第二类。
和第一类一样,实体内部各属性间的联系也分为1:
1、1:
n和m:
n三类:
例:
职工(职工号,姓名,身份证号码,职称,部门)
1、一对一关系(1:
1)
设X、Y是关系R的两个属性(集)。
若是关于X中的任一具体值,Y中最多有一个值与之对应,反之,关于Y中的任一具体值,X中也最多有一个值与之对应,那么称X、Y两属性间是一对一关系。
如本例职工关系中职工号与身份证号码之间确实是一对一关系。
2、一对多关系(1:
n)
设X、Y是关系R的两个属性(集)。
若是关于X中的任一具体值,Y中能够找到多个值与之对应,而关于Y中的任一具体值,X中最多只有一个值与之对应,那么称属性X对Y是一对多关系。
如职工关系中职工号与职称之间确实是一对多的关系。
3、多对多关系(m:
n)
设X、Y是关系R的两个属性(集)。
若是关于X中的任一具体值,Y中有n个值与之对应,而关于Y中的任一具体值,X中也有m个值与之对应,那么称属性X对Y是一对多(m:
n)关系。
例如,职工关系中,职称与部门之间确实是多对多的关系。
上述属性间的三种关系,事实上是属性值之间彼此依托与彼此制约的反映,因此称之为属性间的数据依托。
数据依托共有三种:
Ø函数依托(FunctionalDependency,FD)
Ø多值依托(MultivaluedDependency,MVD)
Ø连接依托(JoinDependency,JD)
其中最重要的是函数依托和多值依托。
4函数依托
函数依托,是属性之间的一种联系。
在关系R中,X、Y为R的两个属性或属性组,若是关于R的所有关系r都存在:
关于X的每一个具体值,Y都只有一个具体值与之对应,那么称属性Y函数依托于属性X。
或说,属性X函数决定属性Y,记作X→Y。
其中X叫作决定因素,Y叫作被决定因素。
上述概念,可简言之:
若是属性X的值决定属性Y的值,那么属性Y函数依托于属性X。
换一种说法:
若是明白X的值,就能够够取得Y的值,那么能够说X决定Y。
若Y函数不依托于X,记作:
X→Y。
X
Y
若X→Y,Y→X,记作:
前面学习的属性间的三种关系,并非是每种关系中都存在着函数依托。
◆若是X、Y间是1:
1关系,那么存在函数依托X←→Y
◆若是X、Y间是1:
n关系,那么存在函数依托:
X→Y或Y→X(多方为决定因素)
◆若是X、Y间是m:
n关系,那么不存在函数依托。
注意,属性间的函数依托不是指R的某个或某些关系子集知足上述限定条件,而是指R的一切关系子集都要知足概念中的限定。
只要有一个具体的关系r(R的一个关系子集)不知足概念中的条件,就破坏了函数依托,使函数依托不成立。
那个地址的关系子集,指的是R的某一部份元组的集合,例如:
地测学院的学生关系中只包括了地测学院学生的数据,因此它是长安大学学生关系的一个子集。
4.码的概念
前面,咱们对码进行了直观化的概念,下面用函数依托的概念对码作出较为精准的形式化的概念:
设K是关系模式R(U,F)中的属性或属性组,K’是K的任一子集。
假设K→U,而不存在K'→U,那么K为R的候选码(CandidateKey)
Ø假设候选码多于一个,那么选其中的一个为主码(PrimaryKey);
Ø包括在任一候选码中的属性,叫做主属性(PrimaryAttribute);
Ø不包括在任何码中的属性称为非主属性(NonprimeAttribute)或非码属性(NonkeyAttribute)
Ø关系模式中,最简单的情形是单个属性是码,称为单码(SingleKey);最极端的情形是整个属性组是码,称为全码(All-Key)。
前面已多次碰到单码的情形,下面是一个全码的例子:
签约(演员名,制片公司,电影名)
外码:
设有两个关系R和S,X是R的属性或属性组,而且X不是R的码,但X是S的码(或与S的码意义相同),那么称X是R的外部码(ForeignKey),简称外码或外键。
如:
职工(职工号,姓名,性别,职称,部门号)
部门(部门号,部门名,,负责人)
其中职工关系中的“部门号”确实是职工关系的一个外码。
在此需要注意,在概念中说X不是R的码,并非是说X不是R的主属性,X不是码,但能够是码的组成属性,或是任一候选码中的一个主属性。
如:
学生(学生号,姓名,性别,年龄…)
课程(课程号,课程名,任课教师…)
选课(学生号,课程号,成绩)
在选课关系中,(学生号,课程号)是该关系的码,学生号、课程号又别离是组成主码的属性(但单独不是码),它们别离是学生关系和课程关系的主码,因此是选课关系的两个外码。
关系间的联系,能够通过同时存在于两个或多个关系中的主码和外码的取值来成立。
如要查询某个职工所在部门的情形,只需查询部门表中的部门号与该职工部门号相同的记录即可。
因此,主码和外码提供了一个表示关系间联系的途径。
4函数依托和码的唯一性
由上述码的形式化概念,咱们能够说:
码是由一个或多个属性组成的,可唯一标识元组的最小属性组。
码在关系中老是唯一的,即一个码函数唯一地决定一行。
若是码的值重复,那么整个元组都会重复。
不然,违背了实体完整性规那么。
而元组的重复那么表示存在两个完全相同的实体,这显然是不可能的,因此码是不许诺重复取值的。
因此,只有当某个属性或属性组能够函数决定关系中的每一个其它的属性,且该属性组的任何一个真子集都做不到这一点时,该属性或属性组才是该关系的码。
函数依托是一个与数据有关的事物规那么的概念。
若是属性B函数依托于属性A,那么假设明白了A的值,那么完全能够找到B的值。
这并非是能够由A的值计算出B的值,而是逻辑上只能存在一个B的值。
关系模式的标准化
一、非标准化的关系
当一个表中存在还能够再分的数据项时,那个表确实是非标准化的表。
非标准化表存在两种情形:
Ø表中具有组合数据项(P102表6-4)
Ø表中具有多值数据项(P103表6-5)
例:
职工号
姓名
工资
基本工资
职务工资
工龄工资
1002
张三
1000
800
200
职工号
姓名
职称
系名
系办地址
学历
毕业年份
001
张三
教授
计算机
1305
大学
研究生
1963
1982
那么什么是标准化关系呢?
当一个关系中的所有分量都是不可再分的数据项时,该关系是标准化的。
即当表中不存在组合数据项和多值数据项,只存在不可分的数据项时,那个表是标准化的。
二维表按其标准化程度从低到高可分为5级范式(NormalForm),别离称为1NF、2NF、3NF(BCNF)、4NF、5NF。
标准化程度较高者必是较低者的子集,即:
1NF
2NF
3NF
BCNF
4NF
5NF
二、第一范式(1NF)
概念1:
若是关系模式R中不包括多值属性,那么R知足第一范式(FirstNormalForm),记作:
R∈1NF
1NF是对关系的最低要求,不知足1NF的关系是非标准化的关系。
非标准化关系转化为标准化关系1NF方式很简单,只要上表别离从横向、纵向展开即可。
如下表:
职工号
姓名
基本工资
职务工资
工龄工资
1002
张三
1000
800
200
1005
李四
1200
900
150
职工号
姓名
职称
系名
系办地址
学历
毕业年份
1002
张三
教授
计算机
1305
大学
1963
1002
张三
教授
计算机
1305
研究生
1982
1005
李四
讲师
信电
2206
大学
1989
上表尽管符合1NF,但仍是有问题的关系,表中存在大量的数据冗余和潜在的数据更新异样。
缘故是(职工号,学历)是右表的码,但姓名、职称、系名、系办地址却与学历无关,只与码的一部份有关。
因此上表还需进一步地标准化。
三、第二范式(2NF)
概念1:
设X、Y是关系R的两个不同的属性或属性组,且X→Y。
若是存在X的某一个真子集X’,使X’→Y成立,那么称Y部份函数依托于X,记作:
XP→Y(Partial)。
反之,那么称Y完全函数依托于X,记作:
XF→Y(Full)
概念2:
若是一个关系R∈1NF,且它的所有非主属性都完全函数依托于R的任一候选码,那么R属于第二范式,记作:
R∈2NF。
说明:
上述概念中所谓的候选码也包括主码,因为码第一应是候选码,才能够被指定为码。
例如关系模式:
职工(职工号,姓名,职称,项目号,项目名称,项目角色)中
(职工号,项目号)是该关系的码,而职工号→姓名、职工号→职称、项目号→项目名称…
因此(职工号,项目号)P→职称、(职工号,项目号)P→项目名称
故上述职工关系不符合第二范式要求。
它存在三个问题:
插入异样、删除异样和修改异样。
其中修改异样是如此的,当职工关系中项目名称发生转变时,由于参与该项目的人员很多,每人一条记录,要修改项目信息,就得对每一个参加该项目的人员信息进行修改,加大了工作量,还有可能发生遗漏,存在着数据一致性被破坏的可能。
可把上述职工关系分解成如下三个关系:
职工(职工号,姓名,职称)
参与项目(职工号,项目号,项目角色)
项目(项目号,项目名称)
上述三个关系都符合概念2的要求,因此都符合2NF
推论:
若是关系模式R∈1NF,且它的每一个候选码都是单码,那么R∈2NF
符合第二范式的关系模式仍可能存在数据冗余、更新异样等问题。
如关系
职工信息(职工号,姓名,职称,系名,系办地址)
尽管也符合2NF,但当某个系中有100名职工时,元组中的系办地址就要重复100次,存在着较高的数据冗余。
缘故是关系中,系办地址不是直接函数依托于职工号,而是因为职工号函数决定系名,而系名函数决定系办地址,才使得系办地址函数依托于职工号,这种依托是一个传递依托的进程。
因此,上述职工信息的关系模式还需要进一步的标准化。
四、第三范式(3NF)
概念1:
在关系R中,X、Y、Z是R的三个不同的属性或属性组,若是X→Y,Y→Z,但Y→X,且Y不是X的子集,那么称Z传递函数依托于X。
概念2:
若是关系模式R∈2NF,且它的每一个非主属性都不传递依托于任何候选码,那么称R是第三范式,记作:
R∈3NF
推论1:
若是关系模式R∈1NF,且它的每一个非主属性既不部份依托、也不传递依托于任何候选码,那么R∈3NF
推论2:
不存非主属性的关系模式必然为3NF
五、改良的3NF——BCNF(Boyee-CoddNormalForm)
概念:
设关系模式R(U,F)∈1NF,假设F的任一函数依托X→Y(Y
X)中X都包括了R的一个码,那么称R∈BCNF。
换言之,在关系模式R中,若是每一个函数依托的决定因素都包括码,那么R∈BCNF
推论:
若是R∈BCNF,那么:
ØR中所有非主属性对每一个码都是完全函数依托;
ØR中所有主属性对每一个不包括它的码,都是完全函数依托;
ØR中没有任何属性完全函数依托于非码的任何一组属性。
定理:
若是R∈BCNF,那么R∈3NF必然成立。
证明:
(结合传递依托的概念,用反证法)
注意:
当R∈3NF时,R未必属于BCNF。
因为3NF比BCNF放宽了一个限制,它许诺决定因素不包括码。
例如:
通信(城市名,街道名,邮政编码)中:
F={(城市名,街道名)→邮政编码,邮政编码→城市名}
非主属性邮政编码完全函数依托于码,且无传递依托,故属于3NF,但邮政编码也是一个决定因素,而且它没有包括码,因此该关系不属于BCNF。
又如:
Teaching(Student,Teacher,Course)简记为Teaching(S,T,C)
规定:
一个教师只能教一门课,每门课程可由多个教师教学;学生一旦选定某门课程,教师就相应地固定。
F={T→C,(S,C)→T,(S,T)→C}
该关系的候选码是(S,C)和(S,T),因此,三个属性都是主属性,由于不存在非主属性,该关系必然是3NF。
但由于决定因素T没包括码,故它不是BCNF。
关系模式Teaching仍然存在着数据冗余问题,因为存在着主属性对码的部份函数依托问题。
确切地表示:
F={T→C,(S,C)P→T,(S,T)P→C}
因此Teaching关系能够分解为以下两个BCNF关系模式:
Teacher(Teacher,Course)Student(Student,Teacher)
3NF的“不完全”性,表此刻可能存在主属性对码的部份依托和传递依托。
一个关系模式若是达到了BCNF,那么,在函数依托范围内,它就已经实现了完全的分离,排除数据冗余、插入和删除异样。
多值依托和第四范式
一、多值依托(MultivaluedDependency)
课程C
教员T
参考书B
物理
李勇
普通物理学
物理
李勇
光学原理
物理
李勇
物理习题集
物理
王军
普通物理学
物理
王军
光学原理
物理
王军
物理习题集
数学
李勇
数学分析
数学
李勇
微分方程
数学
李勇
高等代数
数学
张平
数学分析
数学
张平
微分方程
数学
张平
高等代数
计算数学
张平
数学分析
计算数学
张平
计算数学
计算数学
周峰
数学分析
计算数学
周峰
计算数学
课程C
教员T
参考书B
物理
李勇
王军
普通物理学
光学原理
物理习题集
数学
李勇
张平
数学分析
微分方程
高等代数
计算数学
张平
周峰
数学分析
计算数学
例:
学校中某一门课程由多个教员教学,他们利用相同的一套参考书,每一个教员能够教学多门课程,每种参考书能够供多门课程利用。
以下是用一个非标准化的表来表示教员T,课程C和参考书B之间的关系。
把上表变换成一张标准化的二维表Teaching,如右表
关系模式Teaching(C,T,B)的码是(C,T,B),即All-Key。
因此Teaching∈BCNF。
依照上述语义规定,当某门课程增加一名讲课教员时,就要向Teaching表中增加与相应参考书等数量的元组。
一样,某门课程要去掉一本参考书时,那么必需删除相应数量的元组。
对数据的增、删、改很不方便,数据的冗余也十分明显。
若是认真考察这种关系模式,会发觉它具有一种称之为多值依托的数据依托关系。
概念:
设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,且Z=U-X-Y。
若是对R(U)的任一关系r,给定一对(x,z)值,都有一组y值与之对应,这组y值仅仅决定于x值而与z值无关。
那么称Y多值依托于X,或X多值决定Y,记作:
X→→Y。
――
例如,在关系模式Teaching中,关于一个(C,B)值(物理,一般物理学),有一组T值{李勇,王军},而这组值仅仅决定于课程C上的值(物理)。
即关于另一个(物理,光学原理),它对应的T值仍然是{李勇,王军},因此T的值与B的值无关,仅决定于C的值,即C→→T。
多值依托的另一个等价的形式化概念为:
设关系模式R(U),X、Y、Z是U的子集,Z=U-X-Y,r是R的任意一个关系,t1、t2是r的任意两个元组。
若是t1[X]=t2[X],并在r中存在两个元组t3、t4,使得:
t3[X]=t4[X]=t1[X]
t3[Y]=t1[Y],t3[Z]=t2[Z],
t4[Y]=t2[Y],t4[Z]=t1[Z]
成立,那么X→→Y。
换句话说:
若是X→→Y在R(U)中成立,那么只要在R的任一关系r中存在两个元组t1、t2在X属性上的值相等,那么互换这两个元组在Y(或Z)上的值后取得的两个新元组t3、t4也必是关系r中的元组。
概念中若是Z=Ф(空集),那么称X→→Y为一般的多值依托,不然为非一般的多值依托。
多值依托具有如下性质:
1.对称性:
假设X→→Y,那么X→→Z,其中Z=U-X-Y
2.传递性:
假设X→→Y,Y→→Z,那么X→→Z-Y
3.若X→→Y,X→→Z,那么X→→YZ
4.若X→→Y,X→→Z,那么X→→Y∩Z
5.若X→→Y,X→→Z,那么X→→Y-Z,X→→Z-Y
多值依托与函数依托相较,具有下面两个大体区别:
(1)多值依托的有效性与属性集的范围有关
若X→→Y在U上成立,那么在V(XY
V
U)上必然成立;反之那么不然,即X→→Y在V(V
U)上成立,在U上并非必然成立。
这是因为多值依托的概念中不仅涉及属性组X、Y,而且涉及U中的其余属性Z(Z=U-X-Y)。
一样地说,在R(U)上假设有X→→Y在V(V
U)上成立,那么称X→→Y为R(U)的嵌入型多值依托。
而在关系模式R(U)中函数依托X→Y的有效性,仅决定于X和Y这两个属性集的值。
只要在R(U)的任何一个关系r中,元组在X和Y上的值使得X→Y成立,那么X→Y在任何属性集V(XY
V
U)上也成立。
(2)假设函数依托X→Y在R(U)上成立,那么关于任何Y’
Y均有X→Y’成立。
而多值依托X→→Y假设在R(U)上成立,却不能断言关于任何Y’
Y有X→→Y’成立。
多值依托的约束规那么:
在具有多值依托的关系中,若是随意删去一个元组,就会破坏其对称性,那么,为了维持多值依托关系中的“多值依托”性,就必需删去另外的相关元组以维持其对称性。
这确实是多值依托的约束规那么。
目前的RDBMS尚不具有保护这种约束的能力,需要程序员在编程中实现。
函数依托可看成是多值依托的特例,即函数依托必然是多值依托。
而多值依托那么不必然就有函数依托。
二、第四范式(4NF)
概念:
若是关系模式R∈1NF,关于R的每一个非一般的多值依托X→→Y(Y
X),X含有码,那么称R是第四范式,即R∈4NF
课程C
教员T
参考书B
物理
李勇
普通物理学
物理
李勇
光学原理
物理
李勇
物理习题集
物理
王军
普通物理学
物理
王军
光学原理
物理
王军
物理习题集
数学
李勇
数学分析
数学
李勇
微分方程
数学
李勇
高等代数
数学
张平
数学分析
数学
张平
微分方程
数学
张平
高等代数
计算数学
张平
数学分析
计算数学
张平
计算数学
计算数学
周峰
数学分析
计算数学
周峰
计算数学
Teaching关系
关系模式R∈4NF时,R中所有的非一般多值依托事实上确实是函数依托。
因为每一个决定因素中都含有码,因此R必然属于BCNF。
4NF事实上确实是限制关系模式的属性间不许诺有非一般,而且非函数依托的多值依托存在。
反过来讲,4NF所许诺的非一般多值依托事实上是函数依托。
例题中的Teaching关系属于BCNF,但它不属于4NF。
因为它的码是(C,T,B),关系中存在非一般多值依托C→→T,C→→B,但C不包括码,而只是码的一部份。
课程C
参考书B
物理
普通物理学
物理
光学原理
物理
物理习题集
数学
数学分析
数学
微分方程
数学
高等代数
计算数学
数学分析
计算数学
计算数学
CB关系
课程C
教员T
物理
李勇
物理
王军
数学
李勇
数学
张平
计算数学
张平
计算数学
周峰
CT关系
要使Teaching关系符合4NF,必需将其分解为CT(C,T)和CB(C,B)两个关系模式。
如右表:
从表中显而易见,符合BCNF的关系Teaching仍然存在着数据冗余,而分解后的关系CT和CB中只有一般多值依托,因此符合4NF,它们已经排除数据冗余。
能够说:
BCNF是在只有函数依托的关系模式中,标准化程度最高的范式,而4NF是在有多值依托的关系模式中,标准化程度最高的范式。
若是关系模式中存在连接依托,即便它符合4NF,仍有可能碰到数据冗余及更新异样等问题。
因此关于达到4NF的关系模式,还需要排除其中可能存在的连接依托,才能够进一步达到5NF的关系模式。
关于连接依托和5NF的内容,已超出了本课程教学大纲的要求,在此再也不介绍。
关系的标准化程度
在关系数据库中,对关系模式的大体要求是知足第一范式。
符合1NF的关系模式确实是合法的,许诺的。
可是人们发觉有些关系存在如此那样的问题,就提出了关系标准化的要求。
Ø关系标准化的目的,是解决关系模式中存在的数据冗余、插入和删除异样、更新繁琐等问题。
Ø关系标准化的大体思想是,排除数据依托中不适合的部份,使各关系模式达到某种程度的分离,使一个关系只描述一个概念、一个实体或实体间的一种联。
因此标准化的实质确实是概念单一化的进程。
Ø关系标准化的进程是通过对关系模式的分解来实现的。
把低一级的关系模式分解为假设干高一级的关系模式。
Ø标准化程度越高,分解就越细,所得关系的数据冗余就越小,更新异样也会越少。
Ø可是,标准化在减少关系的数据冗余和排除更新异样的同时,也加大了系统对数据检索的开销,降低了数据检索的效率。
因为关系分得越细,数据检索时所涉及的关系个数就越多,系统只有对所有这些关系的进行自然连接,才能获取所需的全数信息。
而连接操作所需的系统资源和开销是比较大的。
因此不能说,标准化程度越高的关系模式优良。
Ø标准化应知足的大体原那么是:
由低到高,慢慢标准,衡量利弊,适可而止。
通常以知足第三范式为大体要求。
Ø
关系模式的分解是通过投影运算实现的。
而这种投影分解的方案不是唯一的。
因此投影的进程还应知足以下三个条件:
⏹分解是无损连接分解,分解后所得各关系,通过连接要能恢复出分解前的数据。
不能少也不能多。
⏹分解所得的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 标准化 理论
![提示](https://static.bdocx.com/images/bang_tan.gif)