第7章 关系数据库的规范化理论与数据库的设计

第7章 关系数据库的规范化理论与数据库的设计
第7章 关系数据库的规范化理论与数据库的设计

关系数据库的规范化理论与数据库设计

E.F.CODD提出的数据库规范化理论

1.1“不好”的关系模式中存在的问题

可能存在的问题:

数据冗余

更新异常

插入异常

删除异常

数据依赖:是可以作为关系模式的取值的任何一个关系所必须满足的一种约束条件,是通过一个关系中各个元组的某些属性值之间的相等与否体现出来的相互关系。

数据依赖包括:函数依赖和多值依赖和其他

1.2函数依赖

1.21函数依赖的定义

设R(A1,A2,……..An)是一个关系模式,X,Y是{A1,A2……..An}的子集,若只要关系r是关系模式R的可能取值,则r中不可能有两个元组在X中的属性值相等,而在Y中的属性值不相等,则称”X函数决定Y”或”Y函数依赖于X”,记做X→Y。(ps:一些属性决定另一些属性称为函数决定)只能根据语义来判断。

相关的属性:若X->Y, 但Y不属于X, 则称X->Y为非平凡依赖,否则为平凡依赖。

若X->Y, 则称X为决定元素。

若X->Y,Y->X, 则记做X←>Y

若Y不函数依赖于X, 记做X不函数决定Y

在关系模式R中,如果X->Y,并且对于X的任意一个真子集X` 都有X` 不函数决定Y,则称Y对X完全函数依赖,记做X__f__Y

若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记做X__p___Y

若X—>Y(Y不包含于X),Y不函数决定X,Y函数决定Z,则称Z 对X传递函数依赖。

把关系模式表示为R,其中U是一组属性,F是属性组U上的一组数据依赖,当且仅当U上的一个关系r满足F时,r称为关系模式R

的一个关系。

1.22 函数依赖的逻辑蕴含

设R是一个关系模式,X,Y是U中的属性组,若在R的任何一个满足F中函数依赖的关系r上,都有函数依赖X->Y成立,则称F逻辑蕴含X->Y。(ps:即是函数依赖组隐含决定的其他函数依赖关系)

如关系模式R中为F所逻辑蕴含的函数依赖的全体称作F的闭包,记做F+ .

1.23 码

设K为关系模式R中的属性或属性组,若K->U在F闭包中,而找不到K 的任何一个真子集K` ,能使K`->U在F闭包中,则称K为关系模式R的候选码,当候选码多于一个时,选定其中一个做主码。

包含在任何一个候选码中的属性叫做主属性,不包含在任何候选码中的属性叫做

非主属性。整个属性组是码的时候,称作全码。

1.24 函数依赖的公理系统

为了从F推导出F闭包,或者至少判断X->Y是否在F闭包中,需要一套推理系统,称作Armstrong公理系统。

Armstrong的推理规则为:

自反律:若Y包含于X包含于U,则X->Y为F所逻辑蕴含。(自反律所得的函数依赖是平凡的函数依赖,自反律只依赖U,不依赖F)

增广律:若X->Y为F所逻辑蕴含,且Z包含于U,则XZ->YZ为F所逻辑蕴含。

传递律:若X->Y及Y->Z为F所逻辑蕴含,则X->Z为F所逻辑蕴含。

根据Armstrong可以得到的推理规则为:

合并规则:由X->Y,X->Z,有X->YZ

伪传递规则:由X->Y,WY->Z,有XW->Z

分解规则:由X->Y及Z包含于Y,有X->Z

1.31NF,2NF,3NF,BCNF

1.31第一范式(1NF)及进一步规范化

第一范式:元组的每一个分量必须是不可分割的数据项,这叫做第一范式,简称1NF。

后面的范式是关系模式X->Y中X不包含码的情况。

1.32 第二范式(2NF)

第二范式:若关系模式R属于第一范式,且每一个非主属性完全函数依赖于码,则R 属于第二范式。(ps: 既不允许有非主属性对码的部分函数依赖或码的子集不能函数决定非主属性)

