关系数据库规范化理论

关系数据库规范化理论
关系数据库规范化理论

关系数据库规范化理论

————————————————————————————————作者: ————————————————————————————————日期:

第四章关系数据库规范化理论

一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。

为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。

4.1关系规范化的作用

规范化,就是用形式更为简洁,结构更加规范的关系模式取代原有关系模式的过程。

如果将两个或两个以上实体的数据存放在一个表里,就会出现下列三个问题:

?数据冗余度大

?插入异常

?删除异常

所谓数据冗余,就是相同数据在数据库中多次重复存放的现象。数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。

插入异常是指,当在不规范的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。

删除异常是指,当不规范的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。

(以P98工资表为例)

解决上述三个问题的方法,就是将不规范的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。

(讲例子解)

当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。

那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个问题?回答这些问题需要理论指导。下面,将加以讨论:

4.2 函数依赖

4.2.1属性间关系

实体间的联系有两类:一类是实体与实体之间联系;另一类是实体内部各属性间的联系。数据库建模一章中讨论的是前一类,在这里我们将学习第二类。

和第一类一样,实体内部各属性间的联系也分为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)关系。

例如,职工关系中,职称与部门之间就是多对多的关系。

上述属性间的三种关系,实际上是属性值之间相互依赖与相互制约的反映,因而称之为属性间的数据依赖。

数据依赖共有三种:

?函数依赖(Functional Dependency,FD)

?多值依赖(Multivalued Dependency,MVD)

?连接依赖(Join Dependency,JD)

其中最重要的是函数依赖和多值依赖。

4.2.2 函数依赖

函数依赖,是属性之间的一种联系。在关系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.2.3码的定义

前面,我们对码进行了直观化的定义,下面用函数依赖的概念对码作出较为精确的形式化的定义:

设K是关系模式R(U,F)中的属性或属性组,K’是K的任一子集。若K→U,而不存在K'→U,则K为R的候选码(Candidate Key)

?若候选码多于一个,则选其中的一个为主码(PrimaryKey);

?包含在任一候选码中的属性,叫做主属性(PrimaryAttribute);

?不包含在任何码中的属性称为非主属性(Nonprime Attribute)或非码属性(No nkey Attribute)

?关系模式中,最简单的情况是单个属性是码,称为单码(Single Key);最极端的情况是整个属性组是码,称为全码(All-Key)。

前面已多次遇到单码的情况,下面是一个全码的例子:

签约(演员名,制片公司,电影名)

外码:设有两个关系R和S,X是R的属性或属性组,并且X不是R的码,但X是S的码(或与S的码意义相同),则称X是R的外部码(Foreign Key),简称外码或外键。

如:职工(职工号,姓名,性别,职称,部门号)

部门(部门号,部门名,电话,负责人)

其中职工关系中的“部门号”就是职工关系的一个外码。

在此需要注意,在定义中说X不是R的码,并不是说X不是R的主属性,X不是码,但可以是码的组成属性,或者是任一候选码中的一个主属性。

如:学生(学生号,姓名,性别,年龄…)

课程(课程号,课程名,任课老师…)

选课(学生号,课程号,成绩)

在选课关系中,(学生号,课程号)是该关系的码,学生号、课程号又分别是组成主码的属性(但单独不是码),它们分别是学生关系和课程关系的主码,所以是选课关系的两个外码。

关系间的联系,可以通过同时存在于两个或多个关系中的主码和外码的取值来建立。如要查询某个职工所在部门的情况,只需查询部门表中的部门号与该职工部门号相同的记录即可。所以,主码和外码提供了一个表示关系间联系的途径。

4.2.4 函数依赖和码的唯一性

由上述码的形式化定义,我们可以说:码是由一个或多个属性组成的,可唯一标识元组

的最小属性组。

码在关系中总是唯一的,即一个码函数唯一地决定一行。如果码的值重复,则整个元组都会重复。否则,违反了实体完整性规则。而元组的重复则表示存在两个完全相同的实体,这显然是不可能的,所以码是不允许重复取值的。

所以,只有当某个属性或属性组能够函数决定关系中的每一个其它的属性,且该属性组的任何一个真子集都做不到这一点时,该属性或属性组才是该关系的码。

函数依赖是一个与数据有关的事物规则的概念。如果属性B 函数依赖于属性A,那么若知道了A的值,则完全可以找到B 的值。这并非是可以由A 的值计算出B 的值,而是逻辑上只能存在一个B 的值。

4.3 关系模式的规范化

一、非规范化的关系

当一个表中存在还可以再分的数据项时,这个表就是非规范化的表。非规范化表存在两种情况:

? 表中具有组合数据项(P102表6-4) ? 表中具有多值数据项(P103表6-5) 例:

那么什么是规范化关系呢?

当一个关系中的所有分量都是不可再分的数据项时,该关系是规范化的。即当表中不存在组合数据项和多值数据项,只存在不可分的数据项时,这个表是规范化的。

二维表按其规范化程度从低到高可分为5级范式(No rm al For m),分别称为1NF 、2NF 、3NF(BCNF)、4NF、5NF 。规范化程度较高者必是较低者的子集,即:

职工号

姓名

工资 基本工资

职务工资

工龄工资

职工号 姓名 职称 系名 系办地址 学历 毕业年份 001 张三 教授 计算机 1305

大学

研究生

1963 1982

1NF?2NF ?3NF ?BCNF?4NF ?5NF

二、第一范式(1N F)

定义1:如果关系模式R 中不包含多值属性,则R满足第一范式(First Normal For m),记作:

R ∈1NF

1NF 是对关系的最低要求,不满足1NF 的关系是非规范化的关系。

非规范化关系转化为规范化关系1N F方法很简单,只要上表分别从横向、纵向展开即可。如下表:

上表虽然符合1NF,但仍是有问题的关系,表中存在大量的数据冗余和潜在的数据更新

异常。原因是(职工号,学历)是右表的码,但姓名、职称、系名、系办地址却与学历无关,只与码的一部分有关。所以上表还需进一步地规范化。

三、第二范式(2NF )

定义1:设X 、Y 是关系R 的两个不同的属性或属性组,且X → Y。如果存在X的某一个真子集X’,使X’ → Y 成立,则称Y 部分函数依赖于X ,记作:X P → Y (P artial )。反之,则称Y 完全函数依赖于X ,记作:X F → Y (Full )

定义2:如果一个关系 R ∈1N F,且它的所有非主属性都完全函数依赖于R 的任一候选码,则R属于第二范式,记作:R∈2NF 。

说明:上述定义中所谓的候选码也包括主码,因为码首先应是候选码,才可以被指定为码。

例如关系模式:

职工(职工号,姓名,职称,项目号,项目名称,项目角色)中

(职工号,项目号)是该关系的码,而职工号→姓名、职工号→职称、项目号→项目名称…

所以(职工号,项目号)P → 职称、(职工号,项目号)P → 项目名称

故上述职工关系不符合第二范式要求。它存在三个问题:插入异常、删除异常和修改异常。

其中修改异常是这样的,当职工关系中项目名称发生变化时,由于参与该项目的人员很多,每人一条记录,要修改项目信息,就得对每一个参加该项目的人员信息进行修改,加大了工

职工号

姓名 基本工资 职务工资 工龄工资 1002 张三 1000 800 200 1005 李四 1200 900 150

职工号 姓名 职称 系名 系办地址 学历 毕业年份 1002 张三 教授 计算机 1305 大学 1963 1002 张三 教授 计算机 1305 研究生 1982 1005

李四

讲师

信电

2206

大学

1989

作量,还有可能发生遗漏,存在着数据一致性被破坏的可能。

可把上述职工关系分解成如下三个关系:

职工(职工号,姓名,职称)

参与项目(职工号,项目号,项目角色)

项目(项目号,项目名称)

上述三个关系都符合定义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-CoddNormal Form)

定义:设关系模式R(U,F)∈1NF,若F的任一函数依赖X→Y(Y X)中X都包含了R 的一个码,则称R∈BCNF。

换言之,在关系模式R中,如果每一个函数依赖的决定因素都包含码,则R∈BCNF 推论:如果R∈BCNF,则:

?R中所有非主属性对每一个码都是完全函数依赖;

?R中所有主属性对每一个不包含它的码,都是完全函数依赖;

?R中没有任何属性完全函数依赖于非码的任何一组属性。

定理:如果R ∈BC NF,则R ∈3NF 一定成立。 证明:(结合传递依赖的定义,用反证法)

注意:当R∈3NF 时,R 未必属于BCNF 。因为3NF 比BC NF 放宽了一个限制,它允许决定因素不包含码。例如:

通讯(城市名,街道名,邮政编码)中:

F={(城市名,街道名)→邮政编码,邮政编码→城市名}

非主属性邮政编码完全函数依赖于码,且无传递依赖,故属于3NF,但邮政编码也是一个决定因素,而且它没有包含码,所以该关系不属于BCNF 。

又如:

Tea ching(St udent ,T eacher ,C our se) 简记为Teach ing (S,T,C) 规定:一个教师只能教一门课,每门课程可由多个教师讲授;学生一旦选定某门课程,教师就相应地固定。

F ={T →C ,(S ,C)→T ,(S,T ) →C}

该关系的候选码是(S,C )和(S,T),因此,三个属性都是主属性,由于不存在非主属性,该关系一定是3NF 。但由于决定因素T 没包含码,故它不是B CNF 。

关系模式T eac hing 仍然存在着数据冗余问题,因为存在着主属性对码的部分函数依赖问题。

确切地表示:F={T →C ,(S ,C )P →T ,(S ,T)

P →C}

所以Teachin g关系可以分解为以下两个BCNF关系模式:

Teache r(Te ac her ,Cour se) Stud ent(Stud ent,T eac her) 3NF 的“不彻底”性,表现在可能存在主属性对码的部分依赖和传递依赖。

一个关系模式如果达到了BC NF,那么,在函数依赖范围内,它就已经实现了彻底的分离,消除了数据冗余、插入和删除异常。

4.4 多值依赖和第四范式

一、多值依赖(Multivalu ed Dependen cy )

例:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书,每个教员可以讲

授多门课程,每种参考书可以供多门课程使用。下列是用一个非规范化的表来表示教员T ,课程C 和参考书B之间的关系。

把上表变换成一张规范化的二维表Teach ing ,如右表

关系模式Teaching(C,T,B)的码是

课程C 教员T 参考书B 物理 李勇 王军 普通物理学 光学原理 物理习题集 数学 李勇 张平 数学分析 微分方程 高等代数 计算数学 张平 周峰 数学分析 计算数学 课程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’ 成立。

多值依赖的约束规则:在具有多值依赖的关系中,如果随便删去一个元组,就会破坏其对称性,那么,为了保持多值依赖关系中的“多值依赖”性,就必须删去另外的相关元组以维持其对称性。这就是多值依赖的约束规则。目前的RD BMS 尚不具有维护这种约束的能力,需要程序员在编程中实现。

函数依赖可看成是多值依赖的特例,即函数依赖一定是多值依赖。而多值依赖则不一定就有函数依赖。

二、第四范式(4NF)

定义:如果关系模式R∈1NF ,对于R 的每个非平凡的多值依赖X →→Y (Y?X ),X 含有码,则称R 是第四范式,即R ∈4N F

关系模式R ∈4NF时,R中所有的非平凡多值依赖实际上就是函数依赖。因为每

一个决定因素中都含有码,所以R一定属于BCN F。

4NF 实际上就是限制关系模式的属性间不允许有非平凡,而且非函数依赖的多值依赖存在。反过来说,4N F所允许的非平凡多值依赖实际上是函数依赖。

例题中的Teac hin g关系属于BCN F,但它不属于4NF 。因为它的码是(C,T,B ),关系中存在非平凡多值依赖C →→T ,C →→B,但C不包含码,而只是码的一部分。

要使T ea ch ing 关系符合4NF,必

须将其分解为CT(C ,T)和C B(C,B)两个关系模式。如右表:

从表中显而易见,符合BC NF的关系T eaching 仍然存在着数据冗余,而分解后的关系CT 和CB 中只有平凡多值依赖,所以符合4NF,它们已经消除了数据冗余。可以说:B C

课程C 教员T 参考书B 物理

李勇 普通物理学 物理 李勇 光学原理 物理 李勇 物理习题集 物理 王军 普通物理学 物理 王军 光学原理 物理 王军 物理习题集 数学 李勇 数学分析 数学 李勇 微分方程 数学 李勇 高等代数 数学 张平 数学分析 数学 张平 微分方程 数学 张平 高等代数 计算数学 张平 数学分析 计算数学 张平 计算数学 计算数学 周峰 数学分析 计算数学

周峰

计算数学

Teaching 关系

课程C 参考书B 物理 普通物理学 物理 光学原理 物理 物理习题集 数学 数学分析 数学 微分方程 数学 高等代数 计算数学 数学分析 计算数学

计算数学

CB 关系

课程C 教员T 物理

李勇 物理 王军 数学 李勇 数学 张平 计算数学 张平 计算数学

周峰

CT 关系

NF 是在只有函数依赖的关系模式中,规范化程度最高的范式,而4N F是在有多值依赖的关系模式中,规范化程度最高的范式。

如果关系模式中存在连接依赖,即便它符合4NF ,仍有可能遇到数据冗余及更新异常等问题。所以对于达到4NF 的关系模式,还需要消除其中可能存在的连接依赖,才可以进一步达到5NF 的关系模式。

关于连接依赖和5NF的内容,已超出了本课程教学大纲的要求,在此不再介绍。

4.5 关系的规范化程度

在关系数据库中,对关系模式的基本要求是满足第一范式。符合1N F的关系模式就是合法的,允许的。但是人们发现有些关系存在这样那样的问题,就提出了关系规范化的要求。

? 关系规范化的目的,是解决关系模式中存在的数据冗余、插入和删除异常、更新繁

琐等问题。

? 关系规范化的基本思想是,消除数据依赖中不合适的部分,使各关系模式达到某种

程度的分离,使一个关系只描述一个概念、一个实体或实体间的一种联。所以规范化的实质就是概念单一化的过程。

? 关系规范化的过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为

若干高一级的关系模式。

? 规范化程度越高,分解就越细,所得关系的数据冗余就越小,更新异常也会越少。 ? 但是,规范化在减少关系的数据冗余和消除更新异常的同时,也加大了系统对数据检