可以用分解的方法将不属于第二范式的关系模式分解成多个属于第二范式的关系模式。(码的子集属性和非主属性分成新的关系模式)

1.33 第三范式(3NF)

第三范式:若关系模式R属于第二范式,且每一个非主属性都不传递依赖于码,则R属于第三范式。(ps:码以外的属性或者属性组不能函数决定非主属性。)

可以用分解的方法将不属于第二范式的关系模式分解成多个属于第二范式的关系模式。(码以外的属性或属性组和非主属性分成新的关系模式,原关系中只拿走一个属性)

1.34 Boyce_Codd范式(BCNF)

BCNF:若关系模式R属于第一范式,且对于每一个非平凡的函数依赖X->Y,都有X包含码,则R属于BCNF。(ps:判断一个关系模式是否属于BCNF,只要考

虑每个非平凡函数依赖X->Y的决定因素X是否包含码就行了)

在函数依赖的范畴内,BCNF达到了最高的规范化程度

1.4多值依赖和4NF

1.41 多值依赖

多值依赖的直观表达:对于每一对属性,都有一个属性的一组值与之对应,这一组值只依赖于其中的一个属性,不依赖于另一个属性。

多只依赖的定义为:设R是属性集U上的一个关系模式,X,Y是U的子集,Z=U-X-Y 若在R的任一关系r中,只要存在元组t,s,使得t[X]=s[X],就必然存在元祖w,v(w,v可以与s,t相同),使得w[X]=v[X]=t[X]=s[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z],则称Y多

值依赖于X,记做X->->Y

若Y多值依赖于X而Z为空集,则称X->->Y为平凡的多值依赖。

多值依赖的属性:

(1) 若X->->Y,则X->->Z,其中Z=U-X-Y,即多值依赖具有对称性。

(2)若X->Y,则X->->Y,即函数依赖可看作多值依赖的特殊情况。只是将Y的一组值换成了一个值。

(3)设属性集之间的包含关系是XY包含于W包含于U,那么当X->->Y在R(U)上成立时,X->->Y也在R(W)上成立,反过来当X->->Y 在R(W)上成立时,X->->Y在R(U)上不一定成立。即函数依赖的有效性与属性集的范围有关。

一般的,在R(U)上若有X->->Y在R(W)(W包含于U)上成立,则称X->->Y为R(U)的嵌入式多值依赖。

(4)若X->->Y在R(U)上成立,且Y’包含于Y,不能断言X->->Y’在R (U)上成立。因为被考虑的属性组Z’数量增多时,多值依赖就不一定成立。

1.42 第四范式(4NF)

若关系模式R属于1NF,且对于每一个非平凡的多值依赖X->->Y(Y不属于X),都有X包含码,则R属于第4NF。

4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

拆分:根据对称性,将函数依赖的两个属性分开,与决定属性构成两个关系。

1.5 关系模式的分解

1.51 模式分解的等价标准

规范化过程中将一个关系模式分解为若干个关系模式,应该保证分解后产生的模式与原来的模式等价。

常用的等价标准有两种:要求分解是具有无损连接性的,并且要求分解是保持函数依赖的。

要求分解时候不丢失信息,也就是说,希望能通过对关系r1,r2,….rn的自然连接运算重新得到关系r中的所有信息。

无损连接性:设关系模式R分解为关系模式R1,R2,R3….Rn,若对于R的任何一个可能的r,都有r=r1自然链接r2自然连接r3…….rn,即r在R1,R2,R3……Rn上的投影的自然连接等于r,则称关系模式R的这个分解具有无损连接性。

判断无损连接性:将关系模式R分解为关系模式R1,R2,如果(U1交U2->U1)属于F+,或者(U1交U2->U2)属于F+,即U1交U2是U1的候选码或者是U2 的候选码,则这个分解一定是具有无损连接性的。

保持函数依赖性:设关系模式R分解为关系模式R1,R2…….Rn,若F+=(F1交F2交F3…….Fn)+,即F所逻辑蕴含的函数依赖一定也由分解得到的几个关系模式中的函数依赖所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖性的。

1.52 关于模式分解的几个事实