索的开销,降低了数据检索的效率。因为关系分得越细,数据检索时所涉及的关系个数就越多,系统只有对所有这些关系的进行自然连接,才能获取所需的全部信息。而连接操作所需的系统资源和开销是比较大的。所以不能说,规范化程度越高的关系模式优良。

? 规范化应满足的基本原则是:由低到高,逐步规范,权衡利弊,适可而止。通常以

满足第三范式为基本要求。

? 关系模式的分解是通过投影运算实现的。而这种投影分解的方案不是唯一的。所以

投影的过程还应满足下列三个条件:

? 分解是无损连接分

解,分解后所得各关系,通过连接要能恢复出分解前的数据。不能少也不

1NF

2NF

3NF

消除非主属性对码的部分函数依赖

消除非主属性对码的传递函数依赖

消除主属性对码的部分和传递函数依赖

BCNF

4NF

消除非平凡且非函数依赖的多值依赖

消除非主属性对码的部分函数依赖

能多。

? 分解所得的所有关系都是高一级的范式的关系 ? 分解所得关系的个数要最少。

4.6 函数依赖公理与模式分解

在规范化理论中,模式分解以及分解是否等价是有一定算法的。函数依赖公理系统是模式分解算法的基础,它可以从已知的函数依赖推导出其它的函数依赖。

下面首先讨论函数依赖的一套推理规则,这套规则是由Armstrong 于1974年提出来的,因此常被称为A rm strong 公理系统。

一、函数依赖公理 A rms trong 公理系统:

设有关系模式R(U,F ),X ,Y ,Z ,W ?U ,则对R(U,F )有:

? A 1(自反律):若Y ?X ,则X →Y;(由自反律所得到的函数依赖均是平凡的函数依赖) ? A2(增广律):若X→Y ,则XZ →YZ (YZ=Y∪Z ) ? A3(传递律):若X→Y ,Y →Z,则X →Z 。 这些规则是保真的,它们不会产生错误的函数依赖。

引理1:Armstro ng 公理是正确的。即如果函数依赖F 成立,则由F 根据Arm st ron g公理所推导的函数依赖总是成立的。(并且被称为F所蕴含的函数依赖)

证明:设t1,t 2是关系R 中的任意两个元组。 A 1:

A2:

A3:

定理1:A rmst rong 公理是正确的、完备的。 由Ar mstrong 公理系统,可以得到以下三个推论:

? 合成规则:若X →Y ,X →Z,则X →YZ ;

假设t 1[X]=t 2[X]

已知Y ?X

t 1[Y]=t 2[Y] X →Y 成立

若 t 1[XZ]=t 2[XZ]

t 1[X]=t 2[X] t 1[Z]=t 2[Z]

已知X →Y

t 1[Y]=t 2[Y]

t 1[YZ]=t 2[YZ]

XZ →YZ 成立 已知:X →Y

已知:Y →Z

若 t 1[X]=t 2[X]

t 1[Y]=t 2[Y]

t 1[Z]=t 2[Z]

X →Z 成立

?分解规则:若X→YZ,则X→Y,X→Z;

?伪传递规则:若X→Y,YW→Z,则XW→Z。

根据合成规则和分解规则很容易得到这样的重要事实。称之为引理2:

引理2:X→A1A2…Ak成立的充分必要条件是X→A i成立(i=1,2,…,k)。

例:证明:对R(A,B,C,G,H,I),F={A→B,A→C,CG→H,CG→I,B→H},存在:A→H,CG→HI,AG→I

求证:(1)由于A→B,B→H,依传递律,可得A→H

(2)由于CG→H,CG→I,依合成规则,可得CG→HI

(3)由于A→C,CG→I,依伪传递律,可得AG→I。也可另证为:

由A→C,依增广律,得AG→CG,又CG→I,依传递律,得:AG→I

二、闭包及其计算

定义:R(U,F),由Armstrong公理从F推出的函数依赖X→A i中Ai的属性集合,为X的属性闭包,记作:X+,读作X关于函数依赖集F的闭包。

也有的书上这样表示:X F+={A|X→A能由F根据Armstrong公理导出}

由引理2可以推出引理3:

设R(U,F),X,Y?U,则从F推导出X→Y的充要条件是Y?X+

如果要判断X→Y是否能由F根据Armstrong公理导出,只需求出X+,并判断Y是否为X+的子集即可。

那么,只要求出X+,一切问题就都解决了。书上有一个求X+的算法。其基本思想是: 首先明确X+的含义是X所能函数决定的所有被决定因素的集合。然后,只要能证明某个属性或属性组函数依赖于X,便能确定它属于X+,因为X→X是无争的事实,所以X应属于X+,然后在F中寻找其决定因素包含于X的函数依赖,若存在,则它的被决定因素也应属于X+,(若Y→Z,则WY→WZ,从而可分解为WY→W和WY→Z)。依次类推,找出F中所有决定因素包含于所求出的中间集的所有函数依赖,并把它们的被决定因素都并到该闭包的中间集中。直到在F中再也找不到符合上述条件的函数依赖时。所求的闭包集就是最终的闭包。

下面通过一个例子来说明。

例:R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→C,BI→C,ED→I,C→E},求(AC)+

解:(1)令X={AC},则X(0)=AC;

(2)在F中找出左边是AC子集的函数依赖:A→D,C→E;

(3)X(1)=X(0)∪D∪E=ACDE;

(4)很明显X(1)≠X(0);

(5)在F中找左边是ACDE子集的函数依赖:ED→I;

(6)X(2)=X(1)∪I =ACDEI ;

(7)虽然X(2)≠X(1),但是F中未用过的函数依赖的左边属性已没有X(2)的子集,所以停止计算,输出(AC)+=X(2)=ACDEI。

三、函数依赖的覆盖

函数依赖集的闭包:关系模式R(U,F)中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+。

函数依赖的覆盖:设F和G是关系模式R(U)上的两个函数依赖集,如果F+=G+,则称F和G是等价的,记作F≡G。也可以说F覆盖G,或G覆盖F,或F、G相互覆盖。

两个引理:(1)F≡G的充分必要条件是F?G+、G?F+

(2)任一函数依赖集,总可以为一右边全是单属性的函数依赖集所覆盖。

对上述引理(1)是显而易见的。引理(2)可以这样理解,根据函数依赖的分解规则,任一个右部为属性组的函数依赖都可以分解为右部为单属性的若干个函数依赖。所以,对于任一个函数依赖集,总可以找到一个右边全是单属性的函数依赖集覆盖它。

定义:如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,或称最小依赖集或最小覆盖。

?F中任一函数依赖的右部都是单属性;

?F中任一函数依赖X→A,都不会使F与F-{X→A}等价。

?F中任一函数依赖X→A,X的任一真子集Z,不会使F-{X→A}∪{Z→A}与F 等价。

上述第二个条件保证了F中不存在多余的函数依赖,第三个条件保证了F中每个函数依赖左部没有多余的属性。要注意上列条件三中的下划线部分,并注意Z→A不是一个函数依赖,而是指Z?X的一组Z→A。并且F-{X→A}∪{Z→A}是不确切的。

定理:任一函数依赖集F均等价于一个极小的函数依赖集F m。

最小的依赖集可以上述定义为基本思想所确定的算法求解。

四、关系模式的分解

关系模式经分解后,应与原来的关系模式等价。即两者对数据的使用者来说应是等价的。即对分解前后的关系,做相同内容的查询,应产生相同的结果。这是对模式分解的基本要求。

历年来,人们对等价的概念形成了三种不同的定义:

?分解具有“无损连接性”(Lossless join);

?分解具有“函数依赖保持性”(Preserve dependency);

?分解既要具有“无损连接性”,又要具有“函数依赖保持性”

下面分别介绍无损连接性和函数依赖保持性两个概念的含义及其判定算法。

1、无损连接性:

对关系模式分解时,原关系模式下任一合法的关系实例,在分解之后,应能通过自然连接运算恢复起来。所以无损连接性有时也称为无损分解。

(下列定义按照课时的情况选择讲解或不讲)

定义:设ρ={R1,R2,…,Rk}是关系模式R(U,F)的一个分解,如果对于R的任一满足F的关系r,都有r=∏R1(r)?∏R2(r)?…?∏Rk(r),则称分解ρ是满足函数依赖集F的无损连接分解或无损分解。

关于无损连接性的判断算法很巧妙,也很容易理解,在课堂上不讲,但有可能出现此类考

题,请同学们自己看书学习。

(有时间时可以讲书上例子P114下部例6.6)

2、函依赖保持性:

函数依赖集的投影:设有关系模式R(U,F),Z?U,则Z所涉及到的F中所有函数依赖为F在Z上的投影,记为∏Z(F),有∏Z(F)={X→Y|(X→Y)∈F+且XY?Z}函数依赖保持性:设R(U,F)的一个分解ρ={R1,R2,…,Rk},如果F等价于

∏R1(F)∪∏R2(F)∪…∪∏Rk(F)

则称分解ρ具有函数依赖保持性。

一个无损连接的分解不一定具有函数依赖保持性;同样地,一个具有函数依赖保持性的分解也不一定具无损连接性。

检验一个分解是否具有依赖保持性,实际上是检验∏R1(F)∪∏R2(F)∪…∪∏Rk(F)是否覆盖F。

(书上关于它的算法令人费解。可以不讲)

介绍P114页例6.6是一个具有依赖保持性的分解。

在实际数据库设计中,关系模式的分解主要有两种准则:

(1)只满足无损连接性;

(2)既满足无损连接性,又满足函数依赖保持性。

准则(2)比(1)更理想,但分解时受到更多的限制。如果一个分解,只满足函数依赖保持性,而不满足无损连接性,是没有实用价值的。所以无损连接性是模式分解必须满足的条件。

规范化-数据库设计原则

规范化-数据库设计原则 关系数据库设计的核心问题是关系模型的设计。本文将结合具体的实例,介绍数据库设计规范化的流程。摘要 关系型数据库是当前广泛使用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数据的不完整。因此,就有必要学习和掌握数据库的规范化流程,以指导我们更好的设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性。本文将结合具体的实例,介绍数据库规范化的流程。 序言 本文的目的就是通过详细的实例来阐述规范化的数据库设计原则。在DB2中,简洁、结构明晰的表结构对数据库的设计是相当重要的。规范化的表结构设计,在以后的数据维护中,不会发生插入(insert)、删除(delete)和更新(update)时的异常。反之,数据库表结构设计不合理,不仅会给数据库的使用和维护带来各种各样的问题,而且可能存储了大量不需要的冗余信息,浪费系统资源。 要设计规范化的数据库,就要求我们根据数据库设计范式――也就是数据库设计的规范原则来做。但是一些相关材料上提到的范式设计,往往是给出一大堆的公式,这给设计者的理解和运用造成了一定的困难。因此,本文将结合具体形象的例子,尽可能通俗化地描述三个范式,以及如何在实际工程中加以优化使用。规范化 在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化使用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义,请参考附录文章1. 数据冗余 数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中,因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。 规范化实例 为了说明方便,我们在本文中将使用一个SAMPLE数据表,来一步一步分析规范化的过程。 首先,我们先来生成一个的最初始的表。 CREATE TABLE "SAMPLE" ( "PRJNUM" INTEGER NOT NULL, "PRJNAME" VARCHAR(200), "EMYNUM" INTEGER NOT NULL, "EMYNAME" VARCHAR(200), "SALCATEGORY" CHAR(1), "SALPACKAGE" INTEGER)

数据库设计理论

数据库的设计理论 第一节,关系模式的设计问题 一概念: 1. 关系模型:用二维表来表示实体集,用外键来表示实体间的联系,这样的数据模型,叫做关系数据模型。 关系模型包含内涵和外延两个方面: 外延:就是关系或实例、或当前值。它与时间有关,随时间的变化而变化。(主要是由于元组的插入、删除、修改等操作引起的) 内涵:内涵是与时间独立的,它包括关系属性、以及域的一些定义和说明。还有数据的各种完整性约束。 数据的完整性约束分为静态约束和动态约束。 静态约束包括数据之间的联系(称为数据依赖),主键的设计和各种限制。 动态约束主要定义如插入、删除和修改等操作的影响。 通常我们称内涵为关系模式。 2. 关系模式:是对一个关系的描述,二维表的表头那一行称为关系模式,又称为表的框架或记录类型。 关系模式的定义包括:模式名、属性名、值域名和模式的主键。关系模式仅仅是对数据特征的描述。 关系模式的一般形式为R ( U , D , DOM , F ) R 是关系名。 U 是全部属性的集合。 D 是属性域的集合。 DOM 是U 和D 之间的映射关系,关系运算的安全限制。 F 是属性间的各种约束关系,也称为数据依赖。

关系模式可以表示为: 关系模式(属性名1,属性名2 ,……,属性名n ) 示例:学生(学号,姓名,年龄,性别,籍贯)。 当且仅当U 上的一个关系r 满足 F 时,r 就称为关系模式R(U,F)上的一个关系,R是关系的型,r 是关系的值,每个值称为R 的一个关系。 关系数据库模式: 一个数据库是由多个关系构成的。 一个关系数据库对应多个不同的关系模式,关系数据库模式是一个数据库中所有的关系模式的集合。它规定了数据库的全局逻辑结构。 关系数据库模式可以表示为: S = { Ri < Ui , Di , DOM , Fi > | i = 1,2,…, n } 3. 关系子模式 关系子模式是用户所用到的那部分数据的描述。 外模式是关系子模式的集合。 4. 存储模式 存储模式及内模式。 关系数据库理论的主要内容: (1)数据依赖。数据依赖起着核心的作用。 (2)范式。 (3)模式的设计方法。 如何设计一个合理的数据库模式: (1)与实际问题相结合。 泛关系模式:把现实问题的所有属性组成一个关系模式 泛关系:泛关系模式的实例称为泛关系。 泛关系模式中存在的问题: a 数据冗余 b 更新异常, c 插入异常 d 删除异常。

第7章关系数据库规范化理论复习题