(1)分解具有无损连接性和分解保持函数依赖性是连个相互独立的标准,具有无损连接性的分解不一定保持函数依赖性;保持函数依赖性的分解不一定具有无损连接性。

(2)若要求分解具有无损连接性,那么模式分解一定可以达到BCNF

(3)若要求分解保持函数依赖性,那么模式分解可以达到3NF,但不一定达到BCNF

(4)若要求分解既具有无损连接性,又保持函数依赖性,则模式分解可以达到3NF,但不一定能达到BCNF 保持函数依赖性使范式降低??

1.6 数据库设计

1.61 设计过程概览

数据库设计工作量大而且过程比较复杂,既是一项数据库工程,同时也是一项软件工程。数据库设计包括结果性设计和行为性设计。

结构性设计是指确定数据库的数据模型。数据模型反映了现实世界的数据与数据间的联系,要求在满足应用需要的前提下,尽可能减少冗余,实现数据共享。

行为性设计是指确定数据库应用的行为和动作,应用的行为体现在应用程序中,所以行为性设计主要是应用程序的设计。

数据库设计一般分为六个阶段:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。数据库设计的各阶段可以和软件工程的各阶段对应起来,软件工程的某些方法和工具同样可以适用于数据库工程。

1.62 概念结构设计

概念模型是不依赖于计算机系统和具体的DBMS的。

概念模型应具有以下的特点:

(1)有丰富的语义表达能力。能表达用户的各种需求,包括描述现实世界中各种事物及事物间的联系,能满足用户对数据的处理要求。

(2)易于交流和理解。概念模型是DBA,应用系统开发人员和用户间的主要交流工具。

(3)易于变动。概念模型要适应用户需求的变更。

(4)易于向各种数据模型转换,易于从概念模型导出与DBMS有关的逻辑模型。

设计概念结构的策略有以下几种:

(1)自顶向下:首先定义全局概念模型的框架,再逐步细化。

(2)自底向上:首先定义每一局部应用的概念结构,然后按一定的规则把他们集成,从而得到全局概念结构。

(3)由里向外:首先定义最重要的核心结构,再逐渐向外扩充。

(4)混合策略:把自顶向下和自底向下两种方法结合起来设计。

最常使用的自底向上方法。

采用ER方法进行数据库概念结构设计的过程可以分为三步:

(1)设计局部ER模型:局部ER模型的设计内容包括确定局部ER结构的范围,定义属性,定义实体,定义联系等。

(2)设计全局ER模型:这一步是将所有的局部的ER图集成为全局的ER结构图,即全局的概念模型。当把局部的ER图集成为全局的ER图时,可能存在三类冲突:属性冲突,结构冲突和命名冲突。

其中结构冲突需要认真分析后用技术手段解决

(3)全局ER模型的优化

实体类型个数尽可能少,实体类型所含属性尽可能少,实体类型间联系无冗余。

1.63 逻辑结构设计

逻辑结构设计的目的是从概念模型导出特定的DBMS可以处理的数据库的逻辑结

构,这些模式在功能,性能,完整性,一致性约束以及数据库可扩充等方面均应满足用户提出的要求。

ER模型向关系模型转换的规则是:

(1)一个实体类型转换成一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个1:1联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与联系的任意一端实体所对应的关系模式合并,则必须在该关系模式的属性中加入另一个实体的码和联系本身的属性。

(3)一个1:n联系可以转换为一个独立的关系模式,也可以与联系的n端实体所对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而联系的码为n端实体的码。如果与联系的n端实体所对应的关系模式合并,则需要在该关系模式的属性中加入1端实体的码和联系本身的属性。

(4)一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

(5)三个或三个以上的实体间的多元联系转换成一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为联系的属性,而关系的码为各实体码的组合。

具有相同码的关系模式可以合并。

转换得到的关系模式需要根据规范化理论进行规范化处理。

1.64 物理结构设计

数据库的物理结构设计是对已确定的逻辑数据库结构,利用DBMS所提供的方法,技术,以较优的存储结构,数据存储路径,合理的数据存放位置以及存储分配,设计出一个高效的,可实现的物理数据库设计。