第7章关系规范化理论 一、单项选择题 1.关系规范化中的删除操作异常是指①,插入操作异常是指②。 A.不该删除的数据被删除 B.不该插入的数据被插入 C.应该删除的数据未被删除 D.应该插入的数据未被插入 答案:①A ②D 2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是。 A.关系规范化理论 B.关系运算理论 C.关系代数理论 D.数理逻辑 答案:A 3.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是。 A.互不相关的 B.不可分解的 C.长度可变的 D.互相关联的 答案:B 4.关系数据库规范化是为解决关系数据库中问题而引入的。 A.插入、删除和数据冗余 B.提高查询速度 C.减少数据操作的复杂性 D.保证数据的安全性和完整性 答案:A 5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及的缺陷。 A.数据的不一致性 B.结构不合理 C.冗余度大 D.数据丢失 答案:C 6.当关系模式R(A,B)已属于3NF,下列说法中是正确的。 A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A和C都是 答案:B 7. 关系模式1NF是指_________。 A. 不存在传递依赖现象 B. 不存在部分依赖现象

C.不存在非主属性 D. 不存在组合属性 答案:D 8. 关系模式中2NF是指_______。 A.满足1NF且不存在非主属性对关键字的传递依赖现象 B.满足1NF且不存在非主属性对关键字部分依赖现象 C.满足1NF且不存在非主属性 D.满足1NF且不存在组合属性 答案:B 9. 关系模式中3NF是指___________。 A.满足2NF且不存在非主属性对关键字的传递依赖现象 B.满足2NF且不存在非主属性对关键字部分依赖现象 C.满足2NF且不存在非主属性 D.满足2NF且不存在组合属性 答案:A 10.关系模型中的关系模式至少是。 A.1NF B.2NF C.3NF D.BCNF 答案:A 11.关系模式中,满足2NF的模式,。 A.可能是1NF B.必定是1NF C.必定是3NF D.必定是BCNF 答案:B 12.X→Y为平凡函数依赖是指__________。 A.X

关系数据库规范化理论常见试题及答案

关系数据库规范化理论常见试题及答案 1.关系规范化中的操作异常有哪些?它是由什么引起的?解决的办法是什么? 答:关系规范化中的操作异常有插入异常、更新异常和删除异常,这些异常是由于关系中存在不好的函数依赖关系引起的。消除不良函数依赖的办法是进行模式分解,即将一个关系模式分解为多个关系模式。 2.第一范式、第二范式和第三范式的关系的定义是什么? 答:不包含非原子项属性的关系就是第一范式的关系;对于第一范式的关系,如果此关系中的每个非主属性都完全函数依赖于主键,则此关系属于第二范式;对于第二范式的关系,如果所有的非主属性都不传递依赖于主键,则此关系就是第三范式的。 3.什么是部分依赖?什么是传递依赖?请举例说明。 答:部分依赖关系是指某个属性只由构成主键的部分列决定,而和另一些列无关。例如对关系:学生选课(学号,姓名,课程号,成绩),此关系的主键是(学号,课程号),而“姓名”列只由“学号”决定,与“课程号”无关,这就是部分依赖关系。 传递依赖指的是某个非主键属性是由另一个非主键属性决定的,而这个非主键属性再由主键决定。例如对关系:学生(学号、姓名、所在系,系主任),此关系的主键为(学号),而“系主任”由“所在系”决定,“所在系”又由“学号”决定,因此“系主任” 对“学号”是传递依赖关系。 4.第三范式的表是否一定不包含部分依赖关系? 答:是的。 5.对于主键只由一个属性组成的关系,如果它是第一范式关系,则它是否一定也是第二范式关系?答:是的。因为如果一个关系的主键只由一个属性组成,则此关系中一定不会存在部分依赖关系。 6.设有关系模式:学生修课管理(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一名学生可以选修多门课程,一门课程可以被多名学生选修。一名学生有唯一的所在系,每门课程有唯一的课程名和学分。请指出此关系模式的候选键,判断此关系模式是第几范式的;若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主键和外键。 答:候选键为:(学号,课程号),它也是此关系模式的主键。由于存在函数依赖:学号→姓名,课程号→课程名 因此,存在非主属性对主键的部分函数依赖关系,因此它不是第二范式的表。分解如下:学生表(学号,姓名,所在系,性别),主键为“学号”,已属于第三范式。 课程表(课程号,课程名,学分),主键为“课程号”,已属于第三范式。 选课表(学号,课程号,成绩),主键为(学号,课程号),已属于第三范式 7.设有关系模式:学生表(学号,姓名,所在系,班号,班主任,系主任),其语义为:一名学生只在一个系的一个班学习,一个系只有一名系主任,一个班只有一名班主任,一个系可以有多个班。请指出此关系模式的候选键,判断此关系模式是第几范式的;若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主键和外键。

数据库规范化理论习题

规范化理论习题1. 解释下列名词: 函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选关键字、主关键字、全关键字、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF、最小函数依赖集、无损分解 函数依赖:FD(function dependency),设有关系模式R(U),X,Y是U的子集, r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。 部分函数依赖:即局部依赖,对于一个函数依赖W→A,如果存在X W(X包含于W)有X→A成立,那么称W→A是局部依赖,否则称W→A为完全依赖。 完全函数依赖:见上。 传递函数依赖:在关系模式中,如果Y→X,X→A,且X Y(X不决定Y), A X(A不属于X),那么称Y→A是传递依赖。 候 选关键字:设K 为关主关键字:若关系模式R有多个候选码,则选定其中一个作为主关键字 (Primary Key),有时也称作为主码。 全关键字:若关系模式R整个属性组都是码,称为全关键字(All Key)或全码。 1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值, 则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。第一范式的模式要求属性值不可

再分裂成更小部分,即属性项不能是属性组合和组属性组成。 2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。 (注:如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R 的非主属性。) 。 3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。 BCNF:BC范式。如果关系模式R是第一范式,且每个属性都不传递依赖于R 的候选键,那么称R是BCNF的模式。 多值依赖:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y, 用x,y,z分别代表属性集X,Y,Z的值,只要r是R的关系,r中存在元组(x,y1,z1)和(x,y2,z2)时,就也存在元组(x,y1,z2)和(x,y2,z1),那么称多值依赖(MultiValued Dependency MVD) X→→Y在关系模式R中成立。 4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X→→Y时, X必是R的超键,那么称R是第四范式的模式。 连接依赖:关系模式R(U)中,U是全体属性集,X,Y,…,Z是U的子集,当且仅当R是由其在X,Y,…,Z上投影的自然连接组成时,称R满足对X,Y,…,Z的连接依赖。记为JD(X,Y,…,Z)。 5NF:关于模式R中,当且仅当R中每个连接依赖均为R的候选码所蕴涵时,称R属于5NF。

《数据库原理》知识点总结

《数据库原理》知识点总结标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

目录未找到目录项。 一数据库基础知识(第1、2章) 一、有关概念 1.数据 2.数据库(DB) 3.数据库管理系统(DBMS) Access 桌面DBMS VFP SQL Server Oracle 客户机/服务器型DBMS MySQL DB2 4.数据库系统(DBS) 数据库(DB) 数据库管理系统(DBMS) 开发工具 应用系统 二、数据管理技术的发展 1.数据管理的三个阶段 概念模型 一、模型的三个世界 1.现实世界

2.信息世界:即根据需求分析画概念模型(即E-R图),E-R图与DBMS 无关。 3.机器世界:将E-R图转换为某一种数据模型,数据模型与DBMS相关。 注意:信息世界又称概念模型,机器世界又称数据模型 二、实体及属性 1.实体:客观存在并可相互区别的事物。 2.属性: 3.关键词(码、key):能唯一标识每个实体又不含多余属性的属性组合。 一个表的码可以有多个,但主码只能有一个。 例:借书表(学号,姓名,书号,书名,作者,定价,借期,还期) 规定:学生一次可以借多本书,同一种书只能借一本,但可以多次续借。 4.实体型:即二维表的结构 例 student(no,name,sex,age,dept) 5.实体集:即整个二维表 三、实体间的联系: 1.两实体集间实体之间的联系 1:1联系 1:n联系 m:n联系 2.同一实体集内实体之间的联系 1:1联系 1:n联系 m:n联系 四、概念模型(常用E-R图表示) 属性: 联系: 说明:① E-R图作为用户与开发人员的中间语言。 ② E-R图可以等价转换为层次、网状、关系模型。 举例: 学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授 和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课程有若干学生选修。用E-R图画出概念模型。

数据库设计规范化的五个要求

数据库设计规范化的五个要求 通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。 要求一:表中应该避免可为空的列。 虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多。 所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据库性能的影响降低到最少。 一是通过设置默认值的形式,来避免空字段的产生。如在一个人事管理系统中,有时候身份证号码字段可能允许为空。因为不是每个人都可以记住自己的身份证号码。而在员工报到的时候,可能身份证没有带在身边。所以,身份证号码字段往往不能及时提供。为此,身份证号码字段可以允许为空,以满足这些特殊情况的需要。但是,在数据库设计的时候,则可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默认值设置为 或者为 。以避免空字段的产生。 二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这

些列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建立一张副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储在两个独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。 要求二:表不应该有重复的值或者列。 如现在有一个进销存管理系统,这个系统中有一张产品基本信息表中。这个产品开发有时候可以是一个人完成,而有时候又需要多个人合作才能够完成。所以,在产品基本信息表产品开发者这个字段中,有时候可能需要填入多个开发者的名字。 如进销存管理中,还需要对客户的联系人进行管理。有时候,企业可能只知道客户一个采购员的姓名。但是在必要的情况下,企业需要对客户的采购代表、仓库人员、财务人员共同进行管理。因为在订单上,可能需要填入采购代表的名字 可是在出货单上,则需要填入仓库管理人员的名字等等。 为了解决这个问题,有多种实现方式。但是,若设计不合理的话在,则会导致重复的值或者列。如我们也可以这么设计,把客户信息、联系人都放入同一张表中。为了解决多个联系人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系人电话等等。若还有第三联系人、第四联系人等等,则往往还需要加入更多的字段。 可是这么设计的话,会产生一系列的问题。如客户的采购员流动性比较大,在一年内换了六个采购员。此时,在系统中该如何管理呢 难道就建立六个联系人字段 这不但会导致空字段的增加,还需要频繁的更改数据库表结构。明显,这么做是不合理

关系数据库理论

第4部分关系数据库理论 复习习题与讲解资料 【主讲教师:钱哨】 一.考试大纲考点要求 1 了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 3 掌握第一范式( 1NF )、第二范式( 2NF )和第三范式( 3NF )的定义,能判别关系模式的范式等级。 4 掌握关系模式的分解(规范到 3NF )的步骤、分解的原则和分解的方法。 二.单项选择题 1. 为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是()。 A. 关系规范化理论 B. 关系代数理论 C.数理逻辑 D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是()。 A. 长度不变的 B. 不可分解的 C.互相关联的 D. 互不相关的 3. 已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→ A },该关系模式的候选关键字是()。 A.AB B. BE C.CD D. DE

4. 设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主键为SNO和CNO,其满足()。 A. 1NF B.2NF C. 3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A. (S,C) B. (T,R) C. (T,P) D. (T,S) 6. 关系模式中,满足2NF的模式()。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7. 关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 9. 如果A->B ,那么属性A和属性B的联系是()。 A. 一对多 B. 多对一 C.多对多 D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 11. 候选关键字的属性可以有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 12. 关系模式的任何属性()。 A. 不可再分 B. 可以再分 C. 命名在关系模式上可以不唯一 D. 以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最

关系数据库规范化理论

第四章关系数据库规范化理论 一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。 为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。 4.1 关系规范化的作用 规范化,就是用形式更为简洁,结构更加规范的关系模式取代原有关系模式的过程。 如果将两个或两个以上实体的数据存放在一个表里,就会出现下列三个问题:?数据冗余度大 ?插入异常 ?删除异常 所谓数据冗余,就是相同数据在数据库中多次重复存放的现象。数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。 插入异常是指,当在不规范的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。 删除异常是指,当不规范的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。 (以P98工资表为例) 解决上述三个问题的方法,就是将不规范的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。 (讲例子解) 当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。 那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个问题?回答这些问题需要理论指导。下面,将加以讨论: 4.2 函数依赖 4.2.1属性间关系 实体间的联系有两类:一类是实体与实体之间联系;另一类是实体内部各属性间的联系。

第4章+关系数据库设计理论答案

第4章关系数据库设计理论 选择题答案: (1) A (2) B (3) B (4) A (5) D (6) B (7) C (8) B (9) B (10) C (11) D (12) A (13) D (14) D (15) B (16) B (17) D (20) C (21) C (23) A (26) B (27) B (28) B (29) B (30) B (31) D (33) B B D 一、选择题: 1. 为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是()。 A. 关系规范化理论 B. 关系代数理论C.数理逻辑 D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是()。 A. 长度不变的 B. 不可分解的 C.互相关联的 D. 互不相关的 3. 已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→A },该关系模式的候选关键字是()。 A.AB B. BE C.CD D. DE 4. 设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO, 则关系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主键为SNO和CNO,其满足()。 A. 1NF B.2NF C. 3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A. (S,C) B. (T,R) C. (T,P) D. (T,S) 6. 关系模式中,满足2NF的模式()。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7. 关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 9. 如果A->B ,那么属性A和属性B的联系是()。 A. 一对多 B. 多对一C.多对多 D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 11. 候选关键字的属性可以有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 12. 关系模式的任何属性()。 A. 不可再分 B. 可以再分 C. 命名在关系模式上可以不唯一 D. 以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系

数据库规范化练习答案