(1)存储记录的格式设计:对数据项类型特征进行分析,对存储记录进行格式化,决定如何进行数据压缩和代码化。

(2)存储方法设计:物理设计中最重要的一个考虑是在全范围内对存储记录进行物理安排。这包括记录的顺序存放,散列存放和聚簇存放。

(3)存取方法设计:存取方法设计为存储在物理设备上的数据提供数据访问的路径。索引是数据库中一种非常重要的数据存取路径。在存取方法设计中要确定建立何种索引以及在哪些表和属性上建立索引。

1.7 规范化理论在数据库设计中的应用

规范化理论是数据库设计的理论基础,它可以应用到数据库设计的不同阶段中去。

在概念结构设计阶段,可以以规范化理论为指导“规范化”ER图中的实体。

规范化理论最主要的应用是在数据库逻辑结构设计阶段,当ER模型向关系的转换完成后,将逐一检查转换得到的各个关系模式,如果某些关系模式未到达应用所要求的规范化程度,则进行关系模式的分解。

在数据库设计中有时候会适当的降低规范化程度而追求高查询性能。

需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护属性冲突,结构冲突和命名冲突。

数据库设计理论

数据库的设计理论 第一节,关系模式的设计问题 一概念: 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

关系数据库逻辑设计(一)

关系数据库逻辑设计(一) (总分:116.98,做题时间:90分钟) 一、选择题(总题数:37,分数:37.00) 1.数据库逻辑设计的依据不包括______。 A) 概念模型 B) 安全性要求 C) 数据约束 D) 功能模型 (分数:1.00) A. B. C. D. √ 解析:[解析] 数据库逻辑设计的依据是数据库概念设计的结果,包括概念数据模型、数据处理要求、数据约束、安全性要求及DBMS的相关信息,因此本题答案为D。 2.以下关于数据库逻辑设计叙述错误的是______。 A) 数据库逻辑设计是面向机器世界的 B) 这个阶段将按照数据库管理系统支持的数据模型来组织和存储数据 C) 目标是得到实际的数据库管理系统可处理的数据库模式,并做到数据结构合理 D) 包括定义和描述数据库的局部逻辑结构、数据之间的关系、数据完整性及安全性要求等 (分数:1.00) A. B. C. D. √ 解析:[解析] 数据库逻辑设计包括定义和描述数据库的全局逻辑结构、数据之间的关系、数据完整性及安全性要求等。因此本题答案为D。 3.在关系数据库设计中,设计关系模式是数据库设计中哪个阶段的任务______。 A) 逻辑设计阶段 B) 概念设计阶段 C) 物理设计阶段 D) 需求分析阶段 (分数:1.00) A. √ B. C. D. 解析:[解析] 关系数据模型是常用的逻辑数据模型,所以设计关系模式是数据库设计中逻辑设计阶段的任务,因此本题答案为A。 4.对于关系的主码必须满足的条件,有下列说法: Ⅰ.一个关系中的主码属性或属性组能函数决定该关系中的所有其他属性 Ⅱ.一个关系中的主码属性不能与其他关系中的主码属性重名 Ⅲ.在一个关系中,一个主码属性的任一真子集都不能函数决定其他属性

关系数据库设计理论练习题答案