规范化习题 1、涉及到学生、教师和课程关系模式STC(SNO,SN,SA,TN,CN,G),其中6个属性分别为学生 的学号、姓名、年龄、教师的姓名、课程名以及学生的成绩。假设学生有重名,课程名也可能有重名。又假设教师无重名,且每个教师只教一门课程,但一门课程可有几个教师同时开设。某个学生选定某门课后,其上课教师就固定了。要求: (1)写出键码和函数依赖 (2)分解关系模式使之属于BC范式 候选码:(SNO,CN)和(SNO,TN) SNO->SN, SNO->SA , TN->CN, (SNO,CN)->TN, (SNO,CN)->G, (SNO,TN)->G STC(SNO, TN,G) S(SNO,SN,SA) T(TN,CN) 2、有关系模式:Student(学号,姓名,所在系,班号,班主任,系主任),其语义为:一个 学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一名班主任。指出此关系模式的候选码。判断此关系模式是第几范式,若不是三范式,将其规范为三范式。 函数依赖有:学号→姓名学号→所在系,学号→班号,班号→班主任,所在系→系主任 候选码:学号是2NF不是3NF Student(学号,姓名,所在系,班号) Student1(班号,班主任) Student2(所在系,系主任) 3、假设某商业集团数据库中有关系模式如下: R(商店编号,商品编号,商品库存数量,部门编号,负责人) 如果规定: 每个商店的每中商品只在该商店的一个部门中销售。 每个商店的每个部门只有一位负责人。 每个商店的每种商品只有一个库存数量。 试回答下列问题: (1)根据上述规定,写出关系模式R的基本函数依赖。 (2)找出关系模式R的候选码。 (3)试问关系模式R最高已经达到第几范式,为什么? (4)如果关系模式不属于3NF,试将R分解成3NF。 函数依赖:(商店编号,商品编号)→部门编号,(商店编号,部门编号)→负责人 (商店编号,商品编号)→商品库存数量 候选码:(商店编号,商品编号) 不是3NF: R1(商店编号,商品编号,商品库存数量,部门编号) R2(商店编号,部门编号,负责人) 4、假设我们有关系模式:管理(仓库号,设备号,职工号),它所包含的语义是:一个仓 库可以有多个职工;一名职工仅在一个仓库工作;在每个仓库一种设备仅由一名职工保管,但每名职工可以保管多种设备。请根据语义写出函数依赖,求出候选码。判断此关系模式是否属于3NF,是否属于BC范式。 5、假设你有一个名为TRANSACTION的关系模式如下,用來记载读者买书的交易:

《数据库原理》1-2章作业(答案)

《数据库原理》知识点 第一章 1、什么是4D(Data, DB、DBMS、DBS),它们之间的关系? 答: 所谓4D是分别指:数据(Data)、数据库(DB或DataBase)、数据库管理系统(DBMS)、数据库系统(DBS)。其中: 数据(Data): 数据库(DB或DataBase): 数据库管理系统(DBMS): 数据库系统(DBS): 当开发一个数据库系统(DBS)时,通常需要借助数据库管理系统(DBMS)来完成建立数据库(DB)、对数据库中数据(Data)进行操作等功能。 2、数据模型的组成要素有哪些? 答:包括: 数据结构:描述数据库的组成对象以及对象之间的联系。 数据操作:指对数据库中各种对象的实例允许执行的操作集合。 数据的完整性约束条件:是指给定的数据模型中数据及其联系所具有的制约和依存规则。 3、ER模型的组成要素有哪些? 答: 实体型、属性和联系所组成。 实体型: 属性: 联系: 4、学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。请用E-R图画出此学校的概念模型。 答:

5、某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按照所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。

6、试述数据库系统三级模式结构,这种结构的优点是什么? 答: 数据库系统的三级模式结构由外模式、模式、内模式组成。 外模式: 模式: 内模式: 数据库系统的三级模式是针对数据的3个抽象级别,其优点是:它把数据的具体组织留给DBMS管理,使用户能抽象地处理数据,而不必关心数据在计算机中的具体表示和存储方式。 为了能够在内部实现这3个抽象层次之间的联系和转换,数据库系统在三级模式之间提供了二层映像:外模式/模式映像、模式/内模式映像,通过二层映像保证了数据库系统中数据能够具有较高的逻辑独立性和物理独立性。 7、叙述DBS的组成,其中的主要软件是什么?主要人员是谁? 答: DBS一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户组成。 主要软件包括:数据库管理系统。 主要人员:数据库管理员。 第二章 1、叙述关系模型的三类完整性,并举例说明。 答:

第5章 关系数据库规范化理论

第5章关系数据库规范化理论 1. 理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传 递依赖、超键、候选键、主键、外键、全键、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF。 2. 设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中 平凡的函数依赖有多少个?非平凡函数依赖有多少个? 3. 设有关系模式R(ABCD),F是R上成立的函数依赖之集,F={AB→CD,A→D}。 (1) 说明R不是2NF模式的理由。 (2) 将R分解成2NF模式集。 4. 设有关系模式R(ABC),F是R上成立的函数依赖之集,F={C→B,B→A}。 (1) 说明R不是3NF模式的理由。 (2) 将R分解成3NF模式集。 5. 设有关系模式: R(职工名,项目名,工资,部门名,部门经理)。 如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一名经理。 (1) 写出关系模式R的函数依赖集合与关键码。 (2) 说明R不是2NF模式的理由,并把R分解成2NF模式集。 (3) 进而把R分解为3NF模式集,并说明理由。 6.现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。 描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区; 描述班级的属性有:班号、专业名、系名、人数、入校年份; 描述系的属性有:系名、系号、系办地点、人数;

描述学会的属性有:学会名、成立年份、地点、人数、学生参加某回有一个入会年份。 1)请写出关系模式。 2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。 3)指出各个关系模式的侯选关键字、外部关键字,以及有没有全关键字. 7.设关系模式R(A,B,C,D,E,F),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}. 1)求出R的侯选码。 2)求出F的最小函数依赖集。 3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。 8.设关系模式R〈A,B,C,D,E,F〉,函数依赖集F={AB→E,AC→F,AD→B,B→C,C→D}。 1)证明AB、AC、AD均是候选关键字。 2)证明主属性C部分依赖于关键字AB,传递依赖于AD。同时证明主属性D 部分依赖于关键字AC,传递依赖于关键字AB。 9.设关系模式R〈A,B,C,D,E,F〉,函数依赖集F={AB→E,BC→D,BE→C,CD→B,CE→AF,CF→BD,C→A,D→EF},求F的最小函数依赖集。 10.判断下面的关系模式是不是BCNF,为什么? 1)任何一个二元关系。 2)关系模式选课(学号,课程号,成绩),函数依赖集F={(学号,课程号)→成绩}。 3)关系模式R(A,B,C,D,E,F),函数依赖集F={A→B,C→F,E→A,CE→A},将R分解为p={ABE,CDEF}。判断p是否是无损连接。 11.设关系模式R{B,O,I,S,Q,D},函数依赖集F={S→D,I→S,IS→Q,B →Q}。 1)找出R的主码。 2)把R分解为BCNF,且具有无损连接性。

关系规范化

关系规范化 规范化理论是数据库逻辑设计的指南和工具,具体步骤如下:(1)考察关系模型的函数依赖关系,确定范式等级。逐一分析各关系模式,考察是否存在部分函数依赖、传递函数依赖等,确定它们分别属于第几范式。 (2)对关系模式进行合并或分解。根据应用要求,考察这些关系模式是否合乎要求,从而确定是否要对这些模式进行合并或分解,例如,对于具有相同主码的关系模式一般可以合并;对于非BCNF的关系模式,要考察“异常弊病”是否在实际应用中产生影响,对于那些只是查询,不执行更新操作,则不必对模式进行规范化(分解),实际应用中并不是规范化程度越高越好,有时分解带来的消除更新异常的好处与经常查询需要频繁进行自然连接所带来的效率低相比会得不偿失。对于那些需要分解的关系模式,可以用规范化方法和理论进行模式分解。最后,对产生的各关系模式进行评价、调整,确定出较合适的一组关系模式。 关系规范化理论提供了判断关系逻辑模式优劣的理论标准,帮助预测模式可能出现的问题,是产生各种模式的算法工具,因此是设计人员的有力工具。 扩展阅读: ?1 《数据库设计解决方案》 1.3 关系规范化 https://www.360docs.net/doc/c49739135.html, 2007-04-07 13:31 史创明、王俊伟清华大学出版社我要评论(0) ?摘要:在数据库中,数据之间存在着密切的联系。关系数据库由相互联系的一组关系所组成,每个关系包括关系模式和关系值两个方面。关系模式是对关系的抽象定义,给出关系的具体结构;关系的值是关系的具体内容,反映关系在某一时刻的状态。 ?标签:SQL SQL2000微软数据库 ?在数据库中,数据之间存在着密切的联系。关系数据库由相互联系的一组关系所组成,每个关系包括关系模式和关系值两个方面。关系模式是对关系的抽象定义,给出关系的具体结构; 关系的值是关系的具体内容,反映关系在某一时刻的状态。一个关系包含许多元组,每个元组都是符合关系模式结构的一个具体值,并且都分属于相应的属性。在关系数据库中的每个关系都需要进行规范化,使之达到一定的规范化程度,从而提高数据的结构化、共享性、一