第四章关系数据库设计理论练习题 一、选择题 1、关系规范化中的删除操作异常是指①A,插入操作异常是指②D A、不该删除的数据被删除. B、不该插入的数据被插入; C、应该删除的数据未被删除; D、应该插入的数据未被插入. 2、关系数据库规范化是为解决关系数据库中()问题而引入的。 A、插入异常、删除异常和数据冗余; B、提高查询速度; C、减少数据操作的复杂性; D、保证数据的安全性和完整性。 3、假设关系模式R(A,B)属于3NF,下列说法中()是正确的。 A、R一定消除了插入和删除异常; B、R仍可能存在一定的插入和删除异常; C、R一定属于BCNF; D、A和C都是. 4、关系模式的分解 A、唯一 B、不唯一. 5、设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是() A、W1(工号,姓名),W2(工种,定额); B、W1(工号,工种,定额),W2(工号,姓名); C、W1(工号,姓名,工种),W2(工种,定额); D、以上都不对. 6、设学生关系模式为:学生(学号,姓名,年龄,性别,平均成绩,专业),则该关系模式的主键是() A、姓名; B、学号,姓名; C、学号; D、学号,姓名,年龄. 7根据数据库规范化理论,下面命题中正确的是() A、若R∈2NF,则R∈3NF B、若R∈1NF,则R不属于BCNF C、若R∈3NF,则R∈BCNF D、若R∈BCNF,则R∈3NF 8、关系数据库设计理论中,起核心作用的是 A、范式; B、模式设计; C、函数依赖; D、数据完整性. 9、设计性能较优的关系模设称为规范化,规范化的主要理论依据是() A、关系规范化理论; B、关系运算理论;

数据库规范化理论习题

规范化理论习题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。

关系数据库设计

目录 一 Codd的RDBMS12法则——RDBMS的起源 二关系型数据库设计阶段 三设计原则 四命名规则 数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。 从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA)。根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,如果追其原因,笔者个人猜测是因为数据库的规范化,与OO的部分思想雷同(如内聚)。而DBA,设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定。如标题所示,本文旨在分享一名开发者的数据库设计经验,并不涉及复杂的SQL语句或DBMS使用,因此也不会局限到某种DBMS产品上。真切地希望这篇文章对开发者能有所帮助,也希望读者能帮助笔者查漏补缺。 一?Codd的RDBMS12法则——RDBMS的起源 Edgar Frank Codd(埃德加·弗兰克·科德)被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。在1985年,Codd 博士发布了12条规则,这些规则简明的定义出一个关系型数据库的理念,它们被作为所有关系数据库系统的设计指导性方针。 1.信息法则?关系数据库中的所有信息都用唯一的一种方式表示——表中的值。 2.保证访问法则?依靠表名、主键值和列名的组合,保证能访问每个数据项。 3.空值的系统化处理?支持空值(NULL),以系统化的方式处理空值,空值不依赖于数据类型。 4.基于关系模型的动态联机目录?数据库的描述应该是自描述的,在逻辑级别上和普通数据采用同样 的表示方式,即数据库必须含有描述该数据库结构的系统表或者数据库描述信息应该包含在用 户可以访问的表中。 5.统一的数据子语言法则?一个关系数据库系统可以支持几种语言和多种终端使用方式,但必须至少 有一种语言,它的语句能够一某种定义良好的语法表示为字符串,并能全面地支持以下所有规 则:数据定义、视图定义、数据操作、约束、授权以及事务。(这种语言就是SQL) 6.视图更新法则?所有理论上可以更新的视图也可以由系统更新。 7.高级的插入、更新和删除操作?把一个基础关系或派生关系作为单个操作对象处理的能力不仅适应 于数据的检索,还适用于数据的插入、修改个删除,即在插入、修改和删除操作中数据行被视 作集合。 8.数据的物理独立性?不管数据库的数据在存储表示或访问方式上怎么变化,应用程序和终端活动都 保持着逻辑上的不变性。 9.数据的逻辑独立性?当对表做了理论上不会损害信息的改变时,应用程序和终端活动都会保持逻辑 上的不变性。 10.数据完整性的独立性?专用于某个关系型数据库的完整性约束必须可以用关系数据库子语言定 义,而且可以存储在数据目录中,而非程序中。

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

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

第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分解为三个关系

第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,且具有无损连接性。

关系数据库规范化理论

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

关系数据库设计教案

关系数据库设计(新授课教案七) 【教学目标】 1、能说出关系数据库设计中存在的问题 2、会背诵函数依赖、范式和模式分解等概念 3、能说出关系数据库设计的步骤 4、学会设计简单的关系数据库 5、知道E-R模型设计和关系模型的转换规则 【教学重点】 1、会背诵函数依赖、范式和模式分解等概念 2、能说出关系数据库设计的步骤 3、学会设计简单的关系数据库 【教学难点】 1、如何将一个不规范的关系模式分解为一个好的关系模式 2、能够判断各关系模式属于哪一个范式 【教学方法】 尝试教学法、讲授法、案例讲解法、分组讨论 教师采用尝试教学法,先让学生自学,教师讲解概念和练习,最后教师强调难点,在讲解过程采用了案例讲解法 【教学时间】 四课时 【教具教参】 1、教具:多媒体、课件 【教学过程】 第一课时 一、导入新课 教师使用大屏幕展示表6-1UN表和SG表、SD表、DM表 学生观察后回答以下问题: 1.系名和系主任重复出现,是否造成存储空间的严重浪费。 2.如果某个系刚成立,尚无学生或者有了学生但还没有选课,所以无法将该系的系名和系主任插入到该表中,怎么办? 3.如果某个系的学生全部毕业了,删除该系学生及其选课信息的同时,会把系名和系主任的信息同时删除,这样有问题吗? 教师根据学生的回答导出课题

二、讲授新课 (一)关系数据库设计中的问题 教师引导学生对比6-1UN表和SG表、SD表、DM表和6-3表 学生说出6-1UN表和SG表、SD表、DM表和6-3表有什么不同从以下几方面思考: 1、一个系有若干学生,但一个学生只属于一个系。 2、一个系只有一名系主任。 3、一个学生可以选修多门课程,每门课程可有若干学生选修。 4、每个学生学习每门课程后有一个成绩。 教师总结表UN、SG表、SD表DM表中的问题,导出关系数据库设计中易出现大的问题如下: 1、数据冗余:数据重复存放造成空间浪费。 2、插入异常:主键值为空或部分为空的记录是不能存入到表中的。 3、删除异常:删除一个信息的同时,会把其他的信息一起删除。 学生有不理解的地方,提出并一起探讨如下: 1、模式:UN(学号,课程号,成绩,系名,系主任) 教师提问:UN中存在多个实体型和联系,该关系模式好不好 2、改造分解为SD、DM和SG三个关系模式: SD(学号,系名) 学号为主键 DM(系名,系主任) 系名为主键 SG(学号,课程号,成绩) 学号,课程号为主键 教师提问:这种分解好!为什么? 3、改造分解为SD、SM和SG三个关系模式: SD(学号,系名) 学号为主键 SM(学号,系主任) 学号为主键 SG(学号,课程号,成绩) 学号、课程号为主键 教师提问:这种分解好不好?为什么? 第二课时 (二).函数依赖 教师举例:函数系名=f(学好),成绩=f(学号,课程) 学生分析两个函数的关系之间各个值之间的关系 教师导出: 教师举例分析:例如,选课关系:SC(学号, 课程号,成绩)

数据库原理及应用(课后练习)---第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. 解释下列名词: 函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选关键字、主关键字、全关键字、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 (U ,F )中的属性或属性集合。若K —→F U ,则K 称为 R 的一个候选码(Candidate Key ),也称作为候选关键字或码。 主关键字:若关系模式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 属

关系数据库理论练习题

一、选择题 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.A B B.B E C.C D D.D E 4.设学生关系S(S N O,S N A M E,S S E X,S A G E,S D P A R T)的主键为S N O,学生选课关系S C(S N O,C N O,S C O R E)的主键为S N O和C N O, 则关系R(S N O,C N O,S S E X,S A G E,S D P A R T,S C O R E)的主键为S N O和C N O,其满足()。 A.1N F B.2N F C.3N F D.B C N F 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.关系模式中,满足2N F的模式()。 A.可能是1N F B.必定是1N F C.必定是3N F D.必定是B C N F 7.关系模式R中的属性全是主属性,则R的最高范式必定是()。 A.1N F B.2N F C.3N F D.B C N F 8.消除了部分函数依赖的1N F的关系模式,必定是()。 A.1N F B.2N F C.3N F D.B C N F 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的规范化程序最高达到()。 A.1N F B.2N F C.3N F D.B C N F 14.在关系数据库中,任何二元关系模式的最高范式必定是()。 A.1N F B.2N F C.3N F D.B C N F 15.在关系规范式中,分解关系的基本原则是()。 I.实现无损连接 I I.分解后的关系相互独立 I I I.保持原有的依赖关系 A.Ⅰ和Ⅱ B.Ⅰ和Ⅲ C.Ⅰ D.Ⅱ 16.不能使一个关系从第一范式转化为第二范式的条件是()。 A.每一个非属性都完全函数依赖主属性