数据库原理及应用(课后练习)---第4章 关系数据库设计理论

第4章关系数据库设计理论第4章关系数据库设计理论 习题 一、选择题 1、C 2、B 3、C 4、C 5、A 6、B 7、A 8、B 9、D 10、B 二、填空题 1、数据依赖主要包括_函数_依赖、_多值_依赖和连接依赖。 2、一个不好的关系模式会存在_插入异常_、_删除异常_和__修改复杂_等弊端。 3、设X→Y为R上的一个函数依赖,若_对任意X的真子集X’,均无X’→Y 存在__,则称Y完全函数依赖于X。 4、设关系模式R上有函数依赖X→Y和Y→Z成立,若_Y不包含于X_且_Y→X不成立_,则称Z传递函数依赖于X。 5、设关系模式R的属性集为U,K为U的子集,若_K→U为完全函数依赖_,则称K 为R的候选键。 6、包含R中全部属性的候选键称_主属性_。不在任何候选键中的属性称__非主属性_。 7、Armstrong公理系统是_有效__的和_完备__的。 8、第三范式是基于_函数_依赖的范式,第四范式是基于_多值_依赖的范式。 9、关系数据库中的关系模式至少应属于_第一_范式。 10、规范化过程,是通过投影分解,把_一个范式级别较低的_的关系模式“分解”为_若干个范式级别较高__的关系模式。 111

数据库原理及应用 112 三、简答题 1、解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式、无损连接性、依赖保持性。 解: 函数依赖:设关系模式R (U ,F ),U 是属性全集,F 是U 上的函数依赖集,X 和Y 是U 的子集,如果对于R (U )的任意一个可能的关系r ,对于X 的每一个具体值,Y 都有唯一的具体的值与之对应,则称X 函数决定Y ,或Y 函数依赖于X ,记X →Y 。我们称X 为决定因素,Y 为依赖因素。当Y 不函数依赖于X 时,记作:X Y 。当X →Y 且Y →X 时,则记作:X ?Y 。 平凡函数依赖:当属性集Y 是属性集X 的子集时,则必然存在着函数依赖X →Y ,这种类型的函数依赖称为平凡的函数依赖。 非平凡函数依赖:如果Y 不是X 子集,则称X →Y 为非平凡的函数依赖。 完全函数依赖与部分函数依赖:设有关系模式R (U ),U 是属性全集,X 和Y 是U 的子 集,X →Y ,并且对于X 的任何一个真子集X ',都有X 'Y ,则称Y 对X 完全函数依赖(Full Functional Dependency ),记作X ?→?f Y 。如果对X 的某个真子集X ',有X '→Y ,则称Y 对X 部分函数依赖(Partial Functional Dependency ),记作X ?→? p Y 。 传递函数依赖:设有关系模式R (U ),U 是属性全集,X ,Y ,Z 是U 的子集,若X →Y (Y X ),但Y X ,又Y →Z ,则称Z 对X 传递函数依赖(Transitive Functional Dependency ),记作:X ?→? t Z 。 范式:在关系数据库的规范化过程中,为不同程度的规范化要求设立的不同的标准或准则称为范式(Normal Form )。满足最低要求的叫第一范式,简称1NF 。在第一范式中满足进一步要求的为第二范式(2NF),其余以此类推。R 为第几范式就可以写成R ∈xNF (x 表示某范式名)。 当把某范式看成是满足该范式的所有关系模式的集合时,各个范式之间的集合关系可以表示为:5NF ?4NF ?BCNF ?3NF ?2NF ?1NF 。 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。 无损连接性:设R (X ,Y ,Z ),X 、Y 、Z 为不相交的属性集合,如果有X →Y 、X →Z ,则有R (X ,Y ,Z )=R[X ,Y]∞R[X ,Z],其中R[X ,Y]表示关系R 在属性(X ,Y )上的投影,即R 等于两个分别含决定因素X 的投影关系(分别是R[X ,Y]与R[X ,Z])在X 上的自然连接,这样便保证了关系R 分解后不会丢失原有的信息,这称作关系分解的无损连接性。 依赖保持性:设有关系模式R (U ,F ),Z ?U ,则Z 所涉及到的F 中所有函数依赖为F

关系规范化练习题

一、单项选择题 1.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是()。 A.互不相关的B.不可分解的 C.长度可变的D.互相关联的 2.关系模式中2NF是指_______。 A.满足1NF且不存在非主属性对码的传递依赖 B.满足1NF且不存在非主属性对码部分依赖 C.满足1NF且不存在非主属性 D.满足1NF且不存在组合属性 3. 关系模式中3NF是指___________。 A.满足2NF且不存在非主属性对码的传递依赖 B.满足2NF且不存在非主属性对码部分依赖 C.满足2NF且不存在非主属性 D.满足2NF且不存在组合属性 4.关系模型中的关系模式至少是()。 A.1NF B.2NF C.3NF D.BCNF 5. 在关系模式R(A,C,D)中,存在函数依赖关系{ A→C,A→D },则候选码是______ ,关系模式R(A,C,D)最高可以达到_____________ 。 6.在关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A →D,(B,C)→A},则候选码是___________,关系模式R(A,B,C,D)属于____________ 。

1.关系规范化中的操作异常有哪些?它是由什么引起的?解决的办法是什么? 2.第一范式、第二范式和第三范式的关系的定义是什么? 3什么是部分依赖?什么是传递依赖?请举例说明。 4.第三范式的表是否一定不包含部分依赖关系? 5.对于主键只由一个属性组成的关系,如果它是第一范式关系,则它是否一定也是第二范式关系? 6.设有关系模式:学生选修课程(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一名学生可以选修多门课程,一门课程可以被多名学生选修。一名学生有唯一的所在系,每门课程有唯一的课程名和学分。请指出此关系模式的候选键,判断此关系模式是第几范式的;若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主键和外键。 7.设有关系模式:学生表(学号,姓名,所在系,班号,班主任,系主任),其语义为:一名学生只在一个系的一个班学习,一个系只有一名系主任,一个班只有一名班主任,一个系可以有多个班。请指出此关系模式的候选键,判断此关系模式是第几范式的;若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主键和外键。8.设有关系模式:授课表(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:一门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定

相关文档
最新文档