数据库中多对多的关系设计

数据库中多对多的关系设计 数据库设计多对多关系的几种形态 前言:多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。 按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者select * from 主表where id in (select 主表id from 关系表) 1,角色任命型 特点:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。 界面特点:显示主表,用checkbox或多选select设置多选关系。 例如:任命版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。 增加关系:如果没有组合纪录,insert之。 删除关系:如果有组合纪录,删除之。 2,集合分组型 特点:同角色任命型类似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主

键。区别是主副表都不是字典表,可能都很大不固定。 界面特点:显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。例如:歌曲专集(专集表-关系表-歌曲表)。手机分组(分组表-关系表-手机表)。用户圈子(圈子表-关系表-用户表)。文章标签(文章表-关系表-标签表) 增加关系:同版主任命型。 删除关系:同版主任命型。 3,明细帐型 特点:关系表可以有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用来说明每次发生关系的原因(消费)。 界面特点:显示关系表,用radio或下拉设置单选关系。 例如:现金消费明细帐或订单(用户表-订单表-消费原因表),用户可能多次在同一事情上重复消费。积分变化纪录也属于这类。 增加关系:不管有没有组合纪录,insert之,纪录时间。 删除关系:根据关系表PK删除。 4,评论回复型 特点:同明细帐型关系表一般有时间字段,有主键,区别是重点在文字型的字段用来说明每次发生关系的内容(评论回复)。 界面特点:回复文本框。

第六章 关系数据库设计理论

第六章关系数据库设计理论 一、填空题 1、()和()是对关系模式进行分解的两个基本原则。 2、通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫( )。 3、如何一个关系模式R(),则这个关系属于1NF。 4、要使关系模式属于2NF,就要消除()。 5、要使关系模式属于3NF,即就要消除()又要消除()。 6、若关系模式R属于1NF,且(),则R关系模式属于BCNF。 7、BCNF在函数依赖范围内已实现了模式的彻底分解,消除了()和()。 二、单选题 1、现有学生关系Student,属性包括学号(Sno),姓名(Sname),所在系(Sdept),系主任姓名(Mname),课程名(Cname)和成绩(Grade)。这些属性之间存在如下联系:一个学号只对应一个学生;通过学生只对应一个系;一个系只对应一个系主任;一个学生的一门课程只对应一个成绩;学生名可以重复;系名不可重复;课程名吧重复。则以下不正确的函数依赖是() A. Sno→Sdept B. Sno→Mname C. Sname→Sdept D.Sno,Cname→Grade 2、下面关于函数依赖的描述,错误的是()。 A.在函数依赖A→B中,A称为决定因素。 B.在关系R中,属性B依赖于属性A,则说明当属性A的值确定之后,属性B的值也随之确定。 C.函数依赖具有传递性。 D.在关系R中,如果属性A依赖于属性B,这种依赖记为:A→B。 A. F1→F2 B. F1 F2→F5 C. F3 F4→F5 D. F2 F3→F4 4、关系R包含属性{A1,A2,A3,A4,A5},其中{A1,A2}为主码,则下面的说法正确的是()。 A. {A1}或者{A2}有可能单独成为R的主码 B.{A1,A2,A3}必然也是R的主码 C. R中绝不可能出现在A1,A2上取值完全相同的元组 D. R的所有元组中,A1或者A2的值都是不能重复的 5、下面关于主码的说法错误的是()。 A. 一个关系的主码是唯一的; B. 一个关系的主码指定值之后,对应的元组也就确定了 C. 关系R的主码的任何真子集都不可能是关系R的主码 D. 在保存学生学籍信息的关系中,学生姓名对应的属性不适合单独作为主码

相关文档
最新文